1.基本术语说明
items | note |
OOA/D | 面向对象的分析与设计 |
UML | 描述、构造和文档化系统制品的可视化语言 |
模式 | 问题解决方案的公式 |
2. 本书的主要内容
本书的主旨是对应用了UML和模式的面向对象分析与设计(OOA/D)的介绍,同时使用UP的敏捷方法作为示例迭代过程
- UML和面向对象的思想
对应用了UML和模式的面向对象分析与设计(OOA/D)的介绍
重点阐述对象设计,也会讲述在OOA/D中如何使用UML
- OOD的原则和模式
职责驱动设计解决了如何为对象划分职责、对象之间如何协作
模式即问题解决方案公式
- 案例研究
通过贯穿全书的案例研究来阐述面向对象
- 用例
讲述需求分析
- 迭代开发
迭代开发使用统一过程(UP)的敏捷方法作为示例迭代过程来讲述迭代开发
3. 重要的学习目标
- 本书最重要的目标是熟练的为软件对象分配职责
4. 分析和设计
- 分析是对问题和需求的调查研究
- 设计是满足需求的解决方案
5. 面向对象的分析和设计
- 面向对象的分析是在问题领域内发现和描述对象
- 面向对象的设计是如何定义对象(包含哪些属性和方法)以及它们如何协作以实现需求
6. 面向对象分析和设计的步骤及制品
以掷骰子为例,阐述面向对象分析和设计的步骤及制品
OOD/A的步骤 | NOTE | 制品 | 制品示例 |
定义用例 | 如何使用应用的情节或场景 | 用例 | 游戏者请求掷骰子 |
定义领域模型 | 真实世界对象的描述 | 领域模型 | |
分配对象职责并定义交互图 | 描述软件对象的职责和协作 | 顺序图 | |
定义设计类图 | 类定义的静态视图 | 类图 |
图 面向对象分析和设计的步骤及制品
7. UML
- 应用UML的三种方式
应用UML的方式 | 说明 |
UML作为草图 | 非正式、不完整,用于探讨问题,敏捷建模中强调此方式 |
UML作为蓝图 | 相对详细的设计图,用于逆向工程(读取源码生成UML图)和正向工程(UML图生成部分代码,由设计者填充其它代码) |
UML作为编程语言 | 完成系统可执行规格说明,自动生成可执行代码 |
图 应用UML的三种方式
- 应用UML的三种透视图
透视图 | NOTE | 类的含义 | 类统一后的命名 |
概念透视图 | 描述现实世界 | 概念类(原始UML) | 概念类 |
规格说明(软件)透视图 | 描述软件的抽象物 | 设计类 | 软件类 |
实现(软件)透视图 | 描述特定技术(如java)中的软件实现 | 设计类 | 实现类 |
图 应用UML的三种透视图
注:概念类---现实世界中的概念;软件类---规格说明中的类;实现类---特定OO语言(如java)中的类
8. 可视化建模的优点
. 更加便利的观察全景
. 发现软件元素或分析之间的关系
. 忽略或隐藏细枝末节