本书根据现有软件工程教学和项目开发中存在的问题,结合软件工程的*新发展,以及目前软件工程教学的需要,围绕软件工程的三大要素——过程、方法和工具,以软件过程为引领,介绍软件开发工具和方法在不同软件开发阶段的建模和文档撰写。通过案例,以对比的方式,介绍结构化思想和面向对象思想在各个开发阶段中模型的体现,并在其中贯穿介绍了*新的软件工程应用技术。本书内容包括软件开发过程、软件建模工具、项目前期、需求分析、总体设计、详细设计与实现、软件测试、结构化开发案例、面向对象开发案例、综合实验等。在本书*后,介绍了安全设计、设计模式和UML语言等内容。
本书强调软件工程的理论与实践相结合,以软件开发过程为引导,介绍软件开发工具的使用和开发方法的应用。全书语言简练、通俗易懂,采用案例教学方法,注重培养软件项目实际建模能力和文档的写作能力,具有很强的实用性和可操作性。书中例题与习题丰富,便于教学和自学。
本书可作为高等院校计算机专业或信息类相关专业本科生软件工程相关课程的教材,也可作为高等职业技术学校信息类专业软件工程教材,也可供软件项目开发人员阅读参考。
1. 按照软件工程的流程设置章节内容,以实例为线索,强调每个阶段的建模与文档写作、图例绘制。
2. 对同一阶段下不同开发思想下的模型进行了比较,同时对各种图例中*可能常见的错误进行了讲解。开发者按图索骥地进行实际项目的组织开发。
3. 增补了不少软件开发知识,如项目前期如何根据现实进行需求抽取和表达,模型在开发过程各阶段之间如何进行衔接,开发思想如何在各阶段如何体现。
4. 增补目前有关软件开发的新技术新方法,并将它们完美地嵌套在合适的软件开发过程中
龙浩,博士。
江西师范大学 软件学院 副教授。
主讲课程: IT项目管理、 软件工程 、Web程序设计。
第1章 软件开发过程 1
1.1 软件工程概述 1
1.1.1 软件工程的发展历程 1
1.1.2 软件的特征和分类 2
1.1.3 软件危机 3
1.1.4 软件工程概念和基本原则 4
1.2 软件生命周期 5
1.2.1 软件定义期 5
1.2.2 软件开发期 5
1.2.3 软件运行与维护期 6
1.3 软件开发过程模型 7
1.3.1 瀑布模型 7
1.3.2 原型模型 8
1.3.3 增量模型 9
1.3.4 螺旋模型 10
1.3.5 喷泉模型 11
1.3.6 统一软件开发过程(RUP) 11
1.4 软件企业过程能力评价模型 13
1.5 软件开发技术 14
1.5.1 结构化技术 14
1.5.2 面向对象技术 15
1.5.3 组件技术 16
1.6 软件开发过程的建模与文档 24
1.7 本章小结 27
习题 28
第2章 软件建模工具 29
2.1 Visio工具 29
2.1.1 Visio简介 29
2.1.2 Visio 2013基本操作 31
2.1.3 Visio 2013建模示例 32
2.2 StarUML 38
2.2.1 StarUML简介 38
2.2.2 StarUML基本操作 39
2.2.3 StarUML建模示例 42
2.3 Rational Rose 47
2.3.1 Rational Rose简介 47
2.3.2 Rational Rose基本操作 48
2.3.3 Rational Rose建模示例 49
2.4 建模工具的比较 50
2.5 本章小结 51
习题 51
第3章 项目前期 52
3.1 项目前期的主要工作 52
3.1.1 现状分析 52
3.1.2 需求收集 59
3.1.3 粗略设计 61
3.1.4 可行性分析 67
3.2 结构化的项目前期实例 68
3.2.1 组织分析 68
3.2.2 业务流程分析 70
3.2.3 需求收集 74
3.2.4 粗略设计 77
3.2.5 可行性分析 86
3.3 面向对象的项目前期实例 87
3.3.1 组织分析 87
3.3.2 业务流程分析 87
3.3.3 需求收集(同3.2.3) 93
3.3.4 粗略设计 93
3.3.5 可行性分析(同3.2.5) 95
3.4 项目前期的文档描述规范 95
3.5 本章小结 96
习题 97
第4章 需求分析 98
4.1 需求分析概述 98
4.1.1 需求获取 98
4.1.2 需求建模并细化 99
4.1.3 需求文档化 105
4.1.4 需求验证 105
4.2 结构化方法的需求分析 106
4.3 面向对象的需求分析 112
4.4 需求分析的描述规范 118
4.5 本章小结 121
习题 121
第5章 总体设计 122
5.1 设计思想 122
5.1.1 结构化总体设计概述 122
5.1.2 面向对象总体设计概述 125
5.1.3 数据库设计 131
5.1.4 应用系统的安全设计 132
5.1.5 总体界面布局 135
5.2 结构化总体设计 136
5.3 面向对象总体设计 146
5.4 总体设计文档规范 155
5.5 本章小结 156
习题 156
第6章 详细设计与实现 157
6.1 详细设计 157
6.1.1 界面设计 157
6.1.2 模块/类方法设计 159
6.2 详细设计的模型 160
6.2.1 程序流程图 160
6.2.2 判定表 161
6.2.3 判定树 161
6.3 详细设计方法 162
6.3.1 Jackson方法 162
6.3.2 Jackson方法下模块设计 162
6.3.3 面向对象方法下的类方法设计 164
6.4 程序实现 165
6.4.1 程序设计语言选择 165
6.4.2 编码风格 165
6.5 调试 166
6.6 详细设计文档规范 167
6.7 本章小结 168
习题 168
第7章 软件测试 169
7.1 软件测试概述 169
7.1.1 测试目标和原则 169
7.1.2 测试过程模型 170
7.1.3 测试类型 171
7.1.4 测试方法 174
7.1.5 测试用例设计 176
7.2 结构化测试 178
7.2.1 模块内测试 179
7.2.2 模块测试 189
7.2.3 结构化集成测试 192
7.3 面向对象测试 193
7.3.1 类方法测试 193
7.3.2 类对象测试 193
7.3.3 面向对象的集成测试 198
7.4 软件测试文档 200
7.5 本章小结 206
习题 206
第8章 毕业论文管理系统——
结构化方法 208
8.1 项目前期 208
8.1.1 组织分析 208
8.1.2 业务分析 209
8.1.3 需求收集 212
8.1.4 粗略设计(略)(见9.1.3) 213
8.1.5 可行性分析(略) 213
8.2 需求分析 213
8.2.1 顶层数据流图 213
8.2.2 0层数据流图 214
8.2.3 1层数据流图 215
8.3 总体设计 229
8.3.1 总体功能结构 229
8.3.2 系统软件构成 230
8.3.3 系统物理构成 238
8.3.4 系统配置 238
8.3.5 数据库设计 239
8.4 详细设计 244
8.4.1 论文管理详细设计 244
8.4.2 答辩管理详细设计 245
8.5 本章小结 245
第9章 毕业论文管理系统——
面向对象方法 246
9.1 项目前期 246
9.1.1 软件分析 246
9.1.2 系统需求收集 249
9.1.3 粗略设计 250
9.1.4 可行性分析(略) 251
9.2 需求分析 251
9.2.1 用例图 251
9.2.2 用例描述 252
9.2.3 系统类 263
9.3 总体设计 264
9.3.1 功能结构设计 264
9.3.2 系统软件构成(部分) 265
9.3.3 功能模块与类程序的关系 265
9.3.4 接口 266
9.3.5 系统的物理构成与配置 269
9.3.6 系统数据结构设计 269
9.4 详细设计 272
9.5 系统测试用例 277
9.6 本章小结 279
第10章 综合实验 280
附录1 安全设计 292
A.主要依据 292
B.安全设计原则 292
C.安全保障系统设计目标 293
D.安全系统风险分析 293
E.安全体系框架 295
F.安全域的规划 296
G.安全技术体系设计 298
H.安全产品部署 305
I.安全管理体系设计 306
J.安全服务体系设计 311
附录2 设计模式 315
A.抽象工厂模式 315
B.建造者模式 316
C.原型模式 316
D.单例模式 317
E.适配器模式 317
F.桥接模式 318
G.组合模式 318
H.装饰模式 319
I.门面模式 319
J.享元模式 320
K.代理模式 320
L.职责链模式 321
M.命令模式 321
N.解析器模式 322
O.迭代器模式 323
P.中介模式 323
Q.备忘录模式 324
R.观察者模式 324
S.状态模式 325
T.策略模式 325
U.模板模式 326
V.访问者模式 326
附录3 UML建模语言 328
A.UML发展历程 328
B.UML的基本构成 329
C.UML的五种视图 330