注明:整理自学习礼包,非彻底原创,原做没法考查。架构
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------并发
1、用例图(Use case)dom
参与者,经过使用系统服务实现其目标的那些人或者事物异步
用例,外部可见的系统功能,对系统提供的服务进行描述。用椭圆表示。用例是动词或者动名词。能够从每个界面的主要功能来析取用例。学习
关系:spa
用例图中涉及的关系有:关联、泛化、包含、扩展。设计
以下表所示:对象
关系继承 |
涉及对象接口 |
符号 |
箭头方向 |
关联 |
参与者与用例 |
|
无箭头 |
泛化 |
参与者与参与者 用例与用例 |
|
指向父用例或者父参与者 |
包含 |
用例与用例 |
|
指向分解出来的功能 |
扩展 |
用例与用例 |
|
箭头指向基础用例 |
泛化
包含
扩展
注意:用例的词性(动名词),关联是实线无箭头
2、活动图(Activity)
每个用例有一个活动图,活动图尽可能简单
开始节点: (只有一个)
结束节点: (能够有多个)
同步条: (必须成对出现),表示并行执行
选择/合并: (须要写明分支的判断条件)
活动: (圆边矩形,必须与状态图进行区分,动名词,能够从一个用例的执行流程中分析出动词)
注意:同步条必须成对出现,断定需列明条件,活动的框必定是圆边矩形
3、状态图(statement)
每个用例有一个状态图,显示一个对象从建立到消亡的整个生命周期
状态:表示对象具备的一个情况,条件(名词或者说不是动名词格式)
转移:事件名 [监护条件]/动做名(若是前面出现“/”,说明是系统的动做,不加是使用者进行的操做)
开始/结束状态:
注意:状态是圆角矩形,状态不能是一个动做(动名词格式),而是一个情况(名词或者名词+动词的格式)必需要有状态发生变化的条件
4、领域模型(domain model)
一组没有定义操做(方法的特征标记)的类图,也称为概念类图
步骤:(1)寻找概念类
概念类:思想,事物或对象(也就是说找名词)
描述类:描述其余事物的信息,如Flight和Airport之间最好添加一个FlightDescription这个描述类。
(2)将其绘制为UML类图的类
(3)添加关联和属性
关联:名称须要首字母大写,通常以类名-动词短语-类名的格式来命名。但在领域模型中,避免加入太多关联,是否须要记录关联,要基于现实世界的须要,就是那些“须要记住”的关联关系。
多重性:类A有多少个实例能够和类B的一个实例关联
0或更多
1或更多
1~40
属性:对象的逻辑数据值。当需求(用例)建议或暗示须要记住信息时,引入属性
(能够只有属性名称,不须要类型,可见性)
注意:一般不超过10个概念类,至少有一个描述类,不能出现XX列表
5、系统顺序图(SSD)
对于用例的一个特定场景(通常是一个用例),外部参与者产生的事件,其顺序和系统之类的事件。该图强调的是从参与者到系统的跨越系统边界的事件。
(也就是说系统被视为黑盒)
参与者:须要加‘:’和下划线
系统:
循环:
注意:对象必须有“:”和下划线,消息须要有编号,而且消息为动做,必需要有控制焦点,不超过5个消息,尽量简单
6、包图
(MVC架构 view【也就是UI,边界类】model【实体类,从领域模型中选取】 control【控制类】)
依赖: 箭头指向被依赖的包(包的图都是虚线)
层:
类,用例等:
嵌入包:
注意:包与包之间必定是虚线
7、顺序图
在时间上对象交互的安排
角色(Actor)系统角色,能够是人、及其甚至其余的系统或者子系统。
对象: (名称前面要加“:”,还有下划线)(对象通常是前面包图说起的与用例相关的边界类,控制类,实体类)
生命线: 表示对象存在的时间
控制焦点: 表示对象执行一个动做的期间 (也能够不用这个)
消息: (消息须要有序号,且消息为动做)
同步消息:消息的发送者把控制传递给消息的接收者,而后中止活动,等待消息的接收者放弃或者返回控制。用来表示同步的意义。
异步消息:消息发送者经过消息把信号传递给消息的接收者,而后继续本身的活动,不等待接受者返回消息或者控制。异步消息的接收者和发送者是并发工做的。
自调用信息:表示方法的自身调用以及一个对象内的一个方法调用另一个方法。
注意:对象必须有“:”和下划线,消息须要有编号,而且消息为动做,必需要有控制焦点,对象来源于包图
8、设计类图
类:
(和顺序图对应,分为实体类(领域模型的类),边界类(界面),控制类)
关系 |
表示关系 |
符号 |
箭头方向 |
关联 |
对象之间具备永久关系 |
|
能够用箭头表示关联的方向。没有箭头表示双向关联 |
多重性 |
多重性:类A有多少个实例能够和类B的一个实例关联 |
|
无箭头 |
依赖 |
表示一个类依赖于另外一个类的定义,其中一个类的变化将影响另一个类(use) |
|
指向被依赖的类 |
泛化 |
类与类的继承关系。子类继承超类的全部特(属性、操做、关系),并具备独自的特性 场景:父与子、植物与树等 |
|
指向父用例或者父参与者 |
实现 |
类与接口的实现关系 |
|
指向接口 |
聚合 |
当某一个类成为另外一类的一部分时,可以使用汇集的关系,表示类之间的关系是总体与部分的关系(has) |
|
部分指向总体 |
组合 |
对象A包含对象B,对象B离开对象A没有实际意义。是一种更强的关联关系。人包含手,手离开人的躯体就失去了它应有的做用。(contain) |
|
部分指向总体 |
组合>聚合>关联>依赖
注意:类名须要和领域模型,顺序图的同样;每一个类至少1属性,1操做;
注意继承,聚合这些关系,实线和虚线的区别,类之间的关联关系是几对几的关系;重要的是与前面的图保持一致性
9、部署图
(整个系统就一个)可经过修改这个基础模型来作
注意点:节点之间没有箭头,节点是软件仍是物理设备须要标记,须要写清链接的介质(如网线那些),协议(HTTP等)
------------------------------------------------------------------------------------------------------------------------------------------------