目录
第1篇软件工程与软件过程
第1章软件工程概述/2
1.1软件工程学的背景和目的/2
1.1.1软件与软件的组成/2
1.1.2软件的特点/3
1.1.3软件的分类/3
1.1.4软件的历史与发展/4
1.1.5软件危机/5
1.1.6软件工程/7
1.2软件开发方法/7
1.3软件安全/8
1.3.1软件安全的概念/8
1.3.2软件安全的威胁/8
1.4案例——“图书管理系统”项目
提出/9
1.5实训——“学生管理系统”项目
提出/10
小结/11
习题/11
第2章过程和生命周期的建模/12
2.1过程的含义/12
2.2软件过程模型/12
2.2.1瀑布模型/13
2.2.2渐进式模型/15
2.2.3过程的迭代/16
2.2.4V模型/17
2.2.5原型化模型/17
2.2.6敏捷开发模型/18
2.3软件开发标准/22
2.3.1国内外标准概述/22
2.3.2软件工程标准的层次/23
2.4软件安全开发生命周期/24
2.4.1软件安全开发/25
2.4.2安全开发生命周期/25
2.5案例——“图书管理系统”软件
开发计划/26
2.6实训——“学生管理系统”软件
开发计划/28
小结/29
习题/29
第3章可行性研究/30
3.1问题定义与任务/30
3.2可行性研究的步骤/31
3.3系统流程图/33
3.4成本/效益分析/34
3.5案例——“图书管理系统”可行
性分析报告/37
3.6实训——“学生管理系统”可行性
分析报告/42
小结/44
习题/44
第2篇传统方法学
第4章需求分析基础/46
4.1需求分析和规格说明阶段的
基本概念/46
4.2初步需求获取技术/46
4.2.1访谈与调查问卷/47
4.2.2跟班作业/47
4.2.3组成联合小组/48
4.3需求建模/48
4.4需求规格说明与评审/49
4.4.1需求规格说明书的内容/49
4.4.2需求评审/52
4.5软件安全需求/53
4.5.1安全需求/53
4.5.2安全需求分析方法/53
4.6案例——“图书管理系统”需求
规格说明书/56
4.7实训——“学生管理系统”需求
规格说明书/59
小结/60
习题/60
第5章面向数据流的分析方法/62
5.1结构化分析概述/62
5.2数据流图/63
5.2.1数据流图的基本成分/63
5.2.2由外向里画数据流图/65
5.2.3分层数据流图/66
5.2.4由顶向下画分层数据流图/66
5.2.5数据流图的改进/68
5.3数据词典/70
5.3.1词典条目的各种类型/70
5.3.2词典条目的实例/73
5.4小说明/74
5.4.1加工的描述/74
5.4.2结构化语言/75
5.4.3判定表/76
5.4.4判定树/78
5.4.5词典的实现/78
5.5SA方法小结/78
5.6案例——“图书管理系统”
数据流图/79
5.7实训——“学生管理系统”
数据流图和数据词典/82
小结/83
习题/83
第6章软件设计基础/84
6.1软件设计概述/84
6.1.1软件设计的任务和步骤/84
6.1.2概要设计的基本概念/85
6.1.3详细设计的基本概念/85
6.2软件体系结构/87
6.2.1软件体系结构概述/87
6.2.2集中式体系结构/90
6.2.3基于网络的体系结构/93
6.3设计模式/96
6.3.1Factory Method(工厂方法)/96
6.3.2Abstract Factory(抽象工厂)/99
6.3.3Singleton(单例)/102
6.3.4Composite(组合)/104
6.3.5Proxy(代理)/109
6.3.6Iterator(迭代器)/111
6.3.7Observer(观察者)/114
6.4模块化设计/117
6.4.1模块概述/117
6.4.2模块间联系和模块内联系/119
6.5结构图的改进/123
6.5.1模块的大小/123
6.5.2扇出和扇入/124
6.5.3作用范围和控制范围/125
6.6详细设计的描述方式/126
6.6.1流程图/126
6.6.2盒图/127
6.6.3问题分析图/128
6.6.4IPO图/129
6.6.5过程设计语言/129
6.7案例——“图书管理系统”
结构图/131
6.8实训——“学生管理系统”
结构图/131
小结/132
习题/132
第7章面向数据流的设计方法/133
7.1基本概念和设计过程/133
7.2变换分析/134
7.3事务分析/136
7.4综合设计/136
7.5SD方法小结/137
7.6软件设计文档/137
7.6.1概要设计说明书/137
7.6.2详细设计说明书/140
7.7其他设计方法/141
7.8案例——“图书管理系统”概要
设计说明书/143
7.9实训——“学生管理系统”概要
设计说明书/147
小结/148
习题/149
第8章可信软件设计/150
8.1可信软件的特点/150
8.2安全设计原则/151
8.3容错设计/152
8.4软件故障树分析/153
8.5嵌入式和实时软件设计/156
小结/156
习题/156
第9章软件界面设计/157
9.1软件界面设计概述/157
9.1.1软件界面的定义与要素/157
9.1.2界面设计的目标/159
9.1.3界面设计的重要性/161
9.2界面设计的基本原则/163
9.2.1一致性原则/163
9.2.2可见性原则/164
9.2.3反馈原则/166
9.2.4简洁性原则/167
9.2.5容错性原则/169
9.2.6可学习性原则/170
9.3界面交互的分析与设计过程/172
9.4界面交互分析/180
9.4.1用户交互特征分析/180
9.4.2任务与行为路径分析/181
9.4.3信息流与操作流分析/182
9.4.4情境化与认知负荷分析/183
9.4.5交互分析模型与工具/184
9.5界面交互设计/185
9.5.1交互设计的核心要素/186
9.5.2交互设计的层次与模型/187
9.5.3典型交互模式与设计策略/188
9.6手机应用界面设计/189
9.6.1手机界面设计的特点与挑战/190
9.6.2手机界面设计的结构与布局/190
9.6.3手机交互设计要点/191
9.7界面设计的评估/191
9.7.1界面评估的意义/192
9.7.2界面评估的基本原则/192
9.7.3界面评估的方案/192
小结/194
习题/194
第10章软件实现/195
10.1程序设计语言/195
10.1.1语言类别/195
10.1.2语言选择/197
10.2软件重用/198
10.2.1软件重用的方法和主要
实现途径/198
10.2.2面向对象的软件重用技术/199
10.3开源软件/200
10.3.1开源社区/200
10.3.2开源软件的应用/200
10.3.3开源软件项目资源/204
10.3.4基于开源软件的软件开发/204
10.3.5开源社区中利用资源实践/205
10.4SP方法与编程/208
10.5程序内部文档/209
10.6编程风格/210
10.6.1编码原则/210
10.6.2程序设计风格/211
10.7程序的效率/215
10.8程序设计自动化/216
10.9安全编码/216
10.10案例——“图书管理系统”
详细设计说明书/218
10.11实训——“学生管理系统”
详细设计说明书/221
小结/222
习题/222
第11章软件检验和测试/223
11.1检验的基本概念/223
11.1.1概述/223
11.1.2软件检验手段/224
11.2软件评审/224
11.2.1评审过程/224
11.2.2评审条款/226
11.3测试的基本概念/227
11.4白盒法/228
11.4.1概述/228
11.4.2语句覆盖/229
11.4.3判定覆盖/229
11.4.4条件覆盖/230
11.4.5判定/条件覆盖/230
11.4.6条件组合覆盖/230
11.5黑盒法/231
11.5.1等价分类法/231
11.5.2边缘值分析法/233
11.5.3因果图法/234
11.5.4错误推测法/235
11.5.5综合策略/236
11.6测试步骤/236
11.7单元测试/237
11.7.1单元测试概述/237
11.7.2单元测试的方法/238
11.8联合测试/239
11.9有效性测试/241
11.10系统测试/241
11.11安全测试/242
11.11.1软件安全测试/242
11.11.2模糊测试/243
11.11.3渗透测试/244
11.12综合测试文档/245
11.13案例——“图书管理系统”
测试分析报告/247
11.14实训——“学生管理系统”
测试分析报告/249
小结/250
习题/251
第12章软件维护/252
12.1维护的基本概念/252
12.2维护的种类/253
12.3维护的步骤与方法/254
12.3.1维护步骤/254
12.3.2维护方法/255
12.4可维护性/256
12.4.1决定软件可维护性的因素/256
12.4.2可维护性复审/258
12.5维护工作的管理/258
12.5.1维护的管理和组织/258
12.5.2维护报告/259
12.6维护的副作用/260
12.7软件维护文档/261
12.8案例——“图书管理系统”
软件维护手册/264
12.9实训——“学生管理系统”
软件维护手册/268
小结/269
习题/269
第3篇面向对象方法学
第13章统一建模语言/272
13.1面向对象方法概述/272
13.1.1面向对象方法的特点/272
13.1.2面向对象的概念/272
13.2UML概述/274
13.2.1UML的特点/274
13.2.2UML的构成/275
13.2.3UML与RUP/275
13.3UML的视图/275
13.4UML的模型元素/276
13.4.1事物/276
13.4.2关系/277
13.5UML的模型图/277
13.5.1用例图/277
13.5.2类图/280
13.5.3对象图/283
13.5.4包图/284
13.5.5状态图/284
13.5.6活动图/285
13.5.7顺序图/286
13.5.8协作图/287
13.5.9组件图/287
13.5.10配置图/289
13.6UML的公共机制/289
13.6.1注释/289
13.6.2修饰/290
13.6.3规格说明/290
13.6.4通用划分/290
13.6.5扩展机制/290
小结/290
习题/291
第14章面向对象分析/292
14.1需求分析与用例建模/292
14.1.1用例建模概述/292
14.1.2确定系统的范围和边界/292
14.1.3确定系统的参与者/293
14.1.4确定系统的用例/293
14.1.5描述用例/294
14.1.6用例分类,确定用例之间
的关系/295
14.1.7定义用例图的层次结构/295
14.1.8软件需求分析规格说明书/296
14.2活动图建模/296
14.3系统分析与建模/297
14.3.1建立对象类静态模型/297
14.3.2建立对象类动态模型/300
14.3.3建立系统功能模型/300
14.3.4系统分析规格说明书/301
14.4面向对象分析案例/302
14.4.1需求分析与系统功能/302
14.4.2创建用例模型/302
14.4.3用例描述与活动图建模/305
14.4.4创建对象类静态模型/309
小结/312
习题/312
第15章面向对象设计/313
15.1面向对象设计方法/313
15.1.1面向对象设计概述/313
15.1.2系统分解/313
15.1.3系统设计规格说明书/314
15.2对象类动态模型建模/316
15.2.1交互模型建模/316
15.2.2状态模型建模/318
15.3系统体系结构建模/319
15.3.1软件系统体系结构模型/319
15.3.2硬件系统体系结构模型/319
15.3.3组件图建模/320
15.3.4配置图建模/322
15.4面向对象设计案例/323
15.4.1创建动态模型/323
15.4.2创建系统体系结构模型/329
小结/330
习题/331
第16章面向对象软件开发工具
Rational Rose/332
16.1Rational Rose简介/332
16.2Rational Rose的安装、启动
与退出/333
16.2.1Rational Rose安装前的
准备工作/333
16.2.2Rational Rose的安装/333
16.2.3Rational Rose的启动与
退出/337
16.3Rational Rose的界面操作/338
16.3.1如何创建新模型/338
16.3.2Rational Rose的主界面/339
16.3.3Rational Rose建模/343
16.4创建用例图/344
16.4.1打开用例图窗口/345
16.4.2用例图工具栏/345
16.4.3添加参与者与用例/346
16.4.4设置属性/346
16.4.5添加关系/347
16.5创建类图/347
16.5.1类图编辑窗口/348
16.5.2创建类/348
16.5.3建立类之间的关系/351
16.6创建包图/353
16.6.1创建包/353
16.6.2设置包的属性/353
16.6.3在包中添加元素/354
16.6.4添加包信息/354
16.6.5添加包之间的依赖关系/354
16.7创建状态图/355
16.7.1状态图编辑窗口/355
16.7.2状态图建模/356
16.8创建活动图/358
16.8.1活动图编辑窗口/358
16.8.2活动图建模/359
16.9创建顺序图/360
16.9.1顺序图编辑窗口/360
16.9.2顺序图建模/361
16.10创建协作图/364
16.10.1协作图编辑窗口/364
16.10.2协作图建模/365
16.11创建组件图/367
16.11.1组件图编辑窗口/367
16.11.2组件图建模/368
16.12创建配置图/371
16.12.1配置图编辑窗口/371
16.12.2配置图建模/372
16.13Rational Rose的双向工程/374
16.13.1双向工程概述/374
16.13.2正向工程——Java代码
生成/375
16.13.3逆向工程——Java模型
重建/379
16.14数据库设计建模/380
16.14.1设置DBMS/380
16.14.2创建数据库关系模式/381
16.14.3生成数据库代码/385
16.14.4数据库建模的逆向工程/388
小结/390
习题/390
第4篇软件项目组织与管理
第17章软件项目管理概述/392
17.1项目的定义/392
17.2软件项目/393
17.2.1软件项目失败的现象/393
17.2.2软件项目管理问题分析/394
17.2.3软件项目成功的标志/395
17.2.4软件项目需要科学化管理/396
17.3项目管理的定义/396
17.3.1项目管理的产生与发展/396
17.3.2项目管理在中国的发展/397
17.3.3项目管理定义与要素/397
17.3.4项目管理研究体系/398
17.4项目管理的高级话题/398
17.4.1大项目和大项目管理/398
17.4.2子项目/399
17.4.3项目、项目集、项目组合和
组织级项目之间的关系/399
小结/399
习题/400
第18章项目组织/401
18.1项目组织结构/401
18.2项目管理办公室/403
18.3项目经理/403
18.3.1项目经理的定义和职责/403
18.3.2项目经理应该具备的技能
和素质/404
18.3.3怎样做好项目经理/405
小结/406
习题/407
第19章项目立项管理/408
19.1项目建议书/408
19.2项目可行性研究/409
19.3项目评估与论证/412
19.3.1项目评估/412
19.3.2项目论证/413
19.4项目招投标/414
小结/414
习题/415
第20章项目过程管理/416
20.1项目管理过程组/416
20.2项目管理知识体系/417
20.3整体管理/418
20.3.1整体管理概况/418
20.3.2制定项目章程/419
20.3.3制订项目管理计划/425
20.3.4指导与管理项目执行工作/428
20.3.5监督和控制项目工作/430
20.3.6实施整体变更控制/432
20.3.7项目收尾/433
20.4范围管理/433
20.4.1范围管理概况/433
20.4.2范围管理过程/434
20.5进度管理/441
20.5.1进度管理概况/441
20.5.2进度管理过程/442
20.6成本管理/449
20.6.1成本管理概况/449
20.6.2成本管理过程/452
20.7质量管理/456
20.7.1质量管理概况/456
20.7.2质量管理过程/457
20.8人力资源管理/461
20.8.1人力资源管理概况/461
20.8.2人力资源管理过程/463
20.9沟通管理/468
20.9.1沟通管理概况/468
20.9.2沟通管理过程/470
20.10风险管理/472
20.10.1风险管理概况/472
20.10.2风险管理过程/474
20.11采购管理/479
20.11.1采购管理概况/479
20.11.2采购管理过程/481
20.12干系人管理/484
20.12.1干系人管理概况/484
20.12.2干系人识别/486
20.12.3项目干系人分析/488
20.12.4项目干系人管理计划
制订/490
20.12.5项目干系人管理的执行
与监控/491
小结/492
习题/493
第21章信息系统项目管理师资格考试/494
21.1考试介绍/494
21.2考试要求/494
21.3考试和报名时间/494
21.4考试科目/495
21.5报名方式/495
21.6信息系统项目管理师的职业
发展价值/496
21.7信息系统项目管理师核心知识
体系/497
21.7.1五大项目管理过程组/497
21.7.2十大核心知识领域/497
21.7.3信息系统专业技术基础/49821.8信息系统项目管理师考试备考
策略/499
21.8.1信息系统教材与大纲为本/499
21.8.2信息系统分阶段备考规划/499
21.8.3案例分析题答题技巧/499
小结/500
第22章软件项目管理案例/501
附录A软件项目管理过程案例文档/509
A.1项目计划书/509
A.2开发语言决策分析表/518
A.3工作量估算表/519
A.4需求跟踪矩阵检查单/519
A.5风险检查表/520
A.6变更申请单/523
A.7质量跟踪——评审缺陷/524
A.8集成测试用例/525
附录B软件工程标准化文档/527
B.1可行性分析(研究)报告/528
B.2软件开发计划/529
B.3软件需求规格说明/535
B.4软件测试报告/541
参考文献/543
