UML组成之构造块概念解读
本文和打击重点讨论一下UML组成元素,主要介绍一下构造块的相关知识,构造块是对模型中最具有代表性的成分的抽象,希望通过本文的介绍你对UML的组成元素有一定的认识。下面是具体介绍。
一、构造块
1、UML组成中构造块是对模型中最具有代表性的成分的抽象
建模元素:UML中的名词,它是模型基本物理元素。
行为元素:UML中的动词,它是模型中的动态部分,是一种跨越时间、空间的行为。
分组元素:UML中的容器,用来组织模型,使模型更加的结构化。
注释元素:UML中的解释部分,和代码中的注释语句一样,是用来描述模型的。
1.1、建模元素
类(class)和对象(object)
接口(interface)
主动类(activeclass)
用例(usecase)
协作(collaboration)
构件(component)
节点(node)
类(class)和对象(object)
类是对一组具有相同属性、相同操作、相同关系和相同语义的对象的抽象
UML组成中类是用一个矩形表示的,它包含三个区域,最上面是类名、中间是类的属性、最下面是类的方法
对象则是类的一个实例(objectisaInstanceofClass)
接口(interface)
接口是描述某个类或构件的一个服务操作集
主动类(activeclass)
主动类实际上是一种特殊的类。引用它的原因,实际上是在开发中需要有一些类能够起到启动控制活动的作用
主动类是指其对象至少拥有一个进程或线程,能够启动控制活动的类
用例(usecase)
UML组成中用例是著名的大师IvarJacobson首先提出的,现已经成为了面向对象软件开发中一个需求分析的最常用工具
用例实例是在系统中执行的一系列动作,这些动作将生成特定执行者可见的价值结果。一个用例定义一组用例实例。
协作(collaboration)
协作定义了一个交互,它是由一组共同工作以提供某协作行为的角色和其他元素构成的一个群体。
对于某个用例的实现就可以表示为一个协作
构件(component)
在实际的软件系统中,有许多要比“类”更大的实体,例如一个COM组件、一个DLL文件、一个JavaBeans、一个执行文件等等。为了更好地对在UML模型中对它们进行表示,就引入了构件(也译为组件)
构件是系统设计的一个模块化部分,它隐藏了内部的实现,对外提供了一组外部接口。在系统中满足相同接口的组件可以自由地替换
节点(node)
为了能够有效地对部署的结构进行建模,UML引入了节点这一概念,它可以用来描述实际的PC机、打印机、服务器等软件运行的基础硬件
节点是运行时存在的物理元素,它表示了一种可计算的资源,通常至少有存储空间和处理能力
1.2、行为元素
交互(interaction):是在特定语境中,共同完成某个任务的一组对象之间交换的信息集合
UML组成中交互的表示法很简单,就是一条有向直线,并在上面标有操作名
状态机(statemachine):是一个对象或交互在生命周期内响应事件所经历的状态序列
在UML模型中将状态画为一个圆角矩形,并在矩形内写出状态名称及其子状态
1.3、分组元素
对于一个中大型的软件系统而言,通常会包含大量的类,因此也就会存在大量的结构事物、行为事物,为了能够更加有效地对其进行整合,生成或简或繁、或宏观或微观的模型,就需要对其进行分组。在UML中,提供了“包(Package)”来完成这一目标
1.4、注释元素
结构事物是模型的主要构造块,行为事物则是补充了模型中的动态部分,分组事物而是用来更好地组织模型,似乎已经很完整了。而注释事物则是用来锦上添花的,它是用来在UML模型上添加适当的解释部分
2、关系
UML组成中UML模型的关系比较多,下图
2.1 关联关系
UML组成中关联(Association)表示两个类之间存在某种语义上的联系。关联关系提供了通信的路径,它是所有关系中最通用、语义最弱的。
在UML中,使用一条实线来表示关联关系
在关联关系中,有两种比较特殊的关系:聚合和组合
聚合关系:聚合(Aggregation)是一种特殊形式的关联。聚合表示类之间的关系是整体与部分的关系
如果发现“部分”类的存在,是完全依赖于“整体”类的,那么就应该使用“组合”关系来描述
组合是聚合的变种,加入了一些重要的语义。也就是说,在一个组合关系中一个对象一次就只是一个组合的一部分,“整体”负责“部分”的创建和破坏,当“整体”被破坏时,“部分”也随之消失
聚合就像汽车和车胎,汽车坏了胎还可以用。组合就像公司和下属部门,公司倒闭了部门也就不存在了!
2.2 UML组成中泛化、实现与依赖关系
泛化关系描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系。