- 用例图开发细节(动态描述,动态建模过程)
-
- 对于参与者一般用人形图标表示人,用类图标表示参与者是设备或者外部系统。
- 参与者之间也有泛化关系,也就是我们所说的继承。
- 关联关系可以采用带箭头的实线也可以采用不带箭头的实线,但是为了统一我们本次均采取带箭头实线。
- 用例一般采用椭圆图标表示,用例名往往用动宾结构或者主谓结构命名
- 用例描述(注意主事件流和子事件流)
- 用例名称
- 用例描述
- 参与者
- 前置条件
- 后置条件
- 主事件流
- 参与者
- 系统
- 参与者
- 系统
- 。。。。。。。。
- 子事件流
- 异常事件流
-
(6)用例建模的步骤(参考uml课本76页。
泛化关系(继承):采用带空心三角箭头的实线表示。箭头指向父类。
关联关系:采用带箭头的实线表示
包含用例:采用带箭头的虚线表示,并在虚线上加入<<include>>字样,箭头指向被包含。
扩展用例:采用带箭头的虚线表示,并在虚线上加入<<extend>>字样,箭头指向基本用例。
实现关系:采用三角箭头的虚线表示(一般不在用例图中采用)。
聚合关系:采用带有空心菱形的实线表示(可以脱离存在,船组合船队)局部指向整体
组成关系:采用带有实心菱形的实线表示(脱离后都无意义,文章的元素组成文章)同上
- 活动图
- 对于带有三个格子的类中,第一个为类名,第二行为属性,第三个为方法,带有下划线的属性为静态属性,带有<<consuctor>>的方法为构造方法。属性名:属性类型
- +:public —:private #:protect
- 对于方法表示方法为:约束特性+属性名+(参数):返回类型。
- 一个关联类只能为一个关联关系指定属性,如果需要把一个关联类的结构重用于多个关联关系,则可以通过泛化关系实现。
- 类之间的关系
- 关联关系:关联用不带箭头的实线表示,如果带箭头则指向被依赖的类(类a中有b则箭头指向b)
- 限定关联、约束关联、关联类,n元关联都要记得考虑,限定关联的目的是把多重性从n降为0或0..1
- n元关联没有限定符的概念,也没有聚合,组成的概念,
- 其他关系见第一部分用例图。
注意!!!:类之间关系的识别即——如何识别关联、泛化、聚合、依赖等关系见课本p139-p143
-
-
- 派生属性和派生关联:派生属性和派生关联名字前需要加/
- 把类名写成斜体字表示抽象类
- 接口类表示的时候需要加<<interface>>
- 基于协作的类图
- 实体类:<<entity>>
- 边界类:<<boundary>>
- 控制类:<<control>>
- 分析阶段进行概念层类图设计,软件设计是采用说明层类图,实现技术时画实现层类图
- 类图包含类名、属性名、类的操作。对象图只含有对象名和对象属性。对象通过链进行联系也就是不带箭头的实线
- 类图和对象图的区别,详见p152.
- 对象图命名:对象名:类名,并以下划线标识
- 画类图的时候采取三步走策略:
- 找对象
- 找属性
- 找关系
-
- 顺序图和协作图(对象之间,对象和参与者之间)
- 绘画顺序图的时候,一般把表示参与者的对象放在图的两侧,主要参与者放在最左边,次要参与者放在右边(或者表示人的参与者放在最左边,表示系统的放在最右边)
- 顺序图中对象命名方式:
- 对象名:类名
- :类名
- 对象名
- 调用消息:发送者把消息发给接收者并且需要等待返回控制后执行,采用实心三角箭头的实线表示
- 异步消息:发送者发送消息给接收者后,做自己的事情,采用实线加箭头表示。
- 过程调用是指消息名和接收消息的接收对象的方法名相同,即消息直接调用了接收对象的某个方法,而非过程调用是指消息是时间发生,由于该事件发生修改了变量的值,从而触发了接受对象的某个方法的执行。
- 顺序图描述的是对象之间的关系,而类图描述的是类之间的关系
- 类图中有关联和依赖没有协作,而顺序图中有协作没有关联和依赖,对象图描述的是对象之间的链也就是关联关系,没有消息传递的协作关系。