UML之用例图

来源:互联网 发布:打印机故障检测软件 编辑:程序博客网 时间:2024/06/05 06:03

用例图(Use Case Diagram主要描述系统的行为及各种功能之间的关系,是描述参与者(Actor)与用例以及用例与用例之间的关系。

用例图=参与者 +用例 +关系

Use CaseDiagram = Actor + Use Case + Relationship


用例图有四个部分:用例(Use Case), 参与者(Actor),系统边界,关系。 


参与者

参与者是与系统交互的人或物。首先当然包括我们的开发系统用户,除此之外,与我们开发的系统有关联的其他系统也算是参与者。

UML图中我们用一个小人表示。

用例?

用例是参与者可以感受到的系统服务或功能单元。我理解的就是用户可以使用我们开发的项目去做的任何事情

任何用例都不能在缺少参与者的情况下独立存在,同样,任何参与者也必须要有与之关联的用例。在UML图中我们用椭圆表示


系统边界?

指系统与系统之间的界限。把系统边界以外的同系统相关联的其他部分称为系统环境。


用例之间的关系

1、泛化关系

泛化关系是两个用例或两个参与者之间的关系。

当多个用例共同拥有一种类似的结构和行为的时候,可以将它们的共性抽象为父用例,其他的用例作为子用例,用例间的这种关系被称为用例的泛化关系。

AB的泛化,意味着A描述的是一般的行为,而B是这些行为更详细,A就被称为父用例(Parent Use Case)或基用例(Base Use Case),B被称为子用例(Child Use Case).在用例的泛化关系中,子用例是父用例的一种特殊形式,子用例继承(Inherit)父用例所有的结构、行为和关系。

2、扩展关系

扩展示两个用例之间的关系,它使每个用例可以通过扩展用例向基用例中添加额外的行为来扩展基用例的功能。

用例A拓展了用例B,则称A为基用例,B为扩展用例(Extend UseCase)或子用例,它表示扩展用例B的事件流在一定的条件下按照相应的扩展点可插入基用例B中,这样就需要在基用例中定义一至多个已命名的扩展点。选用扩展关系可以把一些可选的操作独立封装在另外的用例中,避免基用例过于复杂。


3、包含关系

包含是两个用例之间的关系。当多个用例需要用到同一段行为时,可以把这段共同的行为单独抽象称为一个用例,然后让其他的用例来包含这一用例,避免多个用例中重复描述同一段行为,以防止该段行为在多个用例中的描述出现不一致性。


用例A包含B,将A称为基用例,B称为被包含用例(InclusionUse Case)。被包含关系表示基用例会用到被包含用例,被包含用例的事件流在基用例的某个点处插入到基用例的事件流中。

 

区别

包含关系是子用例中的事件流一点要插入基用例中去,扩展关系是根据一定条件来决定是否将用例的事件流插入到基用例事件流,并且事件流是多个。