图书目录

目录

第1章软件工程概述/1

1.1软件的概念、特点与分类1

1.1.1软件的概念1

1.1.2软件的特点2

1.1.3软件的分类3

1.2软件危机4

1.2.1软件危机的出现4

1.2.2产生软件危机的原因5

1.2.3消除软件危机的途径5

1.3软件工程6

1.3.1软件工程的定义6

1.3.2软件工程的基本原理7

1.3.3软件工程的框架7

1.3.4软件工程方法学7

1.4软件的生命周期10

1.4.1软件生命周期及其各个阶段10

1.4.2软件生命周期模型11

1.5软件工程的目标和原则12

1.5.1软件工程的基本目标12

1.5.2软件工程的原则12

1.6本章小结13

习题113

第2章软件过程/14

2.1软件过程概述14

2.2通用过程模型15

2.2.1过程框架15

2.2.2普适性活动15

2.2.3过程的适应性调整16

2.2.4过程流16

2.3惯用过程模型17〖1〗软 件 工 程目录〖3〗〖3〗2.3.1瀑布模型17

2.3.2增量过程模型20

2.3.3演化过程模型21

2.3.4并发模型23

2.4专用过程模型23

2.4.1基于构件的开发24

2.4.2形式化方法模型25

2.4.3面向方面的软件开发26

2.5统一过程模型26

2.5.1统一过程简介26

2.5.2统一过程开发阶段27

2.5.3统一过程成分28

2.6本章小结29

习题229

第3章敏捷软件过程/30

3.1敏捷联盟30

3.2敏捷原则32

3.3极限编程实践34

3.3.1客户作为团队成员34

3.3.2用户故事35

3.3.3短交付周期35

3.3.4结对编程36

3.3.5持续集成与可持续开发36

3.3.6开放的工作空间37

3.3.7简单的设计37

3.3.8重构38

3.3.9隐喻38

3.4敏捷过程模型39

3.4.1XP过程39

3.4.2Scrum40

3.5敏捷统一过程42

3.5.1宏观上连续42

3.5.2微观上迭代43

3.5.3持续增量发布43

3.5.4AUP的原则43

3.5.5何时采用AUP44

3.6本章小结44

习题345

第4章软件过程改进/46

4.1能力成熟度模型46

4.1.1CMM的5层体系结构48

4.1.2成熟度级别的行为特征49

4.1.3CMM的评估和评价方法51

4.2能力成熟度模型集成52

4.2.1从CMM到CMMI52

4.2.2CMMI体系52

4.2.3CMMI过程域57

4.2.4CMMI评估方式SCAMPI58

4.3个人软件过程59

4.3.1个人软件过程简介59

4.3.2PSP的结构59

4.3.3PSP过程59

4.4团队软件过程60

4.4.1团队软件过程简介60

4.4.2TSP的团队管理组合61

4.4.3TSP的6条原则61

4.5能力成熟度模型与软件过程之间的关系61

4.5.1能力成熟度模型与软件过程的有机结合61

4.5.2CMM/TSP/PSP的一些建议62

4.6本章小结62

习题463

第5章面向对象软件开发方法/64

5.1面向对象基本特征64

5.2面向对象基本概念67

5.3面向对象方法68

5.3.1面向对象分析68

5.3.2OOA主要原则68

5.3.3面向对象设计模型69

5.3.4面向对象建模过程70

5.4本章小结73

习题573

第6章UML建模技术/74

6.1面向对象建模及UML简介74

6.1.1面向对象建模74

6.1.2UML简介74

6.2用例视图75

6.2.1活动者75

6.2.2用例76

6.2.3用例图内元素的关系76

6.3静态模型图78

6.3.1类图78

6.3.2构件图81

6.3.3部署图82

6.4动态模型图83

6.4.1序列图83

6.4.2协作图84

6.4.3状态图86

6.4.4活动图87

6.5本章小结91

习题691

第7章面向对象分析/92

7.1需求工程92

7.1.1需求工程92

7.1.2起始95

7.1.3需求获取97

7.2需求分析: 用例模型98

7.2.1开发用例99

7.2.2创建初始用例100

7.2.3细化初始用例102

7.2.4编写正式用例102

7.3需求分析: 类模型103

7.3.1识别分析类104

7.3.2描述属性105

7.3.3定义操作105

7.3.4类职责协作者建模107

7.4需求分析: 行为模型108

7.4.1识别用例事件108

7.4.2状态表达110

7.5本章小结110

习题7111

第8章面向对象设计/112

8.1设计过程112

8.1.1软件质量指导原则和属性112

8.1.2软件设计的演化113

8.2设计概念114

8.2.1抽象114

8.2.2体系结构115

8.2.3模式116

8.2.4关注点分离116

8.2.5模块化116

8.2.6信息隐蔽117

8.2.7功能独立118

8.3设计模型118

8.3.1数据设计元素118

8.3.2体系结构设计元素119

8.3.3接口设计元素119

8.3.4构件级设计元素120

8.4体系结构设计120

8.4.1体系结构类型121

8.4.2体系结构风格121

8.4.3体系结构的简单分类122

8.4.4体系结构考虑要素123

8.4.5体系结构设计124

8.5构件设计126

8.5.1构件概念126

8.5.2基于类的构件设计129

8.5.3实施构件级设计131

8.5.4构件的分类与检索133

8.6用户界面设计134

8.6.1用户界面设计黄金原则134

8.6.2用户界面分析与设计135

8.6.3界面分析136

8.6.4界面设计步骤137

8.6.5设计评估137

8.7本章小结138

习题8138

第9章软件复用/139

9.1结构化软件复用139

9.2面向对象软件复用144

9.3基于软件复用的软件工程148

9.4本章小结151

习题9151

第10章软件模式/152

10.1分析模式152

10.2设计模式153

10.2.1创建型设计模式153

10.2.2结构型设计模式158

10.2.3行为型设计模式162

10.3本章小结166

习题10166

第11章软件质量/167

11.1软件质量概念167

11.1.1符合性质量的概念167

11.1.2适用性质量的概念167

11.1.3广义质量的概念168

11.1.4质量因客户而存在170

11.1.5不同的质量观点172

11.1.6质量属性174

11.1.7软件过程和软件质量175

11.2软件质量实现178

11.2.1软件质量控制179

11.2.2软件质量保证179

11.2.3缺陷预防181

11.2.4质量成本181

11.2.5软件评审182

11.2.6软件可靠性与安全187

11.3软件质量标准188

11.3.1国际标准188

11.3.2国家标准189

11.3.3行业标准189

11.3.4企业标准190

11.3.5项目规范190

11.4本章小结190

习题11190

第12章软件测试策略/191

12.1软件测试的策略性方法191

12.1.1验证与确认191

12.1.2软件测试组织191

12.1.3软件测试策略——宏观192

12.1.4测试完成的标准193

12.2策略问题194

12.3传统软件的测试策略194

12.3.1单元测试194

12.3.2集成测试196

12.4面向对象软件的测试策略198

12.4.1面向对象环境中的单元测试198

12.4.2面向对象环境中的集成测试199

12.5确认测试199

12.5.1确认测试准则199

12.5.2配置评审200

12.5.3α测试和β测试200

12.6系统测试200

12.6.1恢复测试200

12.6.2安全测试201

12.6.3性能测试201

12.6.4部署测试201

12.7调试技巧201

12.7.1调试过程202

12.7.2调试策略202

12.8本章小结203

习题12204

第13章面向对象的软件测试/205

13.1扩展测试的视野206

13.2测试OOA和OOD模型207

13.2.1OOA和OOD模型的正确性208

13.2.2面向对象模型的一致性208

13.3面向对象测试策略209

13.3.1面向对象测试的层次209

13.3.2面向对象环境中的单元测试210

13.3.3面向对象环境中的集成测试210

13.3.4面向对象环境中的确认测试210

13.4面向对象测试方法211

13.4.1面向对象概念的测试用例设计含义211

13.4.2传统测试用例设计方法的可应用性211

13.4.3基于故障的测试211

13.4.4基于场景的测试设计212

13.5类级可应用的测试方法212

13.5.1面向对象类的随机测试212

13.5.2类级的划分测试 213

13.6类间测试用例设计213

13.6.1多类测试214

13.6.2从行为模型导出的测试215

13.7本章小结216

习题13216

第14章软件项目管理/217

14.1软件项目管理定义及特点217

14.2软件项目计划218

14.2.1软件规模估算219

14.2.2软件成本估算222

14.2.3软件进度计划225

14.3软件项目风险管理230

14.3.1风险的属性和分类230

14.3.2软件项目风险管理过程231

14.4软件质量管理236

14.4.1软件质量管理的重要性及其目标236

14.4.2软件质量管理活动237

14.4.3软件质量缺陷管理238

14.5软件配置管理239

14.5.1软件配置管理的意义239

14.5.2软件配置管理活动240

14.5.3软件配置管理工具243

14.6人员的组织与管理243

14.6.1人员组织过程244

14.6.2项目组织形式244

14.7本章小结246

习题14247

参考文献/248