- 化学工业出版社
- 9787122161215
- 1版
- 132188
- 64234761-1
- 16开
- 2013-03
- 447
- 284
- 工学
- 软件工程
- TP311.5
- 电子与信息大类
- 高职
作者简介
内容简介
本书从软件开发、维护和管理等方面,系统地介绍了软件工程的概念、原理、过程及主要方法,按照软件生存周期依次讲述了软件开发的可行性分析、项目计划、需求分析、系统设计、软件实现、软件测试与调试、软件运行与维护,对数据库、面向对象技术以及软件项目的管理进行了介绍。
本书采用案例式教学,理论与实践紧密结合,内容翔实,既注重基本知识的表述,又注重内容的先进性、科学性和系统性,反映软件工程、软件开发技术发展的最新成果,实用性、可操作性强。
本书可作为高职高专计算机类人才培养的专业教材,也可作为本科生的教学、参考用书,还可作为计算机爱好者的自学用书。
本书采用案例式教学,理论与实践紧密结合,内容翔实,既注重基本知识的表述,又注重内容的先进性、科学性和系统性,反映软件工程、软件开发技术发展的最新成果,实用性、可操作性强。
本书可作为高职高专计算机类人才培养的专业教材,也可作为本科生的教学、参考用书,还可作为计算机爱好者的自学用书。
目录
第1章软件及其可行性分析1
11软件与软件危机1
111软件的特点1
112软件发展简史2
113软件危机2
12软件生命周期4
121软件定义4
122软件开发5
123软件维护6
13软件过程模型6
131瀑布模型6
132快速原型模型7
133增量模型8
134螺旋模型9
135喷泉模型10
136构件组装模型10
137第四代技术模型11
14软件工程11
141软件工程的定义11
142软件工程的基本策略12
143软件工程应遵循的原则12
15可行性调研分析14
151项目开发背景14
152问题定义14
153可行性分析15
154开发计划的制定15
16实验实训16
小结16
习题一16
第2章需求分析18
21需求分析基础18
211需求分析的任务18
212需求分析的步骤19
213需求获取技术20
214需求分析模型21
22结构化分析方法22
221结构化开发方法23
222结构化分析方法23
23数据流图24
231数据流图的符号25
232数据流图的画法27
233检查和修改数据流图的原则30
234确定数据定义与加工策略31
24数据字典31
241数据字典的符号及其含义31
242实例32
25加工说明33
251结构化语言33
252判定表34
253判定树35
26软件需求规格说明与需求验证35
261需求规格说明35
262需求验证38
27实验实训39
小结39
习题二39
第3章软件设计42
31软件设计概述42
311软件设计在开发阶段中的重
要性42
312软件设计的任务42
32软件设计的基本原理44
321模块化44
322抽象45
323信息隐蔽45
324模块独立性45
33软件设计的准则50
34用户界面设计54
341界面设计的基本类型54
342界面设计的一般问题54
343用户界面设计指南55
35软件设计工具57
351层次图和HIPO图57
352结构图58
36面向数据流的设计方法59
361基本概念59
362设计过程60
363变换分析61
364事务分析设计62
365综合设计63
366结构化设计应用示例64
367设计的后处理65
37详细设计67
371详细设计的基本任务与原则67
372结构化程序设计68
373详细设计的工具69
38软件设计文档及其复审77
381软件设计文档77
382软件设计复审78
39实验实训78
小结79
习题三80
第4章软件项目的实现83
41程序设计方法83
411程序设计方法的发展83
412结构化程序设计84
413模块化程序设计的方法84
414面向对象的程序设计85
415编码的标准86
42程序设计语言的选择87
421程序设计语言的定义87
422程序设计语言的基本成分88
423程序设计语言的特性88
424程序设计语言的分类90
425程序设计语言的选择91
43编码的风格92
431源程序文档化93
432数据说明95
433程序的视觉组织95
434输入和输出95
435效率96
436其他推荐原则96
44实验实训97
小结97
习题四98
第5章软件测试100
51软件测试的目的100
511软件测试的定义100
512软件测试的目的100
513软件测试的原则101
52软件测试的方法和步骤102
521软件测试的方法102
522软件测试的信息流103
53黑盒测试103
531测试用例103
532黑盒测试的概念103
533黑盒测试用例的设计104
54白盒测试111
541白盒测试的概念111
542白盒测试用例的设计112
55软件测试的过程122
551软件测试过程概述122
552软件测试过程与软件开发各阶
段的关系122
553单元测试123
554集成测试126
555确认测试130
556系统测试132
56调试132
561调试步骤132
562调试方法132
563调试原则135
57实验实训136
小结136
习题五137
第6章软件维护139
61软件维护的目的139
611软件维护的原因139
612软件维护的定义139
613软件维护的分类139
62软件维护的成本140
621影响软件维护的因素140
622软件维护的困难性141
623软件维护成本的分析141
63软件维护活动的实施142
631软件维护的组织142
632软件维护的流程142
633保存软件维护记录143
634评价软件维护活动144
64软件可维护性145
641软件可维护性的定义145
642决定软件可维护性的因素145
643软件可维护性的度量146
644提高软件的可维护性方法146
65软件维护的副作用148
66软件再工程148
661软件再工程过程模型149
662逆向工程149
663软件重构150
67实验实训150
小结150
习题六150
第7章面向对象方法152
71面向对象方法的基础知识152
711面向对象方法的世界观152
712面向对象方法的基本概念154
713面向对象方法的基本过程157
714面向对象方法的与传统方法的
比较159
72面向对象的系统分析161
721关于模型161
722面向对象分析的基本原则162
723面向对象分析的任务与过程163
724明确问题域与系统责任165
725定义对象与类165
726识别对象间的结构166
727划分主题168
728定义属性与实例连接168
729定义服务与消息连接170
73面向对象的系统设计171
731面向对象设计的基本准则171
732面向对象设计过程173
733系统结构设计173
734类的设计174
735交互部分设计176
736数据管理部分设计177
74面向对象的程序设计178
741面向对象程序设计语言的发展178
742面向对象程序设计语言的特征178
743面向对象系统的实现途径179
75面向对象系统的测试180
751面向对象系统测试的特点180
752面向对象系统测试的过程181
753面向对象的测试策略183
754面向对象软件的测试用例
设计184
76统一建模语言UML185
761UML概念185
762UML组成186
763静态建模194
764动态建模199
77应用案例200
771初始阶段200
772细化阶段205
78实验实训216
小结217
习题七218
第8章软件复用222
81软件复用概述222
811软件复用的意义222
812软件复用的过程223
813软件复用的类型224
814分层式体系结构224
815复用的难度225
82构件与构件库226
821领域分析226
822构件的开发226
823构件库的组织228
824软件构件的复用229
83面向对象的软件复用229
831类构件230
832类库230
84实验实训231
小结231
习题八231
第9章软件项目管理233
91软件项目管理概述233
911软件项目管理的重要性233
912软件项目管理的内容233
913软件项目管理的特点234
92软件项目的估算235
921估算前的规划235
922估算的对象235
923估算的策略236
924估算的方法236
93软件项目的计划管理239
931软件项目计划的概念239
932软件项目计划的内容240
933软件项目进度安排240
94软件项目的风险管理242
941风险管理的重要性242
942风险管理的过程243
943风险辨识243
944风险分析243
945风险评估244
946风险应对245
95软件项目的人力资源管理245
951软件项目的人力资源245
952人力资源的组织建立246
953人员配备247
96软件配置管理249
961基线(Baseline)249
962软件配置项249
963软件配置管理的过程250
964软件配置管理的特点251
97软件质量保证252
971软件质量的定义252
972软件质量的评价252
973质量度量模型253
974软件复杂性253
975软件可靠性254
976软件评审255
977软件容错技术257
98能力成熟度模型(CMM)简介258
981基本概念258
982CMM框架258
983CMM应用261
984能力成熟度集成模型(CMMI)262
99实验实训263
小结263
习题九263
第10章软件工程环境266
101软件工具266
1011软件工具的基本概念266
1012软件工具的分类266
102计算机辅助软件工程(CASE)集成
环境268
1021CASE的优势268
1022CASE的组成268
1023CASE的体系结构269
103实用CASE工具270
1031Rational Rose简介270
1032Power Designer简介270
104实验实训272
小结272
习题十272
参考文献273
11软件与软件危机1
111软件的特点1
112软件发展简史2
113软件危机2
12软件生命周期4
121软件定义4
122软件开发5
123软件维护6
13软件过程模型6
131瀑布模型6
132快速原型模型7
133增量模型8
134螺旋模型9
135喷泉模型10
136构件组装模型10
137第四代技术模型11
14软件工程11
141软件工程的定义11
142软件工程的基本策略12
143软件工程应遵循的原则12
15可行性调研分析14
151项目开发背景14
152问题定义14
153可行性分析15
154开发计划的制定15
16实验实训16
小结16
习题一16
第2章需求分析18
21需求分析基础18
211需求分析的任务18
212需求分析的步骤19
213需求获取技术20
214需求分析模型21
22结构化分析方法22
221结构化开发方法23
222结构化分析方法23
23数据流图24
231数据流图的符号25
232数据流图的画法27
233检查和修改数据流图的原则30
234确定数据定义与加工策略31
24数据字典31
241数据字典的符号及其含义31
242实例32
25加工说明33
251结构化语言33
252判定表34
253判定树35
26软件需求规格说明与需求验证35
261需求规格说明35
262需求验证38
27实验实训39
小结39
习题二39
第3章软件设计42
31软件设计概述42
311软件设计在开发阶段中的重
要性42
312软件设计的任务42
32软件设计的基本原理44
321模块化44
322抽象45
323信息隐蔽45
324模块独立性45
33软件设计的准则50
34用户界面设计54
341界面设计的基本类型54
342界面设计的一般问题54
343用户界面设计指南55
35软件设计工具57
351层次图和HIPO图57
352结构图58
36面向数据流的设计方法59
361基本概念59
362设计过程60
363变换分析61
364事务分析设计62
365综合设计63
366结构化设计应用示例64
367设计的后处理65
37详细设计67
371详细设计的基本任务与原则67
372结构化程序设计68
373详细设计的工具69
38软件设计文档及其复审77
381软件设计文档77
382软件设计复审78
39实验实训78
小结79
习题三80
第4章软件项目的实现83
41程序设计方法83
411程序设计方法的发展83
412结构化程序设计84
413模块化程序设计的方法84
414面向对象的程序设计85
415编码的标准86
42程序设计语言的选择87
421程序设计语言的定义87
422程序设计语言的基本成分88
423程序设计语言的特性88
424程序设计语言的分类90
425程序设计语言的选择91
43编码的风格92
431源程序文档化93
432数据说明95
433程序的视觉组织95
434输入和输出95
435效率96
436其他推荐原则96
44实验实训97
小结97
习题四98
第5章软件测试100
51软件测试的目的100
511软件测试的定义100
512软件测试的目的100
513软件测试的原则101
52软件测试的方法和步骤102
521软件测试的方法102
522软件测试的信息流103
53黑盒测试103
531测试用例103
532黑盒测试的概念103
533黑盒测试用例的设计104
54白盒测试111
541白盒测试的概念111
542白盒测试用例的设计112
55软件测试的过程122
551软件测试过程概述122
552软件测试过程与软件开发各阶
段的关系122
553单元测试123
554集成测试126
555确认测试130
556系统测试132
56调试132
561调试步骤132
562调试方法132
563调试原则135
57实验实训136
小结136
习题五137
第6章软件维护139
61软件维护的目的139
611软件维护的原因139
612软件维护的定义139
613软件维护的分类139
62软件维护的成本140
621影响软件维护的因素140
622软件维护的困难性141
623软件维护成本的分析141
63软件维护活动的实施142
631软件维护的组织142
632软件维护的流程142
633保存软件维护记录143
634评价软件维护活动144
64软件可维护性145
641软件可维护性的定义145
642决定软件可维护性的因素145
643软件可维护性的度量146
644提高软件的可维护性方法146
65软件维护的副作用148
66软件再工程148
661软件再工程过程模型149
662逆向工程149
663软件重构150
67实验实训150
小结150
习题六150
第7章面向对象方法152
71面向对象方法的基础知识152
711面向对象方法的世界观152
712面向对象方法的基本概念154
713面向对象方法的基本过程157
714面向对象方法的与传统方法的
比较159
72面向对象的系统分析161
721关于模型161
722面向对象分析的基本原则162
723面向对象分析的任务与过程163
724明确问题域与系统责任165
725定义对象与类165
726识别对象间的结构166
727划分主题168
728定义属性与实例连接168
729定义服务与消息连接170
73面向对象的系统设计171
731面向对象设计的基本准则171
732面向对象设计过程173
733系统结构设计173
734类的设计174
735交互部分设计176
736数据管理部分设计177
74面向对象的程序设计178
741面向对象程序设计语言的发展178
742面向对象程序设计语言的特征178
743面向对象系统的实现途径179
75面向对象系统的测试180
751面向对象系统测试的特点180
752面向对象系统测试的过程181
753面向对象的测试策略183
754面向对象软件的测试用例
设计184
76统一建模语言UML185
761UML概念185
762UML组成186
763静态建模194
764动态建模199
77应用案例200
771初始阶段200
772细化阶段205
78实验实训216
小结217
习题七218
第8章软件复用222
81软件复用概述222
811软件复用的意义222
812软件复用的过程223
813软件复用的类型224
814分层式体系结构224
815复用的难度225
82构件与构件库226
821领域分析226
822构件的开发226
823构件库的组织228
824软件构件的复用229
83面向对象的软件复用229
831类构件230
832类库230
84实验实训231
小结231
习题八231
第9章软件项目管理233
91软件项目管理概述233
911软件项目管理的重要性233
912软件项目管理的内容233
913软件项目管理的特点234
92软件项目的估算235
921估算前的规划235
922估算的对象235
923估算的策略236
924估算的方法236
93软件项目的计划管理239
931软件项目计划的概念239
932软件项目计划的内容240
933软件项目进度安排240
94软件项目的风险管理242
941风险管理的重要性242
942风险管理的过程243
943风险辨识243
944风险分析243
945风险评估244
946风险应对245
95软件项目的人力资源管理245
951软件项目的人力资源245
952人力资源的组织建立246
953人员配备247
96软件配置管理249
961基线(Baseline)249
962软件配置项249
963软件配置管理的过程250
964软件配置管理的特点251
97软件质量保证252
971软件质量的定义252
972软件质量的评价252
973质量度量模型253
974软件复杂性253
975软件可靠性254
976软件评审255
977软件容错技术257
98能力成熟度模型(CMM)简介258
981基本概念258
982CMM框架258
983CMM应用261
984能力成熟度集成模型(CMMI)262
99实验实训263
小结263
习题九263
第10章软件工程环境266
101软件工具266
1011软件工具的基本概念266
1012软件工具的分类266
102计算机辅助软件工程(CASE)集成
环境268
1021CASE的优势268
1022CASE的组成268
1023CASE的体系结构269
103实用CASE工具270
1031Rational Rose简介270
1032Power Designer简介270
104实验实训272
小结272
习题十272
参考文献273