统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。
UML是面向对象设计的建模工具,独立于任何具体程序设计语言
1、UML与面向对象
UML仅仅是一种语言。它不是一种系统设计的方法,而是系统建模的标准
1.1、UML视图
用例视图
用例是系统中的一个功能单元
用例视图是其他视图的核心,从系统外部参与者的角度描述系统应该具有的功能
逻辑视图
设计人员和开发人员使用逻辑视图来描述用例视图提出的系统功能的实现,包括静态结构(类图、对象图)和动态协作关系(状态图、时序图、协作图、活动图)
并发视图
开发人员和系统集成人员考虑资源的有效利用、代码的并行执行和系统环境中的异步事件的处理而使用的图形,包括状态图、协作图、活动图
组件视图
组件是不同类型的代码模块,是构造应用的软件单元
组件视图是开发人员用于描述系统的实现模块以及它们之间的依赖关系的图
部署视图
开发人员、系统集成人员和测试人员使用的
用来显示系统的物理部署,描述了位于节点上的运行实例的部署情况
1.2、UML图
静态图 用例图类图对象图组件图部署图包图 (UML2.0)组成结构图 (UML2.0) 动态图 序列图协作图状态图活动图交互纵览图 (UML2.0)计时图 (UML2.0)1.3、建模步骤
建模是从总体到细节,逐步细化的过程;不要一开始就陷入细节中示例
骰子游戏:软件模拟游戏者投掷两个骰子,如果总点数为7,则赢得游戏,否则为输
1、定义用例
用例是需求分析的一种工具,它是一些情况的描述
对系统总体上的描述
骰子游戏:
游戏者请求骰子系统展示结果:如果骰子总点数是7,则赢,否则输
2、定义领域模型
游戏者骰子骰子游戏识别问题中的概念
确定对象及对象间的关系
3、定义交互图
动态建模
分配对象职责:对象间交互关系
顺序图、用例图
4、定义设计类图
静态建模
设计类:属性、方法
1.4、名词解释
UP
The Unified Software Development Process
统一过程:是一种流行的构造面向对象的迭代软件开发过程
RUP
Rational Unified Process
Rational统一过程
2、用例图
2.1、组成元素
参考者
外部用户或外部实体在系统中扮演的角色
人、子系统、硬件设备、时间等…
用例
一组动作序列的描述
名称:动宾结构
如:售货、取货、修改资料、查询信息、删除订单…
关系
包含:include 由父/基-------->子;虚线箭头,连线上标注include;发生在用例之间;必须一起执行扩展:extend 由子-------->父/基;虚线箭头,连线上标注extend;发生在用例之间;扩展功能可能不执行泛化:generalize 由子(特殊)——l>父/基(一般);实线空心三角箭头;发生在 用例之间 或 参与者之间
2.2、示例
3、类图、对象图和包图
3.1、类图
1、可见性
public+protected#private-2、属性
可见性 名称 :类型 [ = 缺省值]
3、方法
可见性 名称(参数列表) [ : 返回类型]
4、类间关系
extends、implements 特指Java中用法
关联依赖关系多重度应为:1 . . 1、1 . . n、n . . m;中间不用冒号,用两个点
3.2、对象图
对象:是类的实例链:是类之间的关联实例系统在某一时刻的一个快照
对象图中的建模元素有对象和链
对象图实质上是类图的实例
3.3、包图
可类比java中的包机制
包图只有依赖关系
4、活动图
活动图本质是上是一种流程图,但是活动图是面向对象的,而流程图是面向过程的活动图用于表达系统动态特性的图参考:活动图
4.1、组成元素
判断节点合并节点泳道动作和活动节点、开始和终止、控制流、判断节点、合并节点、泳道
是将活动中的具体活动按照负责进行该活动的对象进行分区,一条泳道中的所有活动由同一个对象来执行
除了以上的对线性流程进行分区以外,使用泳道表示法可以更清晰地表示并发
分叉节点与结合节点工时审批流程
员工填写工时,项目工时报项目经理审批后再报部门经理审批、非项目工时直接报部门经理审批
4.2、实例
客户下单5、顺序图/时序图
四个元素对象 Object生命线 Lifeline消息 Message激活 Activation6、协作图
描述对象间的组织协作关系,它也可体现出系统用例的行为协作图由参与者, 对象, 连接和消息等基本元素组成7、状态图
状态图(statechart diagram)主要用来描述一个对象在其生存期间的动态行为,表现一个对象所经历的状态序列,引起状态转移的事件(event),以及因状态转移而伴随发生的动作(action)一般可以状态机对一个对象 (这里的对象可以是类的实例, 用例的实例或整个系统的实例) 的生命周期建模状态图是用于显示状态机的,重点在于描述状态之间的控制流状态图与活动图的比较描述重点不同 状态图描述的是对象的状态及状态之间的转移活动图描述的是从活动到活动的控制流使用场合不同 如果是为了显示一个对象在其生命周期内的行为, 则使用状态图较好如果目的是分析用例,理解涉及多个用例的工作流程,或者使用多线程应用等, 则使用活动图较好如果觉得《UML 建模步骤 用例图 类图 对象图 包图 顺序图/时序图 状态图 活动图 协作图》对你有帮助,请点赞、收藏,并留下你的观点哦!