软件工程
¥
11.61
3.9折
¥
29.5
九品
仅1件
作者张海藩 著
出版社清华大学出版社
出版时间2009-07
版次1
装帧平装
货号A2
上书时间2024-12-27
商品详情
- 品相描述:九品
图书标准信息
-
作者
张海藩 著
-
出版社
清华大学出版社
-
出版时间
2009-07
-
版次
1
-
ISBN
9787302198123
-
定价
29.50元
-
装帧
平装
-
开本
16开
-
纸张
胶版纸
-
页数
334页
-
字数
506千字
-
正文语种
简体中文
- 【内容简介】
-
为了满足“软件工程”课程学时较少的高等学校对一本适用教材的迫切需求,作者对先后荣获了全国普通高等学校工科电子类专业优秀教材一等奖和全国优秀畅销书奖,并被评为北京高等教育精品教材的《软件工程导论》作了精心改编,保留了原书中较重要、较新颖的内容,删除或简化了一些较陈旧或较次要的内容,写出了《软件工程》。
本书全面系统地讲述了软件工程的概念、原理和典型的方法学,并介绍了软件项目的管理技术。本书正文共13章,第1章是概述,第2章至第8章顺序讲述软件生命周期各阶段的任务、过程、结构化方法和工具,第9章至第12章分别讲述面向对象方法学引论、面向对象分析、面向对象设计和面向对象实现,第13章介绍软件项目管理。正文后面有两个附录,分别讲述了用面向对象方法和结构化方法开发两个软件的过程,对读者深入理解软件工程学很有帮助,也是上机实习的好材料。
本书可作为高等院校“软件工程”课程的教材或教学参考书,也可供有一定实际经验的软件工作人员和需要开发应用软件的广大计算机用户阅读参考。
- 【目录】
-
第1章软件工程学概述1
1.1软件危机1
1.1.1软件危机的介绍1
1.1.2产生软件危机的原因2
1.1.3消除软件危机的途径4
1.2软件工程4
1.2.1软件工程的介绍4
1.2.2软件工程的基本原理5
1.2.3软件工程方法学5
1.3软件生命周期8
1.4软件过程11
1.4.1瀑布模型11
1.4.2快速原型模型13
1.4.3增量模型15
1.4.4螺旋模型16
1.4.5喷泉模型18
1.4.6Rational统一过程19
1.4.7敏捷过程与极限编程22
1.4.8微软过程26
1.5小结28
习题129
第2章可行性研究31
2.1可行性研究的任务31
2.2可行性研究过程32
2.3数据流图34
2.3.1符号342.3.2例子35
2.3.3命名38
2.3.4用途39
2.4数据字典40
2.4.1数据字典的内容40
2.4.2定义数据的方法41
2.4.3数据字典的用途42
2.4.4数据字典的实现42
2.5成本/效益分析43
2.5.1成本估计43
2.5.2成本/效益分析的方法44
2.6小结46
习题247
软件工程目录第3章需求分析49
3.1需求分析的任务50
3.1.1确定对系统的综合要求50
3.1.2分析系统的数据要求51
3.1.3导出系统的逻辑模型52
3.1.4修正系统开发计划52
3.2与用户沟通获取需求的方法52
3.2.1访谈52
3.2.2面向数据流自顶向下求精53
3.2.3简易的应用规格说明技术54
3.2.4快速建立软件原型55
3.3分析建模与规格说明56
3.3.1分析建模56
3.3.2软件需求规格说明56
3.4实体-联系图56
3.4.1数据对象57
3.4.2属性57
3.4.3联系57
3.4.4实体-联系图的符号58
3.5数据规范化58
3.6状态转换图59
3.6.1状态59
3.6.2事件59
3.6.3符号60
3.6.4例子60
3.7其他图形工具61
3.7.1层次方框图62
3.7.2Warnier图62
3.7.3IPO图63
3.8验证软件需求64
3.8.1从哪些方面验证软件需求的正确性64
3.8.2验证软件需求的方法64
3.8.3用于需求分析的软件工具65
3.9小结66
习题367
第4章形式化说明技术69
4.1概述69
4.1.1非形式化方法的缺点69
4.1.2形式化方法的优点70
4.1.3应用形式化方法的准则70
4.2有穷状态机71
4.2.1概念71
4.2.2例子73
4.2.3评价76
4.3Petri网76
4.3.1概念76
4.3.2例子78
4.4Z语言79
4.4.1简介79
4.4.2评价82
4.5小结82
习题483
第5章总体设计85
5.1设计过程85
5.2设计原理87
5.2.1模块化87
5.2.2抽象89
5.2.3逐步求精89
5.2.4信息隐藏和局部化90
5.2.5模块独立91
5.3启发规则93
5.4描绘软件结构的图形工具95
5.4.1层次图和HIPO图95
5.4.2结构图96
5.5小结97
习题598
第6章详细设计101
6.1结构程序设计101
6.2人机界面设计103
6.2.1设计问题103
6.2.2设计过程105
6.2.3人机界面设计指南106
6.3过程设计的工具108
6.3.1程序流程图108
6.3.2盒图108
6.3.3PAD图109
6.3.4判定表110
6.3.5判定树111
6.3.6过程设计语言112
6.4程序复杂程度的定量度量113
6.4.1McCabe方法113
6.4.2Halstead方法116
6.5小结116
习题6117
第7章实现121
7.1编码122
7.1.1选择程序设计语言122
7.1.2编码风格122
7.2软件测试基础123
7.2.1软件测试的目标123
7.2.2软件测试准则124
7.2.3测试方法124
7.2.4测试步骤125
7.2.5测试阶段的信息流126
7.3单元测试126
7.3.1测试重点127
7.3.2代码审查128
7.3.3计算机测试128
7.4集成测试130
7.4.1自顶向下集成130
7.4.2自底向上集成132
7.4.3不同集成测试策略的比较132
7.4.4回归测试133
7.5确认测试133
7.5.1确认测试的范围134
7.5.2软件配置复查134
7.5.3Alpha和Beta测试134
7.6白盒测试技术135
7.6.1逻辑覆盖135
7.6.2控制结构测试138
7.7黑盒测试技术144
7.7.1等价划分145
7.7.2边界值分析148
7.7.3错误推测148
7.8调试149
7.8.1调试过程149
7.8.2调试途径151
7.9软件可靠性152
7.9.1基本概念152
7.9.2估算平均无故障时间的方法153
7.10小结155
习题7156
第8章维护161
8.1软件维护的定义161
8.2软件维护的特点162
8.2.1结构化维护与非结构化维护差别巨大162
8.2.2维护的代价高昂162
8.2.3维护的问题很多163
8.3软件维护过程164
8.4软件的可维护性166
8.4.1决定软件可维护性的因素166
8.4.2文档167
8.4.3可维护性复审168
8.5预防性维护169
8.6软件再工程过程170
8.7小结172
习题8173
第9章面向对象方法学引论175
9.1面向对象方法学概述175
9.1.1面向对象方法学的要点175
9.1.2面向对象方法学的优点177
9.2面向对象的概念181
9.2.1对象181
9.2.2其他概念183
9.3面向对象建模187
9.4对象模型188
9.4.1类图的基本符号189
9.4.2表示关系的符号190
9.5动态模型195
9.6功能模型196
9.6.1用例图196
9.6.2用例建模199
9.73种模型之间的关系200
9.8小结201
习题9201
第10章面向对象分析203
10.1面向对象分析的基本过程203
10.1.1概述203
10.1.23个子模型与5个层次204
10.2需求陈述205
10.2.1书写要点205
10.2.2例子206
10.3建立对象模型207
10.3.1确定类与对象208
10.3.2确定关联210
10.3.3划分主题213
10.3.4确定属性213
10.3.5识别继承关系216
10.3.6反复修改216
10.4建立动态模型219
10.4.1编写脚本219
10.4.2设想用户界面220
10.4.3画事件跟踪图221
10.4.4画状态图222
10.4.5审查动态模型223
10.5建立功能模型225
10.5.1画出基本系统模型图225
10.5.2画出功能级数据流图226
10.5.3描述处理框功能226
10.6定义服务227
10.7小结228
习题10228
第11章面向对象设计231
11.1面向对象设计的准则231
11.2启发规则233
11.3软件重用235
11.3.1概述235
11.3.2类构件237
11.3.3软件重用的效益238
11.4系统分解239
11.5设计问题域子系统242
11.6设计人机交互子系统245
11.7设计任务管理子系统247
11.8设计数据管理子系统249
11.8.1数据存储管理模式选择249
11.8.2数据管理子系统设计250
11.8.3例子252
11.9设计类中的服务252
11.9.1确定类中应有的服务252
11.9.2设计实现服务的方法253
11.10设计关联254
11.11设计优化255
11.11.1确定优先级255
11.11.2提高效率的几项技术256
11.11.3调整继承关系257
11.12小结259
习题11260
第12章面向对象实现261
12.1程序设计语言261
12.1.1面向对象语言的优点261
12.1.2面向对象语言的技术特点262
12.1.3选择面向对象语言266
12.2程序设计风格266
12.2.1提高可重用性267
12.2.2提高可扩充性269
12.2.3提高健壮性269
12.3测试策略270
12.3.1面向对象的单元测试270
12.3.2面向对象的集成测试271
12.3.3面向对象的确认测试271
12.4设计测试用例271
12.4.1测试类的方法272
12.4.2集成测试方法273
12.5小结275
习题12276
第13章软件项目管理277
13.1估算软件规模277
13.1.1代码行技术277
13.1.2功能点技术278
13.2工作量估算280
13.2.1静态单变量模型280
13.2.2动态多变量模型280
13.2.3COCOMO2模型281
13.3进度计划284
13.3.1估算开发时间284
13.3.2Gantt图286
13.3.3工程网络287
13.3.4估算工程进度288
13.3.5关键路径290
13.3.6机动时间290
13.4人员组织292
13.4.1民主制程序员组292
13.4.2主程序员组293
13.4.3现代程序员组294
13.5质量保证296
13.5.1软件质量296
13.5.2软件质量保证措施298
13.6软件配置管理300
13.6.1软件配置301
13.6.2软件配置管理过程301
13.7能力成熟度模型303
13.8小结306
习题13307
附录AC++类库管理系统的分析与设计309
A.1面向对象分析309
A.1.1需求309
A.1.2建立对象模型310
A.2面向对象设计311
A.2.1设计类库结构311
A.2.2设计问题域子系统312
A.2.3设计人机交互子系统313
A.2.4设计其他类316
附录B一个汉字行编辑程序的设计317
B.1设计规格说明317
B.1.1外部编辑命令317
B.1.2编辑命令318
B.1.3输出信息319
B.2概要设计320
B.2.1正文文件320
B.2.2两个工作模式321
B.2.3数据元素322
B.2.4过程323
B.3概要设计结果323
B.4详细设计326
B.4.1数据元素326
B.4.2控制数据元素328
B.4.3编辑过程328
B.4.4输入模式的过程329
B.4.5编辑模式的过程330
B.4.6编辑程序的详细结构333
参考文献335
第1章软件工程学概述1
1.1软件危机1
1.1.1软件危机的介绍1
1.1.2产生软件危机的原因3
1.1.3消除软件危机的途径4
1.2软件工程5
1.2.1软件工程的介绍5
1.2.2软件工程的基本原理7
1.2.3软件工程方法学9
1.3软件生命周期11
1.4软件过程14
1.4.1瀑布模型15
1.4.2快速原型模型16
1.4.3增量模型17
1.4.4螺旋模型19
1.4.5喷泉模型21
1.4.6Rational统一过程22
1.4.7敏捷过程与极限编程25
1.4.8微软过程29
1.5小结31
习题132
第2章可行性研究35
2.1可行性研究的任务35
2.2可行性研究过程36
2.3系统流程图382.3.1符号38
2.3.2例子38
2.3.3分层40
2.4数据流图40
软件工程目录2.4.1符号40
2.4.2例子42
2.4.3命名44
2.4.4用途45
2.5数据字典47
2.5.1数据字典的内容47
2.5.2定义数据的方法47
2.5.3数据字典的用途48
2.5.4数据字典的实现49
2.6成本/效益分析49
2.6.1成本估计50
2.6.2成本/效益分析的方法51
2.7小结53
习题253
第3章需求分析55
3.1需求分析的任务56
3.1.1确定对系统的综合要求56
3.1.2分析系统的数据要求57
3.1.3导出系统的逻辑模型58
3.1.4修正系统开发计划58
3.2与用户沟通获取需求的方法58
3.2.1访谈58
3.2.2面向数据流自顶向下求精59
3.2.3简易的应用规格说明技术59
3.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状态65
3.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例子79
4.2.3评价82
4.3Petri网82
4.3.1概念82
4.3.2例子84
4.4Z语言85
4.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抽象95
5.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维护的代价高昂190
8.2.3维护的问题很多191
8.3软件维护过程192
8.4软件的可维护性194
8.4.1决定软件可维护性的因素194
8.4.2文档195
8.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面向对象的概念209
9.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需求陈述233
10.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
附录B一个汉字行编辑程序的设计347
B.1设计规格说明347
B.1.1外部编辑命令347
B.1.2编辑命令348
B.1.3输出信息349
B.2概要设计350
B.2.1正文文件350
B.2.2两个工作模式351
B.2.3数据元素352
B.2.4过程353
B.3概要设计结果353
B.4详细设计356
B.4.1数据元素356
B.4.2控制数据元素357
B.4.3编辑过程357
B.4.4输入模式的过程359
B.4.5编辑模式的过程360
B.5详细设计结果364
B.5.1编辑程序的详细结构364
B.5.2类PASCAL伪码365
B.5.3实现编辑程序的算法367
参考文献395
点击展开
点击收起
— 没有更多了 —
以下为对购买帮助不大的评价