|
|
|
|
|
|
|
结构事物是UML模型中的静态部分,描述概念或物理元素。共有7种结构事物。
|
|
|
①类(class)是对一组具有相同属性、相同操作、相同关系和相同语义的对象的描述。一个类实现了一个或多个接口。在图形上,把一个类画成一个矩形,通常矩形中写有类的名称、类的属性和类的操作,如下图所示。
|
|
|
|
|
②接口(interface)是描述了一个类或构件的一个服务的操作集。因此,接口描述元素的外部可见行为。一个接口可以描述一个类或构件的全部行为或部分行为。接口定义了一组操作的描述(即特征标记),而不是操作的实现。在图形上,把一个接口画成一个带有名称的圆。接口很少单独存在,而是通常依附于实现接口的类或构件,如下图所示。
|
|
|
|
|
③协作(collaboration)定义了一个交互,它是由一组共同工作以提供某协作行为的角色和其他元素构成的一个群体,这些协作行为大于所有元素的各自行为的总和。因此,协作有结构、行为和维度。一个给定的类可以参与几个协作。这些协作因而表现了系统构成模式的实现。在图形上,把一个协作画成一个通常仅包含名称的虚线椭圆,如下图所示。
|
|
|
|
|
④用例(Use Case)是对一组动作序列的描述,系统执行这些动作将产生一个对特定的参与者有价值而且可观察的结果。用例用于对模型中的行为事物结构化。在图形上,把一个用例画成一个实现椭圆,通常仅包含它的名称,如下图所示。
|
|
|
|
|
⑤活动类(Active Class)也是一种类,其对象至少拥有一个进程或线程,因此它能够启动控制活动。活动类的对象所描述的元素的行为与其他元素的行为并发,除了这一点之外,它和类是一样的。在图形上,活动类很像类,只是它的外框是粗框,通常它包含名称、属性和操作,如下图所示。
|
|
|
|
|
⑥组件(component)是可重用的系统片段,具有良好定义接口的物理实现单元。组件包含了系统设计中某些类的实现。组件设计的原则:良好的组件不直接依赖于其他组件,而是依赖于其他组件所支持的接口。这样的好处是系统中的组件可以被支持相同接口的组件所取代。在一个系统中,你将遇到不同类型的部署组件,如COM+构件和Java Bean,以及在开发过程中所产生的制品组件,如源代码文件。通常组件是一个描述了一些逻辑元素(如类、接口和协作)的物理包。在图形上,把一个组件画成一个带有小方框的矩形,通常在矩形中只写该组件的名称,如下图所示。
|
|
|
|
|
⑦结点(node)是在运行时存在的物理元素,它表示了一种可计算的资源,它通常至少有一些记忆能力和处理能力。一个组件集可以驻留在一个结点内,也可以从一个结点迁移到另一个结点。在图形上,把一个结点画成一个立方体,通常在立方体内只写它的名称,如下图所示。
|
|
|
|
|
|
行为事物是UML模型的动态部分,描述了跨越时间和空间的行为,共有两类主要的行为事物。
|
|
|
①交互(interaction)是这样一种行为,它由在特定语境中共同完成一定任务的一组对象之间交换的消息组成。一个对象群体的行为或单个操作的行为可以用一个交互来描述。交互涉及一些其他元素,包括消息、动作序列(由一个消息所引起的行为)和链(对象间的连接)。在图形上,把一个消息画成一条有向直线,通常在表示消息的线段上总有操作名,如下图所示。
|
|
|
|
|
②状态机(state machine)是这样一种行为,它描述了一个对象或一个交互在生命期内响应事件所经历的状态序列。单个类或一组类之间协作的行为可以用状态机来描述。一个状态机涉及到一些其他元素,包括状态、转换(从一个状态到另一个状态的流)、事件(触发转换的事物)和活动(对一个转换的响应)。在图形上,把一个状态画成一个圆角矩形,通常在圆角矩形中含有状态的名称及其子状态,如下图所示。
|
|
|
|
|
|
分组事物是UML模型的组织部分。它们是一些由模型分解成的“盒子”。在所有的分组事物中,最主要的分组事物是包。
|
|
|
包(package)是把元素组织成组的机制,这种机制具有多种用途。结构事物,行为事物甚至其他的分组事物都可以放进包内。包不像构件(仅在运行时存在),它纯粹是概念上的(即它仅在开发时存在)。在图形上,把一个包画成一个左上角带有一个小矩形的大矩形,在矩形中通常仅含有包的名称,有时还有内容,如下图所示。
|
|
|
|
|
|
注释事物是UML模型的解释部分。这些注释事物用来描述,说明和标注模型的任何元素。有一种主要的注释事物,称为注解。注解(note)是一个依附于一个元素或一组元素之上,对它进行约束或解释的简单符号。在图形上,把一个注解画成一个右上角是折角的矩形,其中带有文字或图形解释,如下图所示。
|
|
|
|
|