用例视图是软件产品外部特性描述的视图,用例视图从用户的角度而不是开发者的角度来描述对软件产品的需求,分析产品所需的功能和动态行为,因此用例图对整个开发过程而言,用例图是至关重要的,用例图是由软件需求到最终实现的第一步,它的正确与否直接影响到用户对产品的满意程度。
UML中的用例图描述了一组用例、参与者以及他们间的关系,用例图主要包括三个方面的内容:用例、参与者和参与者之间的关系。
参与者(Actor)是系统外部是一个实体,可以是任何的事物或人它可以通过向系统输入或请求输入某些事件来触发系统的执行,通俗点说就是描述“谁来做?”这个谁就是参与者。
参与者
参与者包括人参与者和外部系统参与者。可以通过一些问题来寻找系统的参与者:
1.谁或为什么使用系统
2.交互中,它们扮演什么角色
3.谁安装系统
4.谁启动和关闭系统
5.谁维护系统
6.与该系统交互的是什么系统
7.谁从系统获取信息
8.谁提供信息给系统
9.有什么事发生在固定事件中
确定完参与者后,画图时对于参与者还要注意一下几点:
1.参与者对于系统而言总是外部的,因此它们在你的控制之外
2.参与者直接通系统交互,这可以帮助定义系统边界
3.参与者表示人和事务与系统交互时所扮演的角色,不是特定的人或特定的事物
4.参与者与系统交互时,可以同时不同时扮演多个角色
5.参与者要有一个具有业务一样的名字
6.每个参与者必须有简短的描述
用例
用例是对系统的功能需求的描述,用例表达了系统的功能和所提供的服务,用例描述了活动者与系统交互中的对话,用例时描述“做什么?”
我们可以通过以下几个问题来识别用例:
1.特定参与者希望系统提供什么功能
2.系统是否存储和检索信息,如果是,这个行为由哪个参与者触发
3.当系统改变状态时,通知参与者吗
4.存在影响系统的外部事件吗
5.是哪个参与者通知系统这些事件
关系
用例间的关系包括泛化、关联和依赖。
对于泛化我一般习惯称为继承。例如在我们机房收费系统中,一般用户、操作员之间关系就是继承关系。
关联指一种对象和另一种对象有联系。比如在我们机房收费系统中,学生通过工作人员与系统交互,学生与工作人员之间的关系就可以是关联。
依赖是一个对象变化会引起另一个对象的变化。例如在我我机房收费系统中,如果卡号余额不足,就会导致卡号不能上机,影响卡号的使用状态。
下面是我对机房收费系统所画的用例图,欢迎大家提出意见: