概念
所谓用例,是对一组动作对象的抽象描述,系统执行这些操作,产生相应的结果。
而所谓的用例图就是由参与者(Actor)、用例(usecase,一般为动宾短语)、系统边界以及线条和箭头组成。
用例图,用于分析这个系统,有哪些角色(一类人、是另外一个系统),各个角色使用功能
1.参与者(Actor)
参与者不是特指人,是指系统以外的,在使用系统或与系统交互中所扮演的角色。因此参与者可以是人,可以是事物,也可以是时间或其他系统等等。还有一点要注意的是,参与者不是指人或事物本身,而是表示人或事物当时所扮演的角色。
参与者在画图中用简笔人物画来表示,人物下面附上参与者的名称。如下图:
2.用例
用例是对包括变量在内的一组动作序列的描述,系统执行这些动作,并产生传递特定参与者的价值的可观察结果。我们可以这样简单去理解,用例是Actor想要系统去做的事情。用例的命名,一般是带有动作性的词。
用例在画图中用椭圆来表示,椭圆下面附上用例的名称。如下图
3.系统边界
系统边界是用来表示正在建模系统的边界。边界内表示系统的组成部分,边界外表示系统外部。系统边界在画图中用方框来表示,同时附上系统的名称,参与者画在边界的外面,用例画在边界里面。
关系
用例图有四种关系:泛化关系,关联关系,包含关系,扩展关系
1.泛化关系
泛化换一种方式说就是继承(相当于Java中的extends)
用例的泛化关系与类的泛化关系相似,即在用例泛化中,子用例表示父用例的特殊形式,子用例从父用例继承了行为和属性,还可以添加行为和属性,改变已继承的行为.
一个用例可以被特别列举为一个或多个用例,这被称为用例泛化,如果系统中一个或多个用例是某个一般用例的特殊化时,就需要使用用例的泛化关系。
泛化关系.png2.关联关系
关联关系是连接执行者和用例,表示该执行者代表的外部系统实体与该用例描述的系统需求有关。
关联关系.png3.包含关系(Include)
包含关系把几个用例的公共步骤分离成一个被包含的用例,用例间的包含关系允许包含提供者用例的行为到客户用例中.把包含用例称为客户用例,被包含用例称为提供者用例.包含用例提供功能给客户用例
包含关系是来自于用例的抽象,即从数个不同的UseCase中,分离出公共的部分,而成为可以复用的用例。
包含关系.png4.扩展关系(Extend)
是把新行为插入到已有用例中的方法.基础用例提供了一组扩展点..这些扩展点可以添加新的行为.而扩展用例提供了一组插入片段.这些片段能插入到基础用例的扩展点
UML用例图设计中扩展关系表示某一个用例的对话流程中,可能会根据条件临时插入另外一个用例,而前者称为基础用例后者称为扩展用例。
扩展关系.png举个栗子
我们要实现一个简单的网站登录功能,那么其对应的用例图可以这么来画
网站登录功能
网友评论