UML 的结构
UML 由构造块、公共机制和架构三个部分组成。
(1)构造块。构造块也就是基本的 UML 建模元素(事物)、关系和图。
建模元素:包括结构事物(类、接口、协作、用例、活动类、组件、节点等)、行为事物(交互、状态机)、分组事物(包)、注释事物。 关系:包括关联关系、依赖关系、泛化关系、实现关系
UML 2.0 包括 14 种不同的图,分为表示系统静态结构的静态模型(包括类图、对象图、 包图、构件图、部署图、制品图),以及表示系统动态结构的动态模型(包括用例 图、顺序图、通信图、定时图、状态图、活动图、交互概览图)。
(2)公共机制。公共机制是指达到特定目标的公共 UML 方法,主要包括规格说明、修饰、公共分类和扩展机制 4 种。
(3)架构。 UML 对系统架构的定义是:系统的组织结构,包括系统分解的组成部分、它们的关联性、交互、机制和指导原则,这些提供系统设计的信息。
逻辑视图:以问题域的语汇组成的类和对象集合。
进程视图:可执行线程和进程作为活动类的建模,它是逻辑视图的一次执行实例。
实现视图:对组成基于系统的物理代码的文件和组件进行建模。
部署视图:把组件物理地部署到一组物理的、可计算的节点上。
用例视图:最基本的需求分析模型。
用例图
(3)包含和扩展。两个用例之间的关系可以主要概括为两种情况。一种是用于重用的包含关系,用构造型<<include>>或者<<use>>表示;另一种是用于分离出不同的行为,用构造型<<extend>>表示。
包含关系:当可以从两个或两个以上的原始用例中提取公共行为,或者发现能够使用一个组件来实现某一个用例的部分功能是很重要的事时,应该使用包含关系来表示。所提取出来的公共行为称为抽象用例。包含关系的例子如图 8-13 所示。
扩展关系:如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种事情。可以将这个用例分为一个主用例和一个或多个辅用例,描述可能更加清晰。扩展关系的例子如图 8-14 所示。
(2)类之间的关系。
关系是事物间的连接,在面向对象建模中,有 4 个很重要的关系。
① 依赖关系。有两个元素 X、Y,如果修改元素 X 的定义可能会引起对另一个元素 Y 的定义的修改,则称元素 Y 依赖于元素 X。
② 泛化关系。泛化关系描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系。
③ 关联关系。关联表示两个类之间存在某种语义上的联系。例如,一个人为一家公司工作,一家公司有许多办公室。就认为人和公司、公司和办公室之间存在某种语义上的联系。
④ 实现关系。实现关系是用来规定接口和实现接口的类或组件之间的关系的。
交互图基础
交互图是表示各组对象如何依某种行为进行协作的模型。通常可以使用一个交互图来表示和说明一个用例的行为。
(1)顺序图。顺序图用来描述对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。
(2)通信图。通信图用于描述相互合作的对象间的交互关系和链接关系。
顺序图着重体现交互的时间顺序。
通信图则着重体现交互对象间的静态链接关系。
(3)定时图。如果要表示的交互具有很强的时间特性。