uml中的八种图详解
用例图:
基本元素:角色,用例,关系
主要属性:事件流;前置条件;后置条件;特殊要求;扩展点;问题说明
事件流包括基本流和备选流
前置条件和后置条件可以用于用例的验证和 评审
用例的范围分为概述级;用户目标级;子功能级
用例注意点:应该清晰的定义系统边界
防止用例过多
应该从执行者的角度来命名用例
避免执行者和用例之间的关系太复杂
注意用例的大小是否恰当
避免用例描述混乱
区分用例分解和功能分解
避免客户不能理解用例的情况发生
有些场合,用用例来描述需求是不合法的
用例图的作用:重在应用;重在交流;重在事件流的描述
描述了一个系统应该执行什么或应该有什么外部系统
如何绘制用例图
1、记录需求特性
2、识别参与者
3、合并需求获得用例
4、细化用例描述
类图: 用来描述系统的静态部分
类图的关系:
关联(两个类之间可以有多种关联。 一个类可以和多个类关联。 整体与部分之间是一种松耦合的关系,用聚合;紧耦合
的关系用组合)
依赖
类图的构成:类、接口、协作、关系、包
类图的应用:从描述中采用名词动词法找到候选类,决定候选类
抽象出类的属性方法
关联分析。确定类间的关联关系
职责分析:对关系进行修饰
包图:
作用:逻辑上把一个复杂的图像模块化。组织源代码
包中的元素:类、接口、构件、用例、其他包 (若包撤销,则其中元素也被撤消了)
包与包之间的关系:泛化、细化、依赖(常用) 如果两个包中任意两个类之间有依赖关系,则这两个包之间有依赖关系
包的常见问题:一定要避免循环依赖的产生
测试时可以以包为测试单位
应该尽量把概念和语义上想接近的元素包含在同一个包中
对于一个包,找出那些包内的元素是可以在包外访问的,把这些元素标记为公共的。其他所有元素都标记为受保护或者
私有的
对象图:
对象图描述一个系统在摸个
行为图(活动图和状态图)
活动图:
活动图支持并行活动,但是他很难清楚的描述动作与对象之间的关系,没有交互图直接。
活动图作用:描述一个操作的执行过程中所完成的工作或者动作
描述对象内部的工作
显示如何执行一组相关的动作,以及这些动作如何影响周围对象
描述用例的执行
处理多线程应用
泳道:用于对活动图中的活动进行分组,用于描述对象之间的合作关系
以下场合不适合活动图:显示对象之间的合作。 显示对象在其生命周期内的运转情况
在实际项目中,活动图并不是必须的。一般在以下情况下需要使用活动图:
描述一个并行的过程或者行为
描述一个算法
描述一个跨越多个用例的活动
状态机:
他描述了一个对象或一个交互在生命期内响应事件所经历的状态序列。
单个类或一组类之间协作的行为可以用状态机来描述。
用来描述一个特定对象的所有可能状态以及各种事件的发生而引起的状态之间的转移
状态图侧重从行为的结果来描述(状态)
活动图侧重从行为的动作来描述(活动)
交互图:交互图描述了系统在逻辑设计中存在的对象及其间的关系,他可代表系统中对象的结构
序列图:按时间顺序排列对象交互操作,强调消息的事件顺序
序列图构成:对象
消息:
集中形式:call return send create destroy
分为简单消息;同步消息;异步消息
生命线:
协作图:强调参加交互的对象的组织
顺序图和协作图的关系:二者在语义上等价;二者可以互相转化;二者侧重点不同
实现图:
构件图:用来显示一族构件之间的组织与依赖关系
从软件架构的角度来描述一个系统的主要功能,如子系统、类、包、构件等
使用构件最重要的思想是复用
构件是系统中遵从同一组接口且提供其实现的物理的、可替换的部分。
每个构件能实现一定的功能,为其他构件提供使用接口,方便软件的复用
构件是定义良好的接口实现单元,可以分为:源代码构件(源代码文件)
二进制构件(目标码文件,静态链接库,动态链接库)
可执行构件(可执行程序)
数据文件或文档
构件和类:类表示逻辑抽象,而构件表示物理抽象
构件是其他元素的物理实现
类可以直接拥有属性和操作,一般情况下,构件一般只拥有只能通过接口访问的操作
构件的特点:构件是物理的‘是可替换的;是系统的一部分;遵从一组接口并提供对一组接口的实现
构件图构成:构件;接口;关系;注释;约束
部署图:
节点:一个物理元素,它在运行时存在,代表一个可计算的资源,通常占用一些内存和具有处理能力。一个构件集合一般
来说位于一个节点,但有可能从一个节点转到另一个节点
用来描述系统硬件的物理拓扑结构以及在此结构上执行的软件