
本书通过一个完整的案例,按照实际项目的应用顺序,深入浅出地讲解在业务建模、概念建模、系统建模等不同阶段应如何结合面向对象的思维方式,正确地使用UML 统一建模语言对软件系统进行分析和设计。本书主要内容包括面向对象技术概述、UML 与Rational Rose 概述、用例图:建模的开始、状态图和活动图、类图和包、交互图:用例的实现、数据建模、构件图和双向工程、部署图和建模实例分析。 本书既可作为高等学校计算机科学与技术、软件工程等信息类专业的本科或专科学生的教材,也可供从事软件开发的工作人员参考使用。
物以类聚,人以群分,尽管我们所生存的世界千变万化、五彩缤纷,但是每一种事物都因为其自身特性而被人类感知、认识并逐步掌握。事物因为具有不同的属性而被区分归类,属性成为我们辨识事物的基础,面向对象方法就是建立在分类理论的基础上的。 从软件工程的角度来看,面向对象方法试图实现从领域问题空间到解决方案空间的同构映射,通俗地讲,就是找到软件系统用户和系统开发者使用的共同语言。采用这种建模语言建立的领域问题模型可以更加清晰地表达用户的需求,进而可以转化为系统的功能模型和结构模型,从而为后面的编程、测试和维护铺平道路。 从学生的角度来看,学习一门程序设计语言并不困难,关键在于如何运用面向对象方法对一个原本陌生或是相对熟悉的领域进行分析并建立软件系统模型。而且,伴随经济全球化而来的企业竞争和行业竞争日益激烈,软件企业要做到“适时应务,按需服务”,必须依靠软件工程的思想。因此,熟练掌握面向对象方法和技能就显得越发重要。 本书通过讲解UML 统一建模语言与面向对象进行分析和设计的理论及应用,引导学生将面向对象方法的理论用于具体领域的问题分析。本书重点讲述UML 语言,但又不是一本纯粹教授UML 语言的书籍,而是结合软件工程思想传达面向对象的思考方法、分析模式和推导过程,以及它们在软件工程的各个阶段如何发挥作用。本书要传达的是一种思维方式,能够帮助读者熟练掌握面向对象分析技术。 最后,软件开发是一种实践过程,仅仅学习本书内容还不能成为软件高手。本书只能给出思路和相关知识,而掌握和消化这些知识则必须由读者在实践中去完成。方法正确、认真学习,多实践、勤思考,再回顾并总结,这是软件开发人员快速成长的捷径。在此预祝读者能够迅速进步,早日达成期望的职业目标。
第1 章 面向对象技术概述 ............................................................................. 1 1.1 软件危机及软件工程 .................................................................................................... 1 1.2 对软件开发的基本认识 ................................................................................................ 2 1.3 软件的固有复杂性 ........................................................................................................ 3 1.4 控制软件系统复杂性的基本方法 ................................................................................ 4 1.5 面向对象技术 ................................................................................................................ 5 1.6 面向对象领域中的基本概念 ........................................................................................ 8 1.6.1 对象和实例 ......................................................................................................... 8 1.6.2 类 ......................................................................................................................... 9 1.6.3 封装 ..................................................................................................................... 9 1.6.4 继承 ..................................................................................................................... 9 1.6.5 多态 ................................................................................................................... 12 1.6.6 消息 ................................................................................................................... 12 第2 章 UML 与Rational Rose 概述 ............................................................ 13 2.1 为什么要学习UML .................................................................................................... 13 2.2 UML 的发展历史 ........................................................................................................ 16 2.3 UML 的特点 ................................................................................................................ 17 2.4 UML 的构成 ................................................................................................................ 18 2.5 UML 的视图 ................................................................................................................ 20 2.6 UML 的应用领域 ........................................................................................................ 21 2.7 UML 的应用示例 ........................................................................................................ 21 2.8 支持UML 的工具 ....................................................................................................... 22 2.9 Rational Rose 简介....................................................................................................... 23 第3 章 用例图:建模的开始 ....................................................................... 32 3.1 什么是建模 .................................................................................................................. 32 ·vi· 3.2 用例驱动 ...................................................................................................................... 33 3.3 用例图基本概念 .......................................................................................................... 34 3.4 参与者 .......................................................................................................................... 34 3.4.1 参与者的概念 ................................................................................................... 34 3.4.2 寻找和确定参与者 ........................................................................................... 35 3.4.3 检查点 ............................................................................................................... 37 3.4.4 参与者之间的关系 ........................................................................................... 38 3.5 用例 .............................................................................................................................. 39 3.6 用例分析 ...................................................................................................................... 41 3.6.1 用例的粒度 ....................................................................................................... 42 3.6.2 用例的获得 ....................................................................................................... 44 3.6.3 目标和步骤的误区 ........................................................................................... 45 3.6.4 用例粒度的误区 ............................................................................................... 46 3.6.5 业务用例 ........................................................................................................... 48 3.6.6 业务用例实现 ................................................................................................... 49 3.6.7 系统用例 ........................................................................................................... 49 3.6.8 用例实现 ........................................................................................................... 50 3.7 用例之间的关系 .......................................................................................................... 50 3.7.1 泛化关系 ........................................................................................................... 50 3.7.2 包含关系 ........................................................................................................... 51 3.7.3 扩展关系 ........................................................................................................... 51 3.7.4 用例的泛化、包含、扩展关系的比较 ........................................................... 52 3.8 用例图 .......................................................................................................................... 53 3.9 用例的描述 .................................................................................................................. 54 3.10 寻找用例的方法 ........................................................................................................ 58 3.11 建模实例 .................................................................................................................... 59 第4 章 状态图和活动图 ............................................................................... 67 4.1 什么是状态图 .............................................................................................................. 67 4.2 状态图的基本概念 ...................................................................................................... 68 4.2.1 状态 ................................................................................................................... 68 4.2.2 组合状态和子状态 ........................................................................................... 69 4.2.3 历史状态 ........................................................................................................... 70 4.2.4 转移 ................................................................................................................... 71 4.2.5 事件 ................................................................................................................... 72 4.2.6 动作 ................................................................................................................... 74 4.3 什么是活动图 .............................................................................................................. 74 4.3.1 活动 ................................................................................................................... 75 目 录 ·vii· 4.3.2 泳道 ................................................................................................................... 75 4.3.3 分支 ................................................................................................................... 76 4.3.4 分叉和汇合 ....................................................................................................... 76 4.3.5 对象流 ............................................................................................................... 77 4.4 活动图的用途 .............................................................................................................. 77 4.5 状态图和活动图的比较 .............................................................................................. 79 4.6 建模实例 ...................................................................................................................... 79 第5 章 类图和包 ......................................................................................... 97 5.1 类的定义 ...................................................................................................................... 97 5.1.1 类的属性 ........................................................................................................... 98 5.1.2 类的操作 ........................................................................................................... 98 5.2 类之间的关系 .............................................................................................................. 99 5.2.1 关联 ................................................................................................................... 99 5.2.2 聚集和组合 ..................................................................................................... 102 5.2.3 泛化 ................................................................................................................. 103 5.2.4 依赖 ................................................................................................................. 103 5.3 派生属性和派生关联 ................................................................................................ 104 5.4 抽象类和接口 ............................................................................................................ 105 5.5 版型 ............................................................................................................................ 105 5.6 类图 ............................................................................................................................ 106 5.6.1 类图的抽象层次 ............................................................................................. 106 5.6.2 构造类图 ......................................................................................................... 107 5.7 包的基本概念 ............................................................................................................ 107 5.8 建模实例 .................................................................................................................... 109 第6 章 交互图:用例的实现 ..................................................................... 118 6.1 交互图概述 ................................................................................................................ 118 6.2 顺序图 ........................................................................................................................ 119 6.3 顺序图中的消息 ........................................................................................................ 121 6.3.1 调用消息 ......................................................................................................... 121 6.3.2 异步消息 ......................................................................................................... 121 6.3.3 返回消息 ......................................................................................................... 122 6.3.4 阻止消息和超时消息 ..................................................................................... 122 6.4 协作图 ........................................................................................................................ 122 6.5 顺序图和协作图的比较 ............................................................................................ 124 6.6 常见问题分析 ............................................................................................................ 125 6.7 建模实例 .................................................................................................................... 128 ·viii· 第7 章 数据建模 ....................................................................................... 139 7.1 数据建模概述 ............................................................................................................ 139 7.2 数据库设计的基本过程 ............................................................................................ 139 7.3 数据库设计步骤 ........................................................................................................ 141 7.4 对象模型和数据模型间的转换 ................................................................................ 147 7.4.1 对象模型转换为数据模型 ............................................................................. 147 7.4.2 数据模型转换为对象模型 ............................................................................. 150 第8 章 构件图和双向工程 ......................................................................... 152 8.1 什么是构件和构件图 ................................................................................................ 152 8.2 构件图的作用 ............................................................................................................ 153 8.3 构件图的工具支持 .................................................................................................... 154 第9 章 部署图 ........................................................................................... 161 9.1 什么是部署图 ............................................................................................................ 161 9.2 部署图中的基本概念 ................................................................................................ 162 9.2.1 节点 ................................................................................................................. 162 9.2.2 连接 ................................................................................................................. 162 9.3 部署图的例子 ............................................................................................................ 163 9.4 建模实例 .................................................................................................................... 164 第10 章 建模实例分析 .............................................................................. 170 10.1 引言 .......................................................................................................................... 170 10.2 问题陈述 .................................................................................................................. 170 10.3 分析阶段模型说明 .................................................................................................. 173 10.3.1 分析阶段的用例图 ....................................................................................... 173 10.3.2 分析阶段的逻辑视图 ................................................................................... 176 10.4 设计阶段模型说明 .................................................................................................. 180 10.4.1 设计阶段的用例图 ....................................................................................... 180 10.4.2 设计阶段的逻辑视图 ................................................................................... 181 10.4.3 设计阶段的进程视图 ................................................................................... 188 10.4.4 设计阶段的部署图 ....................................................................................... 189 10.5 课程注册系统实例总结 .......................................................................................... 190 参考文献 ...................................................................................................... 192