网站首页  软件下载  游戏下载  翻译软件  电子书下载  电影下载  电视剧下载  教程攻略

请输入您要查询的图书:

 

书名 软件设计基础理论
分类 教育考试-大中专教材-大学教材
作者 丁二玉
出版社 机械工业出版社
下载
简介
编辑推荐
本书面向软件设计初学者和有一定经验的软件设计师,介绍和探讨软件设计活动中蕴藏的基础理论和原则,突出软件设计关键理论和决策中的质量和审美追求,包括程序设计与正确性、复杂软件设计与模块化、信息隐藏及其背后的可修改性等质量、大规模系统体系结构设计与可靠性等系统质量。
主要特点
总结和探讨了软件设计的基础要素,包括软件设计的根本目标、衡量标准、抽象与分解、物理与逻辑、设计决策等。
基于基础要素分析各种软件设计方法和技术的关键考虑点,包括结构化编程理论、类型、模块化、信息隐藏、软件设计方法学、软件体系结构理论等。
始终贯彻软件设计的基础要素,尤其是质量和审美观念,分析不同规模软件设计活动对方法和技术的要求,包括小规模软件的程序正确性,中大规模系统的可修改性,大规模软件系统的可靠性、性能、安全等。
结合案例解释较为晦涩难懂的设计方法和技术,力求做到深入浅出。
内容推荐
软件设计是软件开发的核心活动,软件设计理论的发展推动着软件工程的发展。本书梳理了基础的软件设计理论,可帮助读者更好地理解各种软件设计技术。全书共分为5章,第1章介绍软件设计基础原则;第2章介绍程序设计,帮助读者深刻认识程序设计工作背后的机理,而不是仅仅停留在掌握一门或几门程序设计语言上;第3章介绍复杂软件设计,重点包括模块化设计、信息隐藏与设计原则;第4章介绍软件设计方法学,指导读者用系统化、规范化的方式开展软件设计活动,解决软件设计问题;第5章介绍大规模软件系统设计,关注可靠性、效率、可移植性、市场特性、人员与分工等各种要素。<br />本书适合作为软件工程相关专业本科生和研究生的教材,也可作为软件领域相关技术人员的参考书。
目录
目录<br /><br />前言<br /><br />第1章  软件设计基础原则  1<br />1.1  什么是软件设计  1<br />1.1.1  设计是一种“规划”  1<br />1.1.2  软件的材料载体与广义的软件设计内涵  2<br />1.1.3  狭义的软件设计内涵  2<br />1.2  为什么要进行软件设计  2<br />1.3  复杂度控制的关键之一:  设计分层  3<br />1.3.1  分层抽象方法  3<br />1.3.2  软件设计的分层  3<br />1.3.3  设计层次验证  4<br />1.3.4  软件设计分层要点  4<br />1.3.5  产品设计与工程设计  5<br />1.4  复杂度控制的关键之二:关注点分离  6<br />1.4.1  分离设计主题  6<br />1.4.2  多视点方法  6<br />1.5  软件设计的目标与衡量标准  7<br />1.5.1  根本标准:功能、质量、审美  8<br />1.5.2  设计目标和衡量标准应用示例  8<br />1.5.3  功能是设计方案的推荐特征  12<br />1.5.4  质量是工程设计的重点  12<br />1.5.5  审美是超越合格达到优秀的路径  14<br />1.5.6  软件设计的结果是一种折中与妥协  16<br />1.6  外部表现与内部结构  17<br />1.6.1  软件设计的重点是坚固、优雅的内部结构  17<br />1.6.2  外部表现和内部结构的区分示例  17<br />1.6.3  抽象、分解与层次结构  21<br />1.6.4  常见的设计对象及其外部表现和内部结构  23<br />1.6.5  设计整个系统时区分外部表现和内部结构  24<br />1.6.6  设计模块时区分外部表现和内部结构  25<br />1.6.7  设计类时区分外部表现和内部结构  29<br />1.6.8  设计数据结构时区分外部表现和内部结构  33<br />1.6.9  设计代码时区分外部表现和内部结构  34<br />1.7  逻辑设计与物理设计  35<br />1.7.1  载体介质及其匹配  35<br />1.7.2  区分逻辑设计与物理设计  35<br />1.7.3  设计数据类型时逻辑设计与物理设计的失配  36<br />1.7.4  设计数据结构时逻辑设计与物理设计的失配  37<br />1.7.5  设计面向对象机制时逻辑设计与物理设计的失配  37<br />1.7.6  设计模块时逻辑设计与物理设计的失配  38<br />1.7.7  设计质量时逻辑设计与物理设计的失配  38<br />1.8  软件设计是持续决策的过程  39<br />1.8.1  设计结果与设计过程  39<br />1.8.2  决策的要素  39<br />1.8.3  设计是一个跳跃性过程,验证设计是一个推理过程  40<br />1.8.4  选择一个可行答案,没有专享正确答案  40<br />1.8.5  设计决策有顺序影响,而且影响不可逆  41<br />1.8.6  设计约束:是友非敌  41<br />1.9  工程与艺术  42<br />1.9.1  工程设计与艺术设计  42<br />1.9.2  理性主义与经验主义  42<br />1.9.3  设计兼具科学性与艺术性  43<br />1.10  总结  43<br /><br />第2章  程序设计  44<br />2.1  如何保证程序正确性  44<br />2.1.1  像设计硬件一样设计软件吗  44<br />2.1.2  测试不能保证正确性  45<br />2.1.3  用程序设计方法实现正确性  45<br />2.2  结构化编程与功能正确性  46<br />2.2.1  使用简单结构—三种控制结构  46<br />2.2.2  使用块结构组织复杂代码  48<br />2.2.3  兼顾正确性与复杂度控制:函数/方法  54<br />2.3  数据抽象、类型与数据操作正确性  55<br />2.3.1  类型  55<br />2.3.2  结构化类型:强正确性保证  56<br />2.3.3  非结构化类型:弱正确性保证  57<br />2.3.4  复杂抽象数据类型(数据结构)及其质量  60<br />2.4  程序契约与正确性  62<br />2.4.1  前置条件与后置条件  62<br />2.4.2  不变量  63<br />2.4.3  程序契约的局限性  64<br />2.5  面向对象编程与可复用性  64<br />2.5.1  可复用性需要的出现  64<br />2.5.2  面向对象编程与可复用性  65<br />2.5.3  类和对象  65<br />2.5.4  封装  68<br />2.5.5  继承  71<br />2.5.6  多态  73<br />2.6  软件构造与更多代码质量  73<br />2.6.1  什么是软件构造  73<br />2.6.2  软件构造技术与代码质量  74<br />2.6.3  软件构造技术示例  75<br />2.7  总结  81<br /><br />第3章  复杂软件设计  82<br />3.1  控制更高的复杂度需要模块  82<br />3.1.1  模块  82<br />3.1.2  模块分解质量与模块化、信息隐藏  83<br />3.2  模块化  83<br />3.2.1  模块分割的质量考虑  83<br />3.2.2  理想中的模块分割—完全独立  83<br />3.2.3  现实中的模块分割—低耦合、高内聚  84<br />3.2.4  代码组织及联系方式分析  84<br />3.3  (结构化)函数/方法之间的耦合  86<br />3.3.1  内容耦合  86<br />3.3.2  公共耦合  88<br />3.3.3  控制耦合  90<br />3.3.4  印记耦合  92<br />3.3.5  数据耦合  95<br />3.3.6  隐式的耦合  97<br />3.3.7  函数/方法之间的耦合小结  100<br />3.4  (结构化)函数/方法的内聚  101<br />3.4.1  偶然内聚  102<br />3.4.2  逻辑内聚  102<br />3.4.3  时间内聚  103<br />3.4.4  过程内聚  104<br />3.4.5  通信内聚  106<br />3.4.6  顺序内聚  107<br />3.4.7  功能内聚  108<br />3.4.8  函数/方法的内聚小结  110<br />3.5  (面向对象)类/对象之间的耦合  110<br />3.5.1  类/对象之间的耦合类型  110<br />3.5.2  方法之间的耦合  111<br />3.5.3  成员变量产生的耦合  112<br />3.5.4  隐藏组件耦合  114<br />3.5.5  分散组件耦合  116<br />3.5.6  明确组件耦合  118<br />3.5.7  修改型继承耦合  118<br />3.5.8  改进型继承耦合  121<br />3.5.9  扩展型继承耦合  121<br />3.5.10  继承的降耦合作用  122<br />3.5.11  继承的弱点:灵活性  123<br />3.5.12  类/对象之间的耦合小结  124<br />3.6  (面向对象)类/对象的内聚  126<br />3.7  复杂模块的耦合与内聚  127<br />3.7.1  复杂模块之间的耦合  127<br />3.7.2  复杂模块的内聚  127<br />3.8  按功能设计与按决策设计  130<br />3.8.1  KWIC  130<br />3.8.2  按功能进行设计  130<br />3.8.3  按决策进行设计  131<br />3.8.4  方案比较  132<br />3.8.5  比较结果分析  133<br />3.9  信息隐藏  134<br />3.9.1  基本思路  134<br />3.9.2  隐藏设计决策  134<br />3.9.3  封装变化  136<br />3.10  (结构化)函数/方法的信息隐藏分析  137<br />3.11  (面向对象)类/对象的信息隐藏分析  138<br />3.11.1  耦合、内聚与信息隐藏  138<br />3.11.2  单一职责原则  139<br />3.11.3  接口分离原则  139<br />3.11.4  依赖倒置原则  140<br />3.11.5  开闭原则  142<br />3.12  复杂模块的信息隐藏分析  144<br />3.12.1  重新审视耦合与内聚  144<br />3.12.2  决策的层次结构  146<br />3.12.3  模块的层次结构  147<br />3.12.4  模块说明  147<br />3.13  总结  148<br />3.13.1  模块化方法总结  148<br />3.13.2  信息隐藏方法总结  149<br />3.13.3  设计原则  149<br /><br />第4章  软件设计方法学  150<br />4.1  概述  150<br />4.1.1  什么是软件方法学  150<br />4.1.2  软件方法学流派  150<br />4.1.3  软件设计方法学  151<br />4.1.4  使用软件设计方法学的好处  152<br />4.2  逐步精化程序设计  152<br />4.2.1  基本思想  152<br />4.2.2  示例一  153<br />4.2.3  示例二  153<br />4.2.4  示例三  155<br />4.2.5  作用和效果  158<br />4.3  结构化软件设计  158<br />4.3.1  基本思想  158<br />4.3.2  示例一  159<br />4.3.3  示例二  160<br />4.3.4  作用和效果  163<br />4.4  数据为中心的软件设计  163<br />4.4.1  基本思想  163<br />4.4.2  示例一  164<br />4.4.3  示例二  166<br />4.4.4  作用和效果  168<br />4.5  面向对象软件设计  168<br />4.5.1  基本思想  168<br />4.5.2  示例一  169<br />4.5.3  示例二  170<br />4.5.4  作用和效果  175<br />4.6  总结  176<br /><br />第5章  大规模软件系统设计  178<br />5.1  大规模软件系统设计的关注点  179<br />5.1.1  质量  179<br />5.1.2  项目环境与约束  179<br />5.2  高层次软件设计—软件体系结构  181<br />5.2.1  详细设计的不足  181<br />5.2.2  高层次软件设计的出现  182<br />5.2.3  高层设计与中层设计  183<br />5.2.4  高层结构的关键:连接件  184<br />5.3  软件体系结构设计元素  185<br />5.3.1  部件  185<br />5.3.2  连接件  186<br />5.3.3  配置  187<br />5.3.4  高层抽象的作用  188<br />5.4  软件体系结构设计的“4+1”视图  189<br />5.4.1  “4+1”视图概述  189<br />5.4.2  场景视图  190<br />5.4.3  逻辑视图  190<br />5.4.4  开发视图  191<br />5.4.5  进程视图  192<br />5.4.6  物理视图  192<br />5.5  软件体系结构设计与质量  193<br />5.5.1  可靠性与体系结构设计  193<br />5.5.2  可用性与体系结构设计  196<br />5.5.3  安全性与体系结构设计  198<br />5.5.4  性能与体系结构设计  200<br />5.5.5  可修改性与体系结构设计  202<br />5.5.6  可测试性与体系结构设计  203<br />5.6  总结  204<br /><br />附录  205
随便看

 

霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。

 

Copyright © 2002-2024 101bt.net All Rights Reserved
更新时间:2025/2/23 6:30:44