UML学习笔记(6)
类图是面向对象系统的建模中最常见的图,类图显示了一组类,接口,协作以及它们之间的关系
类图用于对系统静态设计建模,其大部分涉及到系统的词汇建模,对协作建模或对模式建模,类图也是两个相关图(构件图和实施图)的基础
类图不仅对结构模型的可视化,详述,文档化很重要,而且对通过正向与逆向工程构造可执行的系统也很重要
1. 术语和概念
类图(class diagram)是显示一组类,接口,协作以及他们之间的关系图,在图形上,类图是顶点和弧的集合
1) 普通特性
类图是一种特殊的图,它和所有的其他图都有相同的普通特性,即有名称和投影到一个模型的图形内容,类图与所有其图的区别是它的特殊内容
2) 内容
类图通常包含下述内容:
l 类
l 接口
l 协作
l 依赖,泛化和关联关系
像所有的其他图一样,类图可以包含注解和约束
注释:构件图和实施图与类图类似,只是分别包含构件和节点,而不是类.
3) 普通用法
类图是用于对系统的静态设计视图建模,这种视图主要支持系统的功能需求,即系统要提供给最终用户的服务.
当对系统的静态设计视图建模时,通常以下述3种方式之一使用类图
对系统的词汇建模
对系统的词汇建模涉及到作出这样的决定:哪些抽象是考虑中的系统的一部分,哪此抽象是处于系统的边界之外
对简单协作建模
协作是一些共同工作的类,接口和其它元素的群体,该群体提供的一此合作行为强于所有这些元素的行为之和
对逻辑数据库模式建模
将模式看作为数据库的概念设计的蓝图.
2. 普通建模技术
Ø 对简单协作建模
类不是单独存在的,而是要和其他的类协作工作,以实现一些强于使用单个类的语义,因此除了捕获系统的词汇外,也要把注意力转移到对词汇中的这些事物协同工作的各种方式进行可视化.创建类图就是对组成系统的事物及关系建模,因此每个类图在一个时间内应该注重于一个协作
Ø 对逻辑数据库模式建模(E_R)
所建模的很多系统都有永久对象,既要把这些对象存储在数据库中,以便后来检索,最经常用的是关系数据库,面向对象数据库或混合的关系/对象数据库存储永久对象.UML很适合于对逻辑数据库模式和物理数据库本身建模
实体-关系(E_R)图是一种用于逻辑数据库设计的通用建模工具,UML的类图是实体-关系图的超集,传统的E_R图只针对数据,类图则进了一步,它也允许对行为建模,在物理数据库中一般要把这些逻辑操作转换成触发器或存储过程
为了对模式建模,要遵循如下策略:
l 在模型中识别其状态必须超过其应用系统生命周期的类
l 创建含有这些类的类图,并把它们标记成永久的(persistent)
l 展开这些类的结构性细节
l 观察使物理数据库设计复杂化的公共模式,必须时创建简化逻辑结构的中间抽象
l 考虑这些类的行为,为了更好的关注分离,需要把这些类封装在这些类的上一层
3. 正向工程和逆向工程
建模是重要的,但开发组的主要新产品是软件而不是图,当然,创建模型的原因是为了及时将会满足用户及业务发展的目标的正确软件
正向工程(forward engineering)是通过到实现语言的映射而把模型转换为代码的过程,由于用UML描述的模型在语义上比当前的任何面向对象编程语言者要丰富,所以正向工程将导致一定信息的损失,事实上,这是为什么除了代码之外还需要模型的主要原因
对类图进行正向工程,要遵循如下策略:
l 识别映射到所选择的实现语言的规则.
l 根据所选择语言的语义,可能要限定对一些UML特性的用法.
l 用标记值详述目标语言.
l 使用工具对模型进行正向工程
逆向工程(reverse engineering)是通过从特定实现语言的映射而把代码转换为模型的过程,逆向工程会导致大量的多余信息,其中的一些信息属于细节层次
4. 提示与技巧
在UML中创建类图时,要记住各个类图仅仅是系统静态设计视图的图形表示,不必单用类图去表达系统设计视图的所有内容,而是用系统的所有类图共同表达系统的全部静态设计视图,单个类图仅表达系统的一个方面
一个构造良好的类,应满足如下的要求:
l 注重于表达系统静态视图的一个方面(清晰的边界
l 仅包含对理解该方面是秘要的元素
l 没有过分的压缩内容,以致于使得读者产生语义误解
l 提供与抽象的层次要一致,仅带对理解系统是必要的修饰
Sum up:此部分主要对基本的结构建模,明确类的定义及实现方式,说明了怎么样才能构造出一个结构良好的类,描述了一个结构良好的类有清楚的边界,有一定的职责集;对于构造抽象进,用到的基本关系进行描述,主要有依赖,泛化,关联,简要说明了怎样使用这些关系构造各种图,另外简要描述了图的一些基本概念,说明了建模或说间建图的本质就是从多个角度维度了解整个系统,尽早的对系统提出问题并暴露系统需要克服的风险等
浙公网安备 33010602011771号