本书主要介绍的是采用UML建模实现软件工程的主要过程,包括需求、分析、设计、代码导出、设计模型维护等,对协作开发等团队开发所要求的必备知识也进行了详细的描述。本书采用了国内实际软件工程中的大量截图,通过图形和示例描述工程实际中的问题和过程。这在国内原创的软件工程类书籍中是很少见的。
本书适合于对UML基础知识有一定的了解,同时参加过一些实际工程项目开发而又对全程建模过程实现感兴趣的人员阅读。
第1章 需求工程 1
第1节 需求的定义 1
第2节 需求调研 3
1.2.1 调研中存在的问题 4
1.2.2 过去和现在的对比 8
1.2.3 新现象的分析 10
1.2.4 软件外包与编码 11
1.2.5 如何和用户交流 12
1.2.6 什么是用户 17
1.2.7 参与人员建议 22
1.2.8 常见的问题 22
第3节 业务建模 23
1.3.1 目标 24
1.3.2 基本操作步骤 26
1.3.3 建议 29
1.3.4 常见的问题 32
1.3.5 示例说明 35
第4节 用例模型 37
1.4.1 用例图的绘制 37
1.4.2 如何查找用例和Actor 44
1.4.3 用例的处理 53
1.4.4 如何分包 58
1.4.5 参与人员建议 69
1.4.6 常见的问题 70
第5节 用例阐述 75
1.5.1 目的 75
1.5.2 基本要求 75
1.5.3 用例阐述的格式 76
1.5.4 参与人员建议 78
1.5.5 用例阐述事例 79
1.5.6 常见的问题 81
第6节 交互建模 87
1.6.1 目的 87
1.6.2 要求 88
1.6.3 参与人员建议 89
1.6.4 交互建模示例 90
1.6.5 常见的问题 92
第7节 界面设计 94
1.7.1 什么是界面设计 94
1.7.2 界面设计的基本要求 101
1.7.3 界面设计的步骤 103
1.7.4 界面设计的定位 104
1.7.5 参与人员建议 105
第2章 分析设计工作 107
第1节 概述 107
第2节 分析设计的定义 110
2.2.1 什么是分析 110
2.2.2 什么是设计 111
第3节 分析模型 113
2.3.1 模式的选择与应用 113
2.3.2 构建分析类 114
2.3.3 分析模型时序图 127
2.3.4 参与人员建议 132
2.3.5 常见的问题 132
第4节 设计模型 139
2.4.1 设计模式的选择与应用 139
2.4.2 设计类的构建 142
2.4.3 设计模型的时序图 162
2.4.4 示例 167
2.4.5 参与人员建议 172
第3章 代码模型一致性 173
第1节 概述 173
第2节 生成框架代码 175
3.2.1 类的语法检查 175
3.2.2 ClassPath的设置 179
3.2.3 导出代码 184
第3节 维护设计模型 192
3.3.1 目的 192
3.3.2 维护方式 192
3.3.3 维护步骤 194
第4节 反工 195
3.4.1 作用 196
3.4.2 操作步骤(通过示例说明) 196
第5节 参与人员建议 203
第6节 附加说明 203
3.6.1 需求变化时的策略 203
3.6.2 需要注意的问题 204
第4章 协作开发 207
第1节 协作开发步骤 207
4.1.1 准备工作 208
4.1.2 分包 211
4.1.3 合并分包 216
4.1.4 分包特殊操作 216
第2节 多人协作开发 223
第3节 文档模型结合 224
4.3.1 概述 224
4.3.2文档和模型的结合 225
4.5.3 说明 227
第5章 技巧和相关文档 229
第1节 .cat包的修改 229
5.1.1 示例环境 229
5.1.2 操作步骤 235
5.1.3 结果 241
第2节 ClearCase安装指南 244
5.2.1 安装前的准备 244
5.2.2 配置安装 245
5.2.3 关于License的申请安装 251
第3节 关于CMM的一些观点 251
5.3.1 SQA和SQC 252
5.3.2 CMM,评估、认证 254
5.3.3 只对组织中的某一个部门进行评估 254
5.3.4 评估是反复不断的 255
5.3.5 关于CMM过级时间的个人观点 256
第4节 什么是系统分析 258
5.4.1 定义 258
5.4.2 现实状况 259
5.4.3 一些建议 259
第5节 对Rational在IBM中的顾虑 260
5.5.1 接触Rational 260
5.5.2 担心与忧虑 261
5.5.3 一点新的感受 262
第6节 关于Rose与Together 262
5.6.1 对Together的使用 262
5.6.2 初次体验的感受 263
5.6.3 今后的预期 263
第7节 软件人员的分化 264
5.7.1 分化的原因 264
5.7.2 需求人员的分离 265
5.7.3 设计人员的分离 266
5.7.4 编码人员的分离 268
5.7.5 关于测试人员 270
5.7.6 个人感受 276
本书特色
本书最大的一个特色就是所有的示例都来自于自2001年初至今笔者亲自经历的采用UML进行建模支持的6个大中型工程软件项目。通过这几年来实际工程项目的经验总结,本书采用UML建模的方式进行软件的实现,覆盖了软件工程的从需求开始,经过分析(概要设计)、设计(详细设计)、编码的导出,到设计模型的维护等所有的主要阶段。因此,本书具有很高的现实意义和参考价值。
书中的示例和操作技巧,大部分都是第一次面向大众公开,其中小部分内容曾经在CSDN 的软件工程版块出现过,但是在CSDN上公开的部分都无法张贴示例图,所以,总还是无法描述得很形象,本书为此提供了一个完整的解释。
本书的组织结构
本书的第1章需求工程将详细地阐述需求工程中应该做的前期准备,以及需求调研过程中经常遇到和需要注意的一些问题,需求工程一章的内容可以协助开发人员顺利完成需求调研工作,让用户和开发人员都能得到一个满意的结果。
本书的第2章分析设计工作和第3章代码模型一致性的内容将详细阐述笔者所持的关于设计过程与编码实施过程可以实现完全分离开发的观点。
本书的第4章协作开发和第5章技巧和相关文档都是为本书中实现团队开发所需的一些必备资料或技巧。这些文档和资料将协助您和您的团队实现更快速、更高效的建模开发过程。
本书的撰写整整经过了两年多的时间。回想起来,初次形成写本书的构想是在2002年的4月。当时,笔者正在上海参与一个项目,笔者主要负责验证需求,而没有时间来参与软件工程中的其他过程,就觉得如果有一本书能够系统而全面地介绍软件工程的全程建模实现就好了。直到2002年7月,笔者到南京参加了一个大型信息系统的实用性原型的开发,顺利完成了分析、设计到编码过程的全部实践。同时,笔者完成了一本针对高级用户进行培训的开发过程教材,可以认为它是本书的雏形。
之后,笔者经过一段时间的实践和整理,通过这几年来多个项目的经历,笔者完成了《基于Rose的全程建模》一文的写作,前几部分发表于《程序员》杂志2002年第10期到第12期,全文发表于《程序员杂志2002年合订本》。这篇文章即是本书第2章“分析设计工作”和第3章“代码模型一致性”的原型。
《基于Rose的全程建模》发表之后,引起了很大的反响,笔者也与许多业内人士进行了多次探讨,认为有必要再写一篇讲述关于协作开发的问题,于是《基于Rose的全程建模之二——Rose中的协作开发》诞生了,最终形成的就是本书的第4章“协作开发”部分的内容了,其中,配置管理工具部分由于笔者的精力有限,无法将三种主要的配置管理工具的环境都搭建起来,所以没能详细地介绍,望读者见谅。
在开始撰写《基于Rose的全程建模之二——Rose中的协作开发》的同时,笔者同时规划了《基于Rose的全程建模之三——如何进行需求分析》的撰写。这篇文章撰写的时间最长,因为它融入了笔者在中国电信集团公司调研业务需求过程所总结的方法和内容,与实际情况比较贴近,还是值得一读的。这篇文章最后形成了本书的第1章“需求工程”的内容。
这三篇文章形成本书的基本骨架。在CSDN的编缉部主任孟迎霞的鼓励和建议下,笔者终于于2003年7月底成功地完成了全书的第一次整合。
笔者借着空闲时间不断地对全书的内容进行修订,经过了无数次打印稿的纸面上和电子文件的反复修改,在9月初完成了对全书的一次整体修订,最终得以与广大读者见面,希望大家提出批评和指正的意见。