目标
系统建模就是建立系统抽象模型的过程,其中每一个模型表示系统的一个不同的视角或观点。
- 在需求过程中使用模型,是为了帮助得到详细的系统需求。
- 在系统设计过程中使用模型,是为了向实现系统的工程师描述系统。
- 在实现系统之后使用模型,是为了描述系统的结构和运行。
统一建模语言
UML是一组13种不同的图形类型,它们可以被用于建模软件系统。这里主要介绍5种UML图类型。
上下文模型
在系统规格说明早期阶段,应当确定系统的边界,哪些属于,哪些不属于所开发的系统。
活动图
活动图描述一个过程或数据处理中所包含的活动,用于显示系统使用所处的业务过程。
该图描述了系统如何用于一种心理健康问题治疗过程——强制留置。
UML活动图显示了过程中的活动以及从一个活动到另一个活动的控制流。活动的开始用一个实心圆表示,结束用一个在另一个圆里面的实心圆表示。圆角矩形表示活动,矩形表示对象。箭头表示从一个活动到另一个活动的工作流,实心条表示活动间的协调。当来自多个活动的流到达一个实心条时,表示所有这些活动结束之后才能继续进行。当从一个实心条流出多个活动时,表示这些活动可以并行执行。可以在箭头旁标注警戒条件(方括号),说明什么情况下过程流可以进行。
交互模型
用况图
主要用于建模系统与外部主体(人类用户或其他系统)之间的交互。
一个用况可以作为一个用户在该交互中对系统的期望的简单描述。用况表示为一个椭圆,参与用况的参与者表示为线形小人。
顺序图
顺序图主要用于建模参与者与系统中的对象之间的交互以及这些对象自身相互间的交互,显示一个特定的用况或用况实例执行过程中发生的交互序列。
该顺序图显示医疗接待员查看病人信息时发生的一些交互。
结构模型
软件的结构模型按照构成系统的构件以及它们之间的关系显示系统的组织。可以在讨论和设计系统体系结构时创建系统的结构模型。这些模型可以是总体的系统体系结构模型或者更加详细的系统中的对象及其关系的模型。
类图
在开发模型时,第一个阶段通常是看现实世界、识别基本的对象并将它们表示为类,类图用来显示系统中的类以及类之间的关联。
泛化
通过对通用的类以及这些类的特性进行分类,来复用这些知识,并关注它们与它们所属类之间的差异。例如,松鼠和老鼠都是“啮齿类动物”类的成员,因此共享啮齿类动物的特性。
聚集
聚集是一个对象由其他对象组成,为了定义聚集,在链接关系中表示整体的类那一端加上一个菱形。
行为模型
行为模型描述了当系统对来自环境的激励行为响应时发生什么或者应该发生什么。激励可以是数据或事件。
- 系统必须处理的数据产生了。数据的产生触发了相应的处理过程。
- 一个事件发生了,触发了系统处理。
数据驱动建模
这种模型描述了从处理一个初始的输入到产生相应的输出的整个过程中所发生的整个动作序列。
- 数据流图用于描述数据流如何从一系列处理步骤中流过。UML中的活动图可以用于表达数据流图。
从上图可以看到表示为活动(圆角矩形)的处理步骤以及表示对象(矩形)的在步骤间流动的数据。 - 另一种描述系统中的处理序列的方法是使用UML顺序图。
顺序图强调系统中的对象,而数据流图强调操作或活动。在实践中,非专业的普通用户(客户等)似乎更觉得数据流图更直观些,而开发工程师更倾向于使用顺序图。
事件驱动的建模
事件驱动的建模描述一个系统如何对外部和内部事件做出响应。这种模型建立在系统具有有限数量的状态以及事件激励可以导致状态间的转换的假设基础上。
UML通过状态图支持基于事件的建模。
在UML状态图中,圆角矩形表示系统状态。每个状态可以包含对在该状态中所执行的动作的一个简要描述(do之后)。带标签的箭头表示驱动从一个状态转换到另一个状态的激励。实心圆表示开始和结束状态。