uml

来源:互联网 发布:iphone5s怎么用4g网络 编辑:程序博客网 时间:2024/05/16 00:26

Part 1 UML语言概述
视图用来表示系统的一个方面, 每个视图代表完整系统描述的一个抽象.显示系统一个特定方面, 每个视图由一组图构成.
根据图在不同架构视图中的应用, 可划分为:
1. 在用户模型视图: 用例图(Use case diagram)
2. 在结构模型(逻辑)视图: 类图(Class diagram) 描述系统静态结构; 对象图(Object diagram) 描述系统在某个时刻静态结构.
3. 在行为模型(并发)视图: 序列图(Sequence diagram) 按时间顺序描述系统元素间交互; 协作图(Collaboration diagram) 按照时间和空间顺序...; 状态图(State diagram) 描述系统元素的状态条件和响应; 活动图(Activity diagram) 描述系统元素活动.
4. 在实现模型视图: 组件图(Component diagram) 描述实现系统元素组织.
5. 在环境模型视图: 展开图(Deployment diagram) 描述环境元素配置.
常见模型元素:
点击在新窗口中浏览此图片
关联关系:
点击在新窗口中浏览此图片
UML建模工作要依照某个方法或过程进行.这个方法列出了应进行哪些不同的步骤, 以及这些步骤怎样实现的阶段大纲(需求阶段, 设计阶段…).
用例图:
包含用例, 系统, 角色三种模型元素.
系统: 是用例模型的一个组成部分, 代表一部机器或者一个商务活动,而不是真正实现的软件系统.
角色: 是与系统交互的人或事, 是一个群体概念; 角色是启动用例的前提条件, 由称为"刺激物".可以分为主要角色和次要角色, 或者主动角色和被动角色.
用例: 是一个完整的功能, 是动作(action)动作步骤的集合, 用例总是由角色初始化, 为角色提供值, 并具有完整性. 用例与角色之间是关联关系.
用例实现为协作, 表示协作的图有协作图, 序列图和活动图。

Part 2 静态建模 类图和对象图
静态建模一般包含4种关系:
关联,通用化(继承 Generalization),依赖, 精化
关联:两个类对象之间存在可以相互通信的关系。包含普通关联(单向,双向关联, 表示类之间1对多,多对多等关系…); 递归关联(一个类与它本身有关联关系,同类对象之间语义上的连接); 限定关联(将关联中多的那一端的具体对象分成对象集);或关联(对两个或者更多个关联附加约束条件,使类的对象一次只能应用于一个关联关系);有序关联 (明确表示关联中的次序关系);三元关联(三个类的关联关系);
聚合,是关联的特例。表示相关类之间“整体—部分”的关系。在关联直线一端末加一个菱形,紧贴具有整体性质的类。聚合包含共享聚合和复合聚合。共享聚合中处于部分的对象同时参与了多个处于整体方对象的构成;复合聚合的部分类则完全隶属于整体类,即,没有整体类部分类也就没有存在大的价值了,此时,聚合图示改为一个带实心菱形的直线。
点击在新窗口中浏览此图片
通用化,又成继承,包含普通通用化和首先通用化。
受限通用化是附加一个约束条件,进一步说明该通用关系的使用方法或扩展方法。预定义的约束有四种:多重,不相交,完全和不完全。
点击在新窗口中浏览此图片
多重继承指出,子类的子类可以同时继承多个上一级子类;与不相交继承对立. 完全继承指出父类的所有子类都被穷举完毕, 不可能再有其它未列出的子类存在.与非完全对立.
依赖和精化关系
依赖关系是两个模型元素之间语义上的连接关系, 其中一个元素是独立的,而另一个是非独立的. 图示为带箭头的虚线连接, 指向独立的类.
点击在新窗口中浏览此图片
精化关系用于表示同一事务, 建立在不同抽象层上的的两种描述. 图示用带有空心三角的虚线表示.
接口.
接口通常被描述为抽象操作, 即只说明行为, 而没有具体实现的部分. 在类图中多表示为一个带接口名称的小圆圈.与应用它的模型元素用一条直线相连, 它们之间是一对一的关系.调用接口类与接口之间用带箭头的虚线连接, 它们之间是依赖关系.
点击在新窗口中浏览此图片
模板.
模板(templet)是一个尚未完全具体说明的类. 模板提供参数, 利用参数表向模型传递信息可最终形成用户需要的具体类.
(注: Java中没有与此对应的语法)

Part 3 动态建模: 状态图, 序列图, 协作图, 活动图
消息: 两个对象之间的交互表现为一个对象发送一个消息给另一个对象. UML中的消息类型主要包含 简单消息, 同步消息, 异步消息.
点击在新窗口中浏览此图片
状态图: 主要用来描述对象,子系统, 系统生命周期. 所有的类, 只有可标记的状态和复杂的行为, 都应该有一个状态图.
状态和转移, 所有对象均有状态, 包含事件说明, 守卫条件和动作表达式.
事件, 发生并且引起某些动作执行的事情.主要包含一下4类: 条件成真, 收到另一个对象中的信号, 收到另一个对象的操作调用, 经过指定的时间间隔.
序列图: 描述对象是如何交互的, 并且将重点放在消息序列上, 描述消息是如何在对象间发送和接受的. 对象间的通信用对象的生命线之间水平消息来表示. 浏览序列图的方法是: 从上到下查看对象间交换的消息. 有两种使用序列图的方式, 一般格式和实例格式. 实例格式对详细的一次可能的交互, 仅仅显示选定的情节的交互. 而一般格式将描述所有的细节.
协作图: 主要描述协作对象之间的交互和链接(一个链接是一个关联的实例化). 序列图和协作图都描述交互. 但序列图强调时间, 而协作图强调是空间.
主要涉及的概念包括消息流, 链接(两个对象之间的连接), 对象生命周期,
活动图: 显示动作及结果. 着重描述方法实现中所完成的工作以及用例实例或对象中的活动. 活动图是状态图的一个变种, 当状态中的动作被执行, 活动图中的状态直接转移到下一个阶段.主要用于描述一个操作的执行过程.
活动图的泳道被用来组合活动, 直接显示动作在哪一个对象中执行.
在活动图中可以发送和接受信号, 具体表示是从发送或接受符号画一条虚线箭头道对象.
点击在新窗口中浏览此图片
活动图可以用来描述操作, 类或用例, 但是它们只能显示工作流. 也可以用活动图来进行商业建模.

Part 4 物理架构视图
架构, 是系统的组织结构. 可以递归的将架构分解成: 通过接口交互的部分, 连接各个部分的关系, 组装各个部分的约束.
逻辑架构: 处理系统功能, 将功能分配到系统各个部分, 详细说明它们的工作流程. 用来描述的逻辑架构图有: 用例, 类, 状态, 活动, 协作和序列.
物理架构: 描述系统的软件,硬件结构. 包括不同的节点以及节点间如何连接. 还说明逻辑架构中定义的概念的代码模块的物理结构和相关性.
其中, 软件的概念包括组件(一组模型元素实例的物理打包时可重用部分), 进程(重量控制流), 线程(轻量控制流), 对象(对象没有自己执行线程).
组件图:
组件图描述软件及组件之间的关系, 显示代码结构. 组件是逻辑架构中定义的概念和功能(类, 对象, 它们间关系, 协作)在物理架构中的实现.
软件组件可以是一下任何一种: 源组件(源代码文件), 二进制组件(对象代码), 可执行组件(可执行程序文件).
点击在新窗口中浏览此图片
展开图
描述处理器, 设备, 软件组件在运行时的架构. 它是系统拓扑的最终物理描述. 包括:
节点: 拥有某些计算机资源的物理对象.
连接: 通过通信关联连接在一起,节点通过这条通信路径交换对象或发送消息.
组件: 将可执行组件的实例包含在节点实例符号中, 表示它们处于同一个节点实例上. 且在同一个节点实例上运行.
点击在新窗口中浏览此图片