需求的归需求,设计的归设计,实现的归实现。
系统建模
0. 交互模型
- 分类
- 用户交互,与用户输入输出有关:为用户交互建模有助于我们识别用户需求;
- 系统间的交互,系统内部交互,更多是设计和实现层面的考虑,对用户是不可见的;
- 系统与系统,系统各部分之间:有助于我们分析所设计的系统结构能否实现系统所需的功能及其可靠性;
- 对应的建模语言:
- 用例(user case)建模:系统与外部参与者(用户或其他系统)之间的交互建模;
- 外部参与者(用户或其他系统)可能是系统的使用者,也可能当前系统的运行依赖这些外部参与者(用户或其他系统)
- 时序图:同一个系统内部各部分之间的交互建模(当然也不可避免的包括一些外部因素)
- 时序图【UML 建模】UML入门 之 交互图 – 时序图 协作图详解
- 涉及的对象和参与者列在图表顶端,向下垂直一条虚线。
- 交互用带注释的箭头表示:
- 同步是实心箭头,异步空心箭头,
- 返回是虚线箭头。
- 虚线上的矩形表示对象的生命线(比如对象实例运行所需时间)
1. 结构模型(类图)
- 大雁与雁群是聚合关系;翅膀和鸟是组合关系;
- 组合的关系比聚合更密不可分;
- 聚合还是组合刻画的是一种组合关系,而依赖关系表示的是一种需要关系;
- 我们可以说翅膀是鸟的组成部分,却不会说空气组成了动物,只能说动物这个类别依赖空气;
2. 行为模型
- 数据驱动建模(数据流图)UML不支持数据流图。原因是DFD关注的是系统功能而不识别系统对象。然而,因为数据驱动系统在业务中太常用了,所有UML2.0引入了与数据流图类似的活动图。在UML中也用时序图表示系统处理序列。
- 事件驱动建模(状态图)状态图表示系统状态和引起状态改变的事件(状态图关注的对象是事件)。状态图不表示系统中的数据流,但可能包括在每一状态在每一状态中所执行运算的附加信息。