当前位置 工程之家 软件工程 正文 下一篇:

用例图模型的组成元素构成:参与者、用例和关系

用例模型由三个组成元素构成:参与者、用例和关系。

1.参与者(Actor)

参与者是指存在于系统外部并直接与系统交互的人、系统、子系统或类的外部实体的抽象。每个参与者可以参与一个或多个用例,每个用例也可以有一个或多个参与者。

参与者代表的是一个集合,通常一个参与者可以代表一个人、一个计算机子系统、硬件设备或者时间等。在一个业务系统中可能存在许多参与者实例(如多个学生、多个教师),但对业务系统来说,这些多个同类型的参与者实例在系统中扮演着相同的角色,因此多个具有相同属性和行为的参与者实例应为一类参与者角色(学生、教师、管理员)。如网上银行系统的参与者就包括用户、金融机构(银行系统)、银联中心等几类参与者。

参与者还可以划分为主要参与者和次要参与者。主要参与者指的是执行系统主要功能的参与者。例如,学生管理系统中的学生、教师、管理员。次要参与者是指使用系统次要功能的参与者,为当前业务系统提供服务的参与者,如学生管理系统中的邮件系统。标注出主要参与者有利于找出系统的核心功能,往往也是用户最关心的功能。

参与者可以通过以下问题识别角色:

(1)谁使用系统的主要功能?

(2)谁需要系统的支持以完成日常工作任务?

(3)谁负责维护、管理并保持系统正常运行?

(4)系统需要应付(或处理)哪些硬设备?

(5)系统需要和哪些外部系统交互?

(6)谁(或什么)对系统运行产生的结果(值)感兴趣?

2.用例(Use Case)

用例是从用户角度描述系统的行为,它将系统的一个功能描述成一系列事件,这些事件最终对参与者产生有价值的可观测结果。它定义了系统是如何被参与者使用的。用例最大的优点是站在用户的角度上,从系统的外部来描述系统的功能,并不关心系统内部是如何完成它所提供的功能,表达了整个系统对外部用户可见的行为。

用例具有如下特征:

●用例必须由某一个参与者触发激活后才能执行,即每个用例至少应该涉及一个参与者。如果存在没有参与者的用例,则可以考虑将该用例合并至其他用例之中。

●用例表明的是某一类行为,而不是某个具体的实例行为。用例所描述的是它代表的功能的各个方面,包含了用例执行期间可能发生的各种情况。

●用例是一个完整的描述,一个用例在实现环境中可能会被细化和分解为更小的执行流程,但这些执行流程具有先后顺序之分,只有当所有的执行流程都完成,并最终将结果返回给参与者,才能代表整个用例的完成。

任何用例都不能在缺少参与者的情况下独立存在,同样,参与者也必须要有与之相关联的用例。当参与者确定后,可以从参与者如何使用系统、需要系统提供什么样的服务等方面来识别用例。因此,用例可以通过回答下面的问题来识别:

(1)与系统实现有关的主要问题是什么?

(2)系统需要哪些输入/输出?这些输入/输出从何而来?到哪里去?

(3)执行者需要系统提供哪些功能?

(4)执行者是否需要对系统中的信息进行读、创建、修改、删除或存储?

(5)系统中发生的事件是否通知参与者?

(6)是否存在影响系统的外部事件?

(7)参与者是否将外部的某些事件通知给系统?

在进行用例识别的时候,针对同一个业务系统的描述,不同的人可能会产生不同的用例模型,这就涉及用例的粒度问题。用例的粒度是指用例所包含的系统服务或功能单元的多少。如果用例的粒度很小,得到的用例数就会太多。反之,如果用例的粒度很大,那么得到的用例数就会很少,如果用例数目过多则会造成用例模型过大,导致后面的设计困难。如果用例数量很少则会造成用例的粒度太大,导致后面设计不能充分地实现系统的功能。因此,在确定用例粒度的时候,应该根据每个系统的具体情况、具体问题进行分析,尽可能保证整个用例模型在易理解的前提下,决定用例的大小和数目。

用例图只是在总体上大致描述了系统所提供的各种服务,让人们对系统有一个总体的认识。但对每一个用例,还需要详细地描述信息,以便让用户对于整个系统有更加详细的了解,这些信息就包含在用例描述之中。因此,用例描述包含的内容如下:

●目标:简要描述用例的最终任务和结果。

●事件流:事件流包括基本流和备选流。基本流描述用例的基本流程,是指用例正常运行时的场景。备选流描述用例执行过程中可能发生的异常和偶尔发生的情况。基本流和备选流应该能够覆盖一个用例所有可能发生的场景。因此,事件流中内容应包括:

(1)说明用例是怎样启动的,即哪些角色在什么情况下启动执行用例。

(2)说明角色和用例之间的信息处理过程,如哪些信息是通知对方的,怎样修改和检索信息的,系统使用和修改了哪些实体等。

(3)说明用例在不同的条件下,可以选择执行的多种方案。

(4)说明用例在什么情况下才能被视作完成,完成时结果应传给角色。

●特殊需求:说明此用例的特殊要求。这些特殊需求包括该用例非功能性需求和设计约束,如性能、可靠性、可用性等。设计约束包括兼容性、操作系统及环境等方面。

●前提条件:说明此用例开始执行的前提条件。

●后置条件:说明此用例执行结束后,结果应传给什么角色。

3.用例之间的关系

从原则上来讲,用例之间都是并列的,它们之间并不存在着包含从属关系。但是从保证用例模型的可维护性和一致性角度来看,我们可以在用例之间抽象出包含(include)、扩展(extend)和泛化(类属)(generalization)这几种关系。这几种关系都是从现有的用例中抽取出公共的那部分信息,然后通后过不同的方法来重用这部分公共信息,以减少模型维护的工作量。

版权声明:本篇文章(包括图片)来自网络,由程序自动采集,著作权(版权)归原作者所有,如有侵权联系我们删除,联系方式(QQ:452038415)。http://www.apmygs.com/504.html
返回顶部