《软件设计和体系结构》全面系统地讲述了软件设计和架构的相关思想、并提供了来自行业的最新研究内容和进展。这本书由14章组成第一章是软件工程和软件设计的概述第2章到第14章描述了软件模型和描述、软件体系结构建模和统一建模语言、软件设计过程、软件体系结构风格、面向对象的软件设计方法、面向数据流的软件设计方法、用户界面分析与设计、设计模式、Web服务体系结构、基于分布式组件的体系结构、软件体系结构评估、软件设计的进化、云计算的体系结构。本书条理清晰、语言流畅、通俗易懂,在内容组织上力求自然、合理、循序渐进,并提供丰富的实例和实践要点,让读者更好地掌握软件工程学科的特点,理解所学的理论知识,掌握软件设计和架构的应用。
本书可作为高校软件工程专业使用、计算机应用专业及相关专业教材,可作为其他各类软件工程技术人员的参考书。
目录
- 第1章软件工程和软件设计概述
- 1.1软件
- 1.1.1软件的本质
- 1.1.2软件神话
- 1.2软件工程
- 1.2.1软件工程基础知识
- 1.2.2软件过程和软件工程实践
- 1.2.3网络环境带来的影响
- 1.3软件设计
- 1.3.1软件工程中的设计
- 1.3.2设计过程和设计质量
- 1.3.3软件设计原则
- 1.4软件体系结构
- 1.4.1什么是软件体系结构
- 1.4.2软件体系结构的内容
- 1.4.3设计阶段的软件体系结构
- 1.5小结
- 1.6思考题
- 第2章软件模型和描述
- 2.1什么是软件模型
- 2.2软件模型的发展历程
- 2.3软件模型解析
- 2.3.1功能模型
- 2.3.2对象模型
- 2.3.3组件模型
- 2.3.4配置型组件模型
- 2.3.5服务模型
- 2.3.6抽象模型
- 2.4深入认识软件模型
- 2.4.1软件体系结构的描述
- 2.4.2软件体系结构的设计
- 2.5体系结构描述语言
- 2.5.1ADL简介
- 2.5.2几种典型ADL的比较
- 2.5.3描述体系结构行为
- 2.6小结
- 2.7思考题
- 第3章软件体系结构建模和UML
- 3.1软件体系结构建模概述
- 3.2基于软件体系结构的开发
- 3.3UML概述
- 3.3.1UML的发展历程
- 3.3.2UML的特点和用途
- 3.3.3UML 2.0的建模机制
- 3.4面向对象方法
- 3.4.1面向对象方法中的基本概念
- 3.4.2面向对象方法的优势
- 3.5UML 2.0中的结构建模
- 3.5.1类图
- 3.5.2对象图
- 3.5.3构件图
- 3.5.4部署图
- 3.6UML 2.0中的行为建模
- 3.6.1用例图
- 3.6.2顺序图
- 3.6.3通信图
- 3.6.4交互概览图
- 3.6.5时序图
- 3.6.6状态图
- 3.6.7活动图
- 3.7小结
- 3.8思考题
- 第4章软件设计过程
- 4.1软件设计基础
- 4.2软件体系结构设计
- 4.3高可信软件设计
- 4.3.1可信软件的特点
- 4.3.2容错设计
- 4.3.3软件失效模式和影响分析
- 4.3.4软件故障树分析
- 4.3.5形式化方法
- 4.3.6净室方法
- 4.4软件设计规格说明
- 4.5软件设计评审
- 4.6小结
- 4.7思考题
- 第5章软件体系结构风格
- 5.1软件体系结构风格概述
- 5.2软件体系结构基本风格解析
- 5.2.1管道过滤器
- 5.2.2数据抽象和面向对象风格
- 5.2.3基于事件的隐式调用风格
- 5.2.4分层系统风格
- 5.2.5仓库风格和黑板风格
- 5.2.6模型视图控制器风格
- 5.2.7解释器风格
- 5.2.8C2风格
- 5.3案例分析
- 5.3.1案例1: 上下文关键字
- 5.3.2案例2: 仪器软件
- 5.4C/S风格
- 5.5三层C/S结构风格
- 5.5.1三层C/S结构的优点
- 5.5.2案例: 某石油管理局劳动管理信息系统
- 5.6B/S风格
- 5.7C/S与B/S混合结构风格
- 5.8正交软件体系结构风格
- 5.8.1正交软件体系结构的概念
- 5.8.2正交软件体系结构的优点
- 5.8.3正交软件体系结构的实例
- 5.9异构结构风格
- 5.9.1使用异构结构的原因
- 5.9.2异构体系结构的实例
- 5.9.3异构组合匹配问题
- 5.10小结
- 5.11思考题
- 第6章面向对象的软件设计方法
- 6.1面向对象方法概述
- 6.2面向对象的分析与设计
- 6.2.1面向对象的系统开发过程概述
- 6.2.2面向对象分析
- 6.2.3面向对象设计
- 6.3面向对象的分析与设计过程案例: 图书管理系统
- 6.3.1用例分析与设计
- 6.3.2静态建模
- 6.3.3系统设计
- 6.3.4对象设计
- 6.3.5部署模型设计
- 6.4小结
- 6.5思考题
- 第7章面向数据流的软件设计方法
- 7.1数据流图与数据字典
- 7.1.1数据流图
- 7.1.2数据字典
- 7.2实体关系图
- 7.3状态迁移图
- 7.4案例分析: 教材购销系统
- 7.4.1数据流图的建立
- 7.4.2数据字典的建立
- 7.5面向数据流的需求分析方法
- 7.5.1自顶向下逐层分解
- 7.5.2描述方式
- 7.5.3步骤
- 7.6面向数据流的设计方法
- 7.6.1信息流的类型
- 7.6.2变换分析
- 7.6.3事务分析
- 7.6.4启发式设计策略
- 7.6.5设计优化
- 7.7小结
- 7.8思考题
- 第8章用户界面分析与设计
- 8.1人性因素
- 8.2设计良好界面的主要途径
- 8.2.1分析用户类型
- 8.2.2运用黄金规则
- 8.3用户界面分析
- 8.3.1用户分析
- 8.3.2任务分析和建模
- 8.3.3内容展示分析
- 8.3.4工作环境分析
- 8.4用户界面设计
- 8.4.1设计过程
- 8.4.2界面对象、动作和布局的定义
- 8.4.3设计用户界面需考虑的问题
- 8.5用户界面原型
- 8.5.1设计用户界面原型需考虑的问题
- 8.5.2实施用户界面原型
- 8.5.3获得有关用户界面原型的反馈
- 8.5.4如何展示原型
- 8.6界面设计的评估
- 8.7小结
- 8.8思考题
- 第9章设计模式
- 9.1设计模式与体系结构描述
- 9.2设计模式的主要作用
- 9.3常用设计模式解析
- 9.3.1创建型设计模式
- 9.3.2结构型设计模式
- 9.3.3行为型设计模式
- 9.4深入认识设计模式
- 9.5小结
- 9.6思考题
- 第10章Web服务体系结构
- 10.1Web服务概述
- 10.2Web服务体系结构模型
- 10.3Web服务的核心技术
- 10.4面向服务软件体系结构
- 10.5Web服务的应用实例
- 10.5.1Web服务的创建
- 10.5.2Web服务的发布
- 10.5.3Web服务的调用
- 10.6小结
- 10.7思考题
- 第11章基于分布构件的体系结构
- 11.1EJB分布构件框架
- 11.1.1EJB技术
- 11.1.2EJB的规范介绍
- 11.1.3EJB的体系结构
- 11.2DCOM分布构件框架
- 11.2.1DCOM的使用
- 11.2.2DCOM的特点
- 11.2.3DCOM的灵活配置与扩展机制
- 11.2.4在应用间共享连接管理
- 11.2.5DCOM的安全性设置
- 11.3COBRA分布构件框架
- 11.3.1COBRA的基本原理
- 11.3.2CORBA的体系结构
- 11.3.3CORBA规范
- 11.3.4CORBA产品概述
- 11.3.5讨论
- 11.4小结
- 11.5思考题
- 第12章软件体系结构评估
- 12.1软件体系结构评估的定义
- 12.1.1质量属性
- 12.1.2评估的必要性
- 12.1.3基于场景的评估方法
- 12.2SAAM体系结构分析方法
- 12.2.1SAAM的一般步骤
- 12.2.2场景的形成
- 12.2.3描述软件体系结构
- 12.2.4场景的分类和优先级划分
- 12.2.5间接场景的单独评估
- 12.2.6评估场景交互
- 12.2.7形成总体评估
- 12.3ATAM体系结构权衡分析方法
- 12.3.1ATAM参与人员
- 12.3.2ATAM结果
- 12.3.3ATAM的一般过程
- 12.3.4ATAM评估阶段
- 12.4评估方法比较
- 12.4.1场景的生成方式不同
- 12.4.2风险承担者商业动机的表述方式不同
- 12.4.3软件体系结构的描述方式不同
- 12.5小结
- 12.6思考题
- 第13章软件设计的进化
- 13.1软件演化概述
- 13.2软件需求演化
- 13.3软件演化的分类
- 13.4软件的进化策略
- 13.4.1函数层次
- 13.4.2类层次
- 13.4.3构件层次
- 13.4.4体系结构层次
- 13.5软件再工程
- 13.5.1业务过程重构
- 13.5.2软件再工程的过程模型
- 13.5.3软件再工程中的经济因素
- 13.6软件体系结构的演化
- 13.6.1软件体系结构模型
- 13.6.2动态软件体系结构
- 13.6.3软件体系结构的重建
- 13.7重构
- 13.7.1重构的目标
- 13.7.2如何重构
- 13.8软件移植
- 13.8.1源代码移植
- 13.8.2二进制移植方法
- 13.9小结
- 13.10思考题
- 第14章云计算的体系结构
- 14.1云计算
- 14.1.1云计算的定义和技术特点
- 14.1.2云计算的分类
- 14.1.3云计算与网格计算
- 14.2云计算服务模型
- 14.2.1云设计目标
- 14.2.2基础设施层IaaS
- 14.2.3平台层PaaS和应用程序层SaaS
- 14.3云计算主要平台
- 14.3.1谷歌应用引擎
- 14.3.2亚马逊的弹性计算云
- 14.3.3IBM的蓝云系统
- 14.3.4微软的Azure
- 14.3.5我国云计算产业的发展
- 14.4新兴云软件环境
- 14.4.1开源云计算基础设施
- 14.4.2Eucalyptus
- 14.4.3Nimbus
- 14.4.4RESERVOIR
- 14.5云计算的机遇与挑战
- 14.6小结
- 14.7思考题
- 参考文献