UML学习笔记(2)
统一建模语言(Unified Modeling Language)是一种绘制软件蓝图的标准语言.可以用UML对软件密集型系统的制品进行可视化,详述,构造和文档化.
三要素:构造块,支配这些构造块在如何放在一起的规则,运用于整个语言的公共机制.
UML仅仅是一种语言,并且仅仅软件开发方法中的一部分,UML独立于过程,但最好把它与用例驱动,以体系结构为中心,迭代及增量的过程中
为了理解UML,需要形成一个语言概念模型,这要求学习建模的3个主要要素:UML构造块,支配这些构造块如何放在一起的规则和一些运用于整个UML的公共机制.
1. UML的构造块
UML词汇中三种构造块
1) 事物
2) 关系
3) 图
事物的对模型中最具有代表性的成分的抽象;关系把事物结合在一起,图聚集了相关的事物.
l UML中的事物
在UML中的四种事物:
1) 结构事物
2) 行为事物
3) 分组事物
4) 注释事物
这些事物是UML中最基本的面向对象构造块,用它可以写出结构良好的模型.
l 结构事物(structural thing)是UML模型中的名词,它描述的是静态的,概念的,物理的元素,共有七种结构事物.
第一, 类(class)是对一组具有相同属性,相同操作,相同关系的对象的描述.
第二, 接口(interface)是描述了一个类或构件的一个服务的操作集,接口描述元素的外部可见行为.接口定义了一组操作的描述(即特征标记),不定义实现.对外提供一个服务操作集
第三, 协作(collaboration)定义了一个交互,它是由一组共同工作以提供某协作行为的角色和其它元素构成的一个群体.
第四, 用况(use case)是对一组动作序列的描述,系统执行这些动作将对一个特定的参与者有价值的可观察的结果.
第五, 主动类(active class)其对象至少拥有一个进程或线程,因此它能够启动控制活动
第六, 构件(component)是系统中物理的,可替代的部件.
第七, 节点(node)在运行时存在的物理元素
l 行为事物(behavioral thing)
行为事物是UML模型是动态部分,它们是模型中的动词,描述跨越时间和空间的行为.
第一, 交互(interaction)它由在语境中共同完成一定任务的一组对象之间交换的消息组成
第二, 状态机(state machine)描述一个对象或一个交互在生命期内响应事件所经历的状态序列
l 分组事物(grouping thing)模型分解成的"盒子",主要有包.
l 注释事物(an notational thing)解释部分,主要有note.
l UML中的关系
在UML中的四种关系:
1) 依赖(dependency)
2) 关联 (association)
3) 泛化 (generalization)
4) 实现 (realization)
这此关系是UML的基本关系构造块
第一, 依赖(dependency)是两个事物间的语义关系,其中一个事物(独立事物)发生变化会影响到另一个事物(依赖事物)发生变化.,使用和返回值是依赖的特征标识.
第二, 关联(association)是一种结构关系,他描述一组链,链是对象之间的连接,对象与对象这间是平级关系,用一条直线表示,也可以加上导航方向或角色及多重性
聚合(aggregation)是一种特殊的关系,它描述了整体和局部的关系,它说明整体在概念上级别在大于局部,聚合与关联的区别仅是在概念上的,而且严格反映在语义上。聚合还暗示着实例图中不存在回路。换言之,只能是一种单向关系。
组合(Composition)是一种特殊的聚合关系,局部在整体的生命期职责,组合是非共享的,虽然局部并不一定非在与整体一同销毁而销毁,但整体需要负责保持局部的生存状态或直接把局部销毁,局部不可能与其它整体共享,但整体可以把所有权转换给其它对象,让其它对象承担局部存活状态
第三, 泛化(generalization)是一种特殊/一般的关系,是子父关系,通常用extends实现
第四, 实现(relization)是两个实体之间的的一个合同,一个实体定义合同,另一个定义履行此合同,通常用implements,主要用于:接口与实现它们的类或构件,用例与实现他们的协作之间
2. UML规则
不能简单的把的构造块随机的方式放在一起,像任何语言一样,UML有一套规则描述了一个结构良好的模型看起来像什么.
UML有用于描述如下事物的语义规则:
l 命名 为事物,关系和图起名
l 范围 给一个名称以特定含义的语境
l 可见性 怎样让其他人使用或看见名称
l 完整性 事物如何正确,一致地相互联系
l 执行 运行或模拟动态模型的含义是什么
3. UML中的公共机制
在UML中有4种贯穿整个语言一致应用的公共机制,分别为:
1) 规格说明
2) 修饰
3) 通用划分
4) 扩展机制
4. 软件开发生命周期
UML在很大程度上独立于过程,这意味着它不依赖于任何特殊的软件开发生命周期.然而为了在UML中得到最大成效,你应该考虑这样的过程:
l 用况驱动的(Use case driven)把用况作为一种基本的制品,建立所要求的系统行为,验证和确认系统的体系结构,测试以及在项目组成员间进行交流
l 以体系结构为中心的(architecture-centric)要以体系结构作为一种基本制品,用于在开发中对系统进行概念化,构造,管理及深化
l 迭代的和增量的(iterative process)
第三章 世界,你好!
简单的UML应用
Import java.awt.Graphics;
Class HelloWorld extends java.applet.Applet{
Public void paint(Graphics g){
g.drawString(“Helloworld!”,10,10);
}
}
第一部分主要是对UML的简述,诠释了为什么需要用UML进行对系统描述,用此描述会给软件系统带来什么好处,以及简要说明了UML的基本构造块,关系等