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