UML学习笔记
- 在分析阶段,需向行业专家请教,须要问问本身,谁是系统的最终用户
- UML(统一建模语言)是一种系统建模方法,有两个主要构件 -- 结构图和行为图
1、用例图
一、说明
1.1 用例图说明的事谁要使用系统以及他们使用该系统能够作些什么?
<业务需求>
1.2 解析一个用例图,咱们能够发现它包含4个基本组件:
另外能够经过在用例前面加上包名和两个冒号来肯定该用例是属于哪一个包的。如:staff::mechanic。若是用
多个参与者与用例之间有同一关系,能够从新考虑为用户选择的在系统中扮演的角色的名称。使名称更为普遍化,以一个参与者取代重复的参与者。
二、包含用例图
用
虚线和箭头链接,起始处为包含用例,终止处为被包含用例。包含关系用于表示用例为执行其功能从其余用例引入功能。(
重用某些功能)
教师必须记录成绩,更新成绩。这两个用例都从一个用例包含了一项为save grades的公用功能,成绩总会被保存。
三、 扩展关系(继承)
表示用例能够经过其余用例获得扩展
Notify guardians 用例是添加到save grades 功能中的一项功能。
与包含关系相比,用例必须包含被包含用例,而扩展关系则有是否使用被扩展功能的选择权。
四、建立用例图步骤
找出系统中的参与者和用例
区分用例的优先次序
细分每一个用例(描述)
创建用例模型结构
创建用户界面的原型
PS: 软件开发过程
泛化
2、活动图
用于面向对象的系统的不一样组件之间建模工做流
一、做用
二、组件:
- 状态,指示系统当前状态 (在StarUML里面,状态和活动是同一个标识,其实状态图应该是一个矩形四个角为小圆弧)
UML描述了两个特殊状态,即开始状态和结束状态。开始状态以
实心黑点表示,结束状态以
带有圆圈的实心黑点表示。
- 事件和触发器,强制控制流从一个活动到另外一个活动的活动(相似JAVA中的方法)
- 游泳道(强烈推荐在模型中涉及多个对象事使用游泳道)
3、 顺序图
用于显示参与者如何以一系列顺序的步骤与系统的对象交互的模型(不一样的活动对象之间的交互)
因为StarUML对顺序图的支持不是很好,本节最好贴上笔抄
一、组件:
- 活动对象,能够是系统的参与者或者任何有效的系统对象
消息能够包含条件一边限制他们只在知足条件对才能发送
消息包含四种类型:
同步 : 指示在消息完成以前,工做流被中断
返回 : 显示控制流返回到调用的活动对象
异步 : 用于被返回的消息,活动对象不等待来自该消息的响应
简单 : 在同步和异步之间没有区别
即时建立对象 :
二、建立顺序图4项任务:
- 肯定须要建模的工做流
- 从左到右布置对象
- 添加消息和条件以便建立每个工做流
- 绘制总图以便链接各个分图
三、附图(笔抄):
4、 类图
一、做用:
- 为了更加详细地展现产品
- 提供指示完成有效功能的路径地图所需的信息
二、组件

、
- 多重性,一个类的多少对象与另外一个类的一个对象相关
上例描述了一个Teacher教授1到无限多个班级,一个Student属于4-6个班级,一个Class有10-30个学生
1,3..*(除2以外的天然数); 2,4,6,8,10(大于0小于等于10的偶数)
- 角色,在类图中使用角色能够帮助读者理解第一个类对于第二个类的做用,角色与多重性显示在相同的位置
对象的特性值显示在特性名以后,中间用等于号链接
Developer属于Development包
三、步骤
建立类图两个反复步骤就是
5、 协做图
一、对象实例的3种标记符
二、协做图中对象实例角色的4种标记符
三、类角色的3种标记符
四、连接
“parameter”固化类型指示一个对象是另外一个对象的参数,而"local"固化类型指定一个对象在其余对象中具备局部做用域
五、消息
六、序列化消息
七、迭代
对于每个ObjectB, Message都会从ObjectA发送到对应的ObjectB
Message被从ObjectA到ObjectB 发送了5次
八、如何创建协做图
- 肯定属于协做图的元素
- 建模这些元素之间的结构化关系
- 建模实例层的协做图