图书目录

第1部分基 础 理 论

第1章绪论

1.1软件概述

1.1.1什么是计算机软件

1.1.2软件的特点

1.1.3软件的分类

1.1.4软件的发展

1.1.5软件危机

1.2软件工程

1.2.1软件工程与方法学

1.2.2软件工程的基本原理

1.2.3软件工程的目标

1.2.4软件工程的内容

1.2.5软件工程的原则

1.2.6软件工程面临的问题

小结

综合练习一

第2章基本理论

2.1软件工程过程

2.2软件生命周期

2.2.1软件分析时期

2.2.2软件设计时期

2.2.3编码与测试时期

2.2.4运行与维护时期

2.3软件生命周期模型

2.3.1软件生命周期模型的概念

2.3.2瀑布模型

2.3.3原型模型

2.3.4增量模型

2.3.5螺旋模型

2.3.6喷泉模型

2.3.7基于知识的模型

2.3.8变换模型

2.4软件开发方法

2.4.1结构化方法

2.4.2Jackson方法

2.4.3维也纳开发方法

2.4.4面向对象的开发方法

2.5软件工具与开发

2.5.1软件工具箱

2.5.2软件开发环境

2.5.3计算机辅助软件工程

小结

综合练习二

第3章可行性研究

3.1可行性研究任务与步骤

3.1.1研究任务

3.1.2研究步骤

3.2系统分析

3.2.1系统分析员

3.2.2面临的问题域

3.2.3通信技术

3.3分析原理

3.3.1信息域

3.3.2建立模型

3.3.3分解

3.4系统模型与模拟

3.4.1系统模型

3.4.2系统建模和模拟

3.5成本效益分析

3.6可行性研究的文档

3.7项目开发计划

3.7.1方案选择

3.7.2制定项目开发计划

小结

综合练习三

第2部分结构化方法

第4章需求分析与体系结构

4.1需求分析

4.1.1需求分析的特点

4.1.2需求分析的原则

4.1.3需求分析的任务

4.1.4需求分析的方法

4.2结构化分析

4.2.1自顶向下逐层分解

4.2.2结构化分析步骤

4.3系统流程图

4.4数据流图

4.4.1基本图形符号

4.4.2画数据流图

4.4.3结构化分析方法的应用

4.5数据字典

4.5.1内容及格式

4.5.2数据字典的实现

*4.6从需求到体系结构

*4.7RTRSM的基本元素

4.7.1状态转换图

4.7.2模板

4.7.3规则集

*4.8RTRSM到体系结构的转换步骤

4.8.1描述系统的功能单元(组件)

4.8.2描述连接件

4.8.3描述软件的配置

*4.9基于软件体系结构开发方法

4.9.1软件体系结构的开发过程

4.9.2分布式对象技术

4.9.3体系结构与分布式对象结合方法

*4.10软件体系结构求精方法

4.10.1行为替代的体系结构求精方法

4.10.2基于风格的体系结构求精方法

4.10.3构件体系结构求精方法

4.10.4形式化方法与Z语言

4.10.5UML和Z结合的求精方法

*4.11一种新的软件体系结构设计方法

4.11.1体系结构需求和软件体系结构

4.11.2新的软件体系结构设计过程

小结

综合练习四

第5章总体设计

5.1软件设计的重要性

5.2设计过程

5.3软件总体设计

5.4设计基本原理

5.4.1抽象

5.4.2细化

5.4.3模块化

5.4.4软件体系结构

5.4.5程序结构

5.4.6数据结构

5.4.7软件过程

5.5体系结构设计

5.5.1软件结构图

5.5.2模块的大小

5.5.3扇出和扇入与深度和宽度

5.5.4模块的耦合

5.5.5模块的内聚

5.5.6结构设计的一般准则

5.5.7模块的作用域与控制域

5.6结构化设计

5.6.1数据流的类型

5.6.2过程步骤

5.6.3变换分析设计

5.6.4事务分析设计

5.6.5混合流设计

5.6.6结构化设计方法应用示例

5.6.7设计的后期处理

5.7软件结构优化

5.7.1软件结构设计优化准则

5.7.2软件结构的HIPO图

小结

综合练习五

第6章软件详细设计

6.1详细设计的任务与方法

6.1.1详细设计的基本任务

6.1.2详细设计方法

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.3.6结构化程序

*6.4结构化定理

6.4.1程序函数

6.4.2基本定理

6.4.3非结构化转换为结构化

6.4.4常见错误

6.5过程设计语言

小结

综合练习六

第3部分面向对象方法与实现

第7章面向对象方法概论

7.1面向对象简介

7.1.1什么是面向对象

7.1.2面向对象方法的历史及现状

7.2面向对象的相关概念

7.2.1对象

7.2.2类

7.2.3对象图

7.2.4属性

7.2.5服务

7.2.6封装

7.2.7继承

7.2.8多重继承

7.2.9消息

7.2.10结构与连接

7.2.11多态性

7.2.12永久对象

7.2.13主动对象

7.2.14对象类的表示方法

7.3链接与关联

7.3.1一般概念

7.3.2重数

7.3.3关联的重要性

7.3.4三元关联

7.3.5关联的候选关键字

7.3.6异或关联

7.3.7资格关联

7.3.8链接属性

7.3.9用关联模型化为类

7.3.10角色名

7.3.11排序

7.3.12资格符

7.4构造分组

7.4.1模块

7.4.2表

小结

综合练习七

第8章模型

8.1统一建模语言

8.1.1模型的建立

8.1.2UML的基本图标

8.1.3UML语义

8.1.4UML的基本元素

8.1.5UML的词别

8.2UML的评价

8.2.1UML成功的因素

8.2.2UML的积极作用

8.2.3UML不能起到的作用

8.2.4UML的缺点

8.2.5UML的未来

8.3对象模型

8.3.1表示方法

8.3.2表示结构

8.3.3例子

8.4动态模型

8.4.1事件和状态

8.4.2操作

8.4.3嵌套状态图

8.4.4实践技巧

8.5功能模型

8.5.1数据流图

8.5.2指定的操作

8.5.3约束

8.5.4功能模型的实例

8.5.5三种模型的关系

小结

综合练习八

第9章对象分析

9.1对象、主动对象以及它们的类

9.2研究问题域和用户需求

9.2.1研究用户需求,明确系统责任

9.2.2研究问题域

9.2.3确定系统边界

9.3发现对象

9.3.1正确地运用抽象原则

9.3.2策略与启发

9.3.3对象的发现和标识

9.3.4审查和筛选

9.3.5识别主动对象

9.4对象分类,建立类图的对象层

9.4.1异常情况的检查和调整

9.4.2类的命名

9.4.3建立类图的对象层

9.5对象的属性和服务

9.6定义属性

9.6.1策略与启发

9.6.2审查与筛选

9.6.3推迟到OOD考虑的问题

9.6.4属性的命名和定位

9.6.5属性的详细说明

9.7定义服务

9.7.1对象的状态与状态转换图

9.7.2行为分类

9.7.3发现服务的策略与启发

9.7.4审查与调整

9.7.5认识对象的主动行为

9.7.6服务的命名和定位

9.7.7服务的详细说明

9.8应用实例

9.8.1功能需求

9.8.2发现对象

9.8.3对象层表示

9.8.4电梯系统的属性描述

9.8.5电梯系统的服务定义

9.8.6电梯系统的特征层

小结

综合练习九

第10章关系分析

10.1一般特殊结构

10.1.1一般特殊结构及其用途

10.1.2如何发现一般特殊结构

10.1.3审查与调整

10.1.4多继承及多态性问题

10.1.5一般特殊结构的简化

10.1.6调整对象层和特征层

10.2整体部分结构

10.2.1整体部分结构及其用途

10.2.2如何发现整体部分结构

10.2.3审查与筛选

10.2.4简化对象的定义

10.2.5支持软件复用

10.2.6整体部分结构的进一步运用

10.2.7调整对象层和属性层

10.3实例连接

10.3.1简单的实例连接

10.3.2复杂的实例连接及其表示

10.3.3三元关联问题

10.3.4如何建立实例连接

10.3.5对象层、特征层的增补及实例连接说明

10.4消息连接

10.4.1消息的定义

10.4.2顺序系统中的消息

10.4.3并发系统中的消息

10.4.4消息对OOA的意义

10.4.5表示消息连接

10.5如何建立消息连接

10.5.1建立控制线程内部的消息连接

10.5.2建立控制线程之间的消息连接

10.5.3对象分布问题及其消息的影响

10.6消息的详细说明

10.7电梯例子

10.7.1一般特殊关系

10.7.2整体部分关系

10.7.3连接

10.7.4电梯控制系统的关系层

小结

综合练习十

第11章控制驱动的设计

11.1设计原则

11.1.1类型一致性与闭合行为

11.1.2其他主要原则

11.1.3类的状态空间和行为

11.2相关技术问题

11.2.1系统总体方案

11.2.2软件体系结构

11.2.3分布式系统的体系结构风格

11.2.4系统的并发性

11.3如何设计控制驱动

11.3.1选择软件体系结构

11.3.2确定系统分布方案

11.3.3识别控制流

11.3.4用主动对象表示控制流

11.3.5把控制驱动部分看做一个主题

11.4控制实现

11.4.1在程序内进行状态设置

11.4.2状态机器引擎

11.4.3控制作为并发任务

小结

综合练习十一

第12章问题域的设计

12.1问题域部分设计环境

12.1.1为适应编成环境的调整

12.1.2从分析和系统结构着手

12.1.3对象设计的步骤

12.1.4对象模型工具

12.2完善对象的细节

12.3设计算法

12.3.1选择算法

12.3.2选择数据结构

12.3.3定义内部类和操作

12.3.4指定操作的职责

12.4继承的调整

12.4.1重新安排类和操作

12.4.2抽象出公共的行为

12.4.3使用授权共享实现

12.5关联设计

12.5.1分析关联遍历

12.5.2单向关联

12.5.3双向关联

12.5.4链接属性

12.6设计优化

12.6.1性能的影响因素

12.6.2改进性能的设计策略

12.6.3重新安排执行次序以获得效率

12.6.4保存导出属性避免重复计算

12.7物理打包

12.7.1信息隐藏

12.7.2实体的相关性

12.7.3构造模块

12.8设计决策文档

小结

综合练习十二

第13章用户界面设计

13.1人的因素

13.1.1分析活动者

13.1.2从Use Case分析人机交互

13.1.3分析处理异常事件的人机交互

13.1.4命令的组织

13.1.5输出信息的组织结构

13.2界面设计风格

13.2.1菜单

13.2.2对话框

13.2.3窗口

13.3人机界面设计准则

13.4人机界面设计过程

13.4.1界面模型

13.4.2界面支持系统

13.4.3界面元素

13.4.4界面设计形式

13.5描述方法与技术

13.5.1灵境技术

13.5.2多通道人机交互技术

小结

综合练习十三

第14章数据库及其接口设计

14.1数据管理系统及其选择

14.2技术整合

14.3数据接口

14.4对象存储方案和数据接口的设计策略

14.4.1针对文件系统的设计

14.4.2针对RDBMS的设计

14.4.3使用OODBMS

小结

综合练习十四

*第15章形式化方法

15.1基础知识

15.1.1形式化方法概念

15.1.2形式化规约语言

15.2有限状态机

15.3Petri网基本原理

15.3.1静态结构

15.3.2动态特征

15.3.3转移启动规则

15.3.4行为特性

15.3.5行为特性分析方法

15.3.6结构特性分析方法

15.3.7Petri网到程序结构的转换

小结

综合练习十五

第16章软件实现

16.1程序设计语言的特性及选择

16.1.1程序设计语言特性

16.1.2程序设计语言的选择

16.2程序设计风格

16.3程序设计效率

16.3.1代码效率

16.3.2内存效率

16.3.3I/O效率

16.4冗余编程

16.5软件容错技术

16.5.1容错软件

16.5.2容错的一般方法

16.5.3容错软件的设计过程

16.5.4软件的容错系统结构

小结

综合练习十六

第4部分质量与工程管理

第17章软件质量

17.1软件质量概述

17.1.1软件质量的定义

17.1.2软件质量的特性

17.1.3软件质量特性之间的竞争

17.2软件质量的度量和评价

17.2.1软件质量的度量

17.2.2软件质量度量的分类

17.2.3软件质量的评价

17.3软件质量保证

17.3.1软件质量保证概述

17.3.2软件质量保证原则

17.3.3软件质量保证计划

17.3.4软件质量保证措施

17.3.5软件质量管理小组

17.4技术评审与审查

17.4.1评审过程

17.4.2选择参加评审的成员

17.4.3评审的管理和组织

17.4.4评审的方法

17.4.5走查和审查

17.4.6开发过程的评审

17.4.7对评审的综合评价

17.5软件的可靠性

小结

综合练习十七

第18章软件测试

18.1软件测试概述

18.1.1软件测试的目的

18.1.2软件测试的原则

18.2软件测试方法

18.2.1静态测试

18.2.2动态测试

18.3测试用例的设计

18.3.1白盒技术

18.3.2黑盒技术

18.4软件测试过程

18.4.1软件测试过程中的信息

18.4.2软件测试的步骤与各开发阶段的关系

18.4.3单元测试

18.4.4集成测试

18.4.5确认测试

18.5调试

小结

综合练习十八

第19章软件维护

19.1软件维护概述

19.1.1软件维护的定义

19.1.2影响维护工作的因素

19.1.3维护成本

19.2软件可维护性

19.2.1软件可维护性的定义

19.2.2可维护性的度量

19.3软件维护的特点

19.3.1非结构化维护和结构化维护

19.3.2维护的困难性

19.3.3软件维护的费用

19.4软件维护的实施

19.4.1维护的组织

19.4.2维护的流程

19.4.3维护技术

19.4.4维护的副作用

19.5维护“老化代码”

19.6逆向工程和再工程

19.6.1预防性维护

19.6.2逆向工程的元素

19.6.3再工程中的重构技术

小结

综合练习十九

第20章软件项目管理与计划

20.1软件项目管理概述

20.1.1软件管理的对象

20.1.2软件开发中的资源

20.1.3分解技术

20.2项目管理过程

20.3软件开发成本估算

20.3.1软件开发成本估算方法

20.3.2软件开发成本估算的经验模型

20.4风险分析

20.4.1风险识别

20.4.2风险估算

20.4.3风险评价

20.4.4风险驾驭和监控

20.5进度安排

20.5.1软件开发小组人数与软件生产率

20.5.2任务的确定与并行性

20.5.3制定开发进度计划

20.5.4进度安排的图形方法

20.5.5项目的追踪和控制

20.6软件项目的组织

20.6.1软件项目管理的特点

20.6.2软件项目组织的建立

20.6.3人员配备

小结

综合练习二十

参考答案

参考文献