用例之间的关系
除了与角色关联外,用例之间还可以具有包含和扩展的关系。
* 包含(<<include>>)
尽管每个用例是独立的,但也可以分解成更加简单的用例,这种用例之间的关系称为包含。一般情况下,如果若干用例的某些行为都是相同的,则可以将这些相同的行为提取出来单独组成一个用例。当其他用例使用该用例时,便包含了该用例的所有行为。包含关系用带关键字<<include>>的虚线来表示,箭头指向被包含的用例。
* 扩展(<<extend>>)
在一个用例中加入一些新的动作,则构成了另一个用例,这种用例之间的关系称为扩展。扩展用例可以根据需要有选择地继承原有用例的部分行为,扩展关系用带关键字<<extend>>的虚线来表示,箭头指向被扩展的用例。
描述用例
前面提到,单纯使用用例图不能提供用例所具有的全部信息,因此,需要使用文字描述那些不能反映在图形上的信息。用例描述实际上是关于角色与系统如何交互的规格说明,要求清晰明确,没有二义性。描述用例时,应该只注重外部能力,不涉及内部细节。
用例描述主要包括以下内容:
* 目标
简要描述用例的最终任务和结果。
* 事件流
(1) 说明用例是怎样启动的,即哪些角色在什么情况下启动执行用例。
(2) 说明角色和用例之间的信息处理过程,如哪些信息是通知对方的,怎样修改和检索信息的,系统使用和修改了哪些实体等。
(3) 说明用例在不同的条件下,可以选择执行的多种方案。
(4) 说明用例在什么情况下才能被视作完成,完成时结果应传给角色。
图4.16 用例描述的事件流
通常,事件流包括基本流程和可选流程两部分。基本流程说明了角色和系统之间相互交互或对话的顺序,当这种交互结束时,角色便实现了预期目的;可选流程也可促进成功地完成任务,但它们代表了任务的细节或用于完成任务的途径的变化部分。在交互过程中,基本流程可以在一些决策点上分解成可选流程,然后再重新汇成一个基本流程。在图4.16中,Step1~5为基本流程,Step3a~3c为可选流程。
* 特殊需求
说明此用例的特殊要求。
* 前提条件
说明此用例开始执行的前提条件,如角色登录成功等。
* 后置条件
说明此用例执行结束后,结果应传给什么角色。
下面我们给出上述例子中"登记成绩"的用例描述。
用例:登记成绩
1. 目标
本用例允许教师提交上学期完成的一门或多门课程的学生成绩。
2. 事件流
基本流程
当教师希望提交上学期完成的一门或多门课程的学生成绩时,本用例开始执行。
(1) 系统显示教师上学期所教的课程列表;
(2) 教师选择所教课程;
(3) 系统检索出已注册此课程的学生列表,显示每个学生及其以前所给的成绩;
(4) 对于列表中的每个学生,教师输入百分制成绩,系统记录所提供课程的学生成绩。如果教师希望跳过某个特定的学生,其相应的成绩可以为空,以后在进行填写。教师可以修改学生的成绩。
可选流程
在主流程中,如果教师在上学期没有教课,系统将显示错误信息,教师接受此信息,用例结束。
3. 特殊需求
无。
4. 前提条件
用例开始之前,教师必须在系统登录成功。
5. 后置条件
如果用例执行成功,所提供课程的学生成绩被更新,否则,系统状态不变。 |
|