《软体工程导论(第6版)》是2013年8月1日清华大学出版社出版的图书,作者是张海藩、牟永敏。本书主要讲述了软体工程的概念、原理和典型的方法学,并介绍了软体项目的管理技术。
基本介绍
- 书名:软体工程导论(第6版)
- 作者:张海藩、牟永敏
- ISBN:9787302330981
- 定价:39.50
- 出版社:清华大学出版社
- 出版时间:2013年8月1日
- 装帧:平装
- 开本:16开
- 印次:6-5
内容简介
本书正文共13章,第1章是概述,第2~8章顺序讲述软体生命周期各阶段的任务、过程、结构化方法和工具,第9~12章分别讲述面向对象方法学引论、面向对象分析、面向对象设计和面向对象实现,第13章介绍软体项目管理。附录讲述了用面向对象方法开发软体的过程,对读者深入理解软体工程学很有帮助,也是上机实习的好材料。
目录
第1章软体工程学概述1
1.1软体危机11.1.1软体危机的介绍11.1.2产生软体危机的原因31.1.3消除软体危机的途径4
1.2软体工程51.2.1软体工程的介绍51.2.2软体工程的基本原理71.2.3软体工程方法学9
1.3软体生命周期11
1.4软体过程141.4.1瀑布模型151.4.2快速原型模型161.4.3增量模型171.4.4螺旋模型191.4.5喷泉模型211.4.6Rational统一过程221.4.7敏捷过程与极限编程251.4.8微软过程29
1.5小结31
习题132第2章可行性研究35
2.1可行性研究的任务35
2.2可行性研究过程36
2.3系统流程图382.3.1符号382.3.2例子382.3.3分层40
2.4数据流图40[][]软体工程导论(第6版)[][]目录[][]2.4.1符号402.4.2例子422.4.3命名442.4.4用途45
2.5数据字典472.5.1数据字典的内容472.5.2定义数据的方法472.5.3数据字典的用途482.5.4数据字典的实现49
2.6成本/效益分析492.6.1成本估计502.6.2成本/效益分析的方法51
2.7小结53
习题253第3章需求分析55
3.1需求分析的任务563.1.1确定对系统的综合要求563.1.2分析系统的数据要求573.1.3导出系统的逻辑模型583.1.4修正系统开发计画58
3.2与用户沟通获取需求的方法583.2.1访谈583.2.2面向数据流自顶向下求精593.2.3简易的套用规格说明技术593.2.4快速建立软体原型61
3.3分析建模与规格说明62
3.3.1分析建模62
3.3.2软体需求规格说明62
3.4实体联繫图62
3.4.1数据对象63
3.4.2属性63
3.4.3联繫63
3.4.4实体联繫图的符号64
3.5数据规範化64
3.6状态转换图65
3.6.1状态653.6.2事件65
3.6.3符号66
3.6.4例子66
3.7其他图形工具67
3.7.1层次方框图68
3.7.2Warnier图68
3.7.3IPO图69
3.8验证软体需求70
3.8.1从哪些方面验证软体需求的正确性70
3.8.2验证软体需求的方法70
3.8.3用于需求分析的软体工具71
3.9小结72
习题373
第4章形式化说明技术75
4.1概述75
4.1.1非形式化方法的缺点75
4.1.2形式化方法的优点76
4.1.3套用形式化方法的準则76
4.2有穷状态机77
4.2.1概念77
4.2.2例子794.2.3评价82
4.3Petri网824.3.1概念82
4.3.2例子84
4.4Z语言854.4.1简介85
4.4.2评价88
4.5小结88
习题489
第5章总体设计91
5.1设计过程91
5.2设计原理94
5.2.1模组化94
5.2.2抽象955.2.3逐步求精95
5.2.4信息隐藏和局部化96
5.2.5模组独立97
5.3启发规则99
5.4描绘软体结构的图形工具102
5.4.1层次图和HIPO图102
5.4.2结构图103
5.5面向数据流的设计方法104
5.5.1概念104
5.5.2变换分析105
5.5.3事务分析111
5.5.4设计最佳化112
5.6小结113
习题5114
第6章详细设计117
6.1结构程式设计117
6.2人机界面设计119
6.2.1设计问题119
6.2.2设计过程121
6.2.3人机界面设计指南122
6.3过程设计的工具124
6.3.1程式流程图124
6.3.2盒图125
6.3.3PAD图126
6.3.4判定表127
6.3.5判定树128
6.3.6过程设计语言128
6.4面向数据结构的设计方法129
6.4.1Jackson图130
6.4.2改进的Jackson图131
6.4.3Jackson方法132
6.5程式複杂程度的定量度量136
6.5.1McCabe方法137
6.5.2Halstead方法139
6.6小结140
习题6140
第7章实现145
7.1编码146
7.1.1选择程式设计语言146
7.1.2编码风格147
7.2软体测试基础149
7.2.1软体测试的目标150
7.2.2软体测试準则150
7.2.3测试方法151
7.2.4测试步骤151
7.2.5测试阶段的信息流152
7.3单元测试153
7.3.1测试重点153
7.3.2代码审查154
7.3.3计算机测试155
7.4集成测试156
7.4.1自顶向下集成157
7.4.2自底向上集成158
7.4.3不同集成测试策略的比较159
7.4.4回归测试160
7.5确认测试160
7.5.1确认测试的範围160
7.5.2软体配置複查161
7.5.3Alpha和Beta测试161
7.6白盒测试技术162
7.6.1逻辑覆盖162
7.6.2控制结构测试165
7.7黑盒测试技术171
7.7.1等价划分172
7.7.2边界值分析175
7.7.3错误推测175
7.8调试176
7.8.1调试过程176
7.8.2调试途径178
7.9软体可靠性179
7.9.1基本概念179
7.9.2估算平均无故障时间的方法180
7.10小结182
习题7183第8章维护189
8.1软体维护的定义189
8.2软体维护的特点190
8.2.1结构化维护与非结构化维护差别巨大190
8.2.2维护的代价高昂1908.2.3维护的问题很多191
8.3软体维护过程192
8.4软体的可维护性194
8.4.1决定软体可维护性的因素194
8.4.2文档1958.4.3可维护性複审196
8.5预防性维护197
8.6软体再工程过程198
8.7小结200
习题8201第9章面向对象方法学引论203
9.1面向对象方法学概述203
9.1.1面向对象方法学的要点203
9.1.2面向对象方法学的优点205
9.2面向对象的概念2099.2.1对象209
9.2.2其他概念211
9.3面向对象建模215
9.4对象模型216
9.4.1类图的基本符号217
9.4.2表示关係的符号218
9.5动态模型223
9.6功能模型224
9.6.1用例图224
9.6.2用例建模227
9.73种模型之间的关係228
9.8小结229
习题9229第10章面向对象分析231
10.1面向对象分析的基本过程231
10.1.1概述231
10.1.23个子模型与5个层次232
10.2需求陈述23310.2.1书写要点233
10.2.2例子234
10.3建立对象模型235
10.3.1确定类与对象236
10.3.2确定关联238
10.3.3划分主题241
10.3.4确定属性241
10.3.5识别继承关係244
10.3.6反覆修改244
10.4建立动态模型247
10.4.1编写脚本247
10.4.2构想用户界面248
10.4.3画事件跟蹤图249
10.4.4画状态图250
10.4.5审查动态模型251
10.5建立功能模型253
10.5.1画出基本系统模型图253
10.5.2画出功能级数据流图254
10.5.3描述处理框功能254
10.6定义服务255
10.7小结256
习题10256第11章面向对象设计259
11.1面向对象设计的準则259
11.2启发规则261
11.3软体重用263
11.3.1概述263
11.3.2类构件265
11.3.3软体重用的效益266
11.4系统分解267
11.5设计问题域子系统270
11.6设计人机互动子系统273
11.7设计任务管理子系统275
11.8设计数据管理子系统277
11.8.1选择数据存储管理模式277
11.8.2设计数据管理子系统278
11.8.3例子280
11.9设计类中的服务280
11.9.1确定类中应有的服务280
11.9.2设计实现服务的方法281
11.10设计关联282
11.11设计最佳化283
11.11.1确定优先权283
11.11.2提高效率的几项技术284
11.11.3调整继承关係285
11.12小结287
习题11288
第12章面向对象实现289
12.1程式设计语言289
12.1.1面向对象语言的优点289
12.1.2面向对象语言的技术特点290
12.1.3选择面向对象语言294
12.2程式设计风格294
12.2.1提高可重用性295
12.2.2提高可扩充性297
12.2.3提高健壮性297
12.3测试策略298
12.3.1面向对象的单元测试298
12.3.2面向对象的集成测试299
12.3.3面向对象的确认测试299
12.4设计测试用例299
12.4.1测试类的方法300
12.4.2集成测试方法301
12.5小结303
习题12304
第13章软体项目管理305
13.1估算软体规模305
13.1.1代码行技术305
13.1.2功能点技术306
13.2工作量估算308
13.2.1静态单变数模型308
13.2.2动态多变数模型308
13.2.3COCOMO2模型309
13.3进度计画312
13.3.1估算开发时间312
13.3.2Gantt图314
13.3.3工程网路315
13.3.4估算工程进度316
13.3.5关键路径318
13.3.6机动时间318
13.4人员组织320
13.4.1民主製程序员组320
13.4.2主程式设计师组321
13.4.3现代程式设计师组322
13.5质量保证324
13.5.1软体质量324
13.5.2软体质量保证措施326
13.6软体配置管理328
13.6.1软体配置329
13.6.2软体配置管理过程329
13.7能力成熟度模型331
13.8小结334
习题13335
附录AC++类库管理系统的分析与设计337
A.1面向对象分析337
A.1.1需求337
A.1.2建立对象模型338
A.2面向对象设计339
A.2.1设计类库结构339
A.2.2设计问题域子系统340
A.2.3设计人机互动子系统341
A.2.4设计其他类344
参考文献347