继续上篇博客,本篇讨论用例图
一、用例图介绍:
网络上说用例图是由角色、用例和关系三部分构成的。但实际呢,还有包(Package)、用例范围(Use Case Subject)。
角色:角色一般比较好确定,在系统还比较模糊前,角色一般都可以确定。在用例图种,角色使用人形图案表示。
用例:除了角色之外的对象,一般用椭圆形来表示。
包:不是很清楚怎么用,待我后续补充。
用例范围:主要将部分用例和角色集中到一起,说明这部分的作用。如下方的“聊天系统服务器“,”备份系统“。
关系:用来表示角色与角色、角色与用例、用例与用例之间联系。其关系大致有:关联关系、泛化关系、包含关系和扩展关系。
1、关联关系:
同类图的划分,分三种:双向关联、单向关联、自关联。
1)双向关联:与类图不同,在实际运用种双向和单向有时并不能很好的说清楚,所以建议在无法确定是单向时使用双向。
【表示】无箭头实体线
2)单向关联:确定是单方向的使用时,使用单向关联。
【表示】普通箭头实体线,指向被需要者
3)自关联:其也分有方向和无方向的自关联,不过暂时没有想到可能存在的情景,希望各位看官脑补下~
【表示】(有方向?普通箭头:无箭头)实体线,指向自己
2、泛化关系:
同类图类似,可以理解为继承关系。具体:一个用例可以被特别列举为一个或多个用例,这被称为用例泛化,如果系统中一个或多个用例是某个一般用例的特殊化时,就需要使用用例的泛化关系
【表示】:空心三角箭头实体线,指向父用例
3、包含:
包含关系用来把一个较复杂用例所表示的功能分解成较小的步骤。
【箭头指向】:虚线普通箭头,指向分解出来的功能用例,startUML中含有include标识
4、扩展:
扩展关系是指用例功能的延伸,相当于为基础用例提供一个附加功能。可以把扩展关系看作是带有更多规则限制的泛化关系来帮助理解。
【箭头指向】:虚线普通箭头,指向基础用例,startUML中还有extends标识。
其它的:在startUML中还有依赖关系,个人不推荐使用。网络上也没有文章有说过依赖关系,如果按照类图的方式去理解的话,倒是可以勉强使用,但是在具体实用中,概念又有些模糊,会与单向关联产生些许冲突。在实际中如果发现就当作是单向关联来理解吧。
二、startUML工程创建
1、创建Model:在startUML右上方可以找到Explorer,在Untitled右键,add,选择model,创建一个自己的Model,修改名称MyModel。
2、创建用例图:在MyModel上右键,Add Diagram,选择Use Case Diagram。
3、添加角色:点击左下方ToolBox里的UseCase中Actor,再在画板上选择位置点击使用。
4、添加用例:同上,选中Use Case
5、添加关系:
1)关联:
双向关联:选中Association,再选中关联的一方,拖动到另一方。
单向关联:选中Directed Association,选中需要一方,拖动到被需要的一方。
自关联:(有箭头?选中Directed Association:选中Association),点击需要自关联的用例或者角色。
2)泛化:选中:Generalization,再左键子类用例或者角色,拖动不放到父类用例或者角色。
3)包含:同上,选中Include
4)扩展:同上,选中Extend(需要注意的是,其指向基础用例)