UML用例图就是用例描述用户的需求,它从用户的角度描述系统的功能,并指出各功能的执行者,强调谁在使用系统,系统为执行者完成哪些功能。
用例图一般用来宏观上给出用例模型的基本轮廓,用例的真正实现细节由用例描述来详细说明
用例模型主要用于需求分析阶段,是系统用例图的集合。
定义:系统以外,在使用系统或与系统交互中所扮演的角色,可是人、事物、时间等等。不是指人、事物,而是人或事物当时所扮演的角色
表示:小人表示,下面附上参与者的名称(下图左侧)。有时候是其他系统。可不使用小人,而使用下图右侧图符表示:
如何找:1、谁使用系统的功能 2、谁需要系统支持日常的工作3、谁来维护这个系统 4、系统需要操作哪些硬件 5、系统需要和哪些系统进行交互 6、还有哪些人或者事物与结果感兴趣 (以系统为重心)
定义:指系统、子系统或类与外部执行者之间交互的动作序列说明,包括各种序列及出错序列
表示:椭圆形表示,名称需要反映出功能
如何获取:1、执行者要求系统提供哪些功能;2、执行者需要增删改查或存的信息有哪些;3、系统是否需要把自身的状态变化告诉执行者;4、系统是否需要知道哪些外部事件,执行者怎样把这些事件告诉系统;5、系统需要何种输入和输出(从哪来到哪去);6、如何维护系统
表示参与者与用例之间的通信,用例与用例之间不存在。一般由执行者指向用例。一个用例和一个执行者之间最多只有一个管理关系。但是关系是:M:N
表示一个用例可以包含其他用例具有的行为,并把它所包含的用例行为作为自身用例的一部分。
箭头方向由基本用例指向被包含用例;基本用例描述在多个用例中都有的公共行为
(用户想要进入收藏夹首先得身份验证,如饭前需要洗手)
定义:继承。子与父用例相似,子继承父的所有的结构、行为、行为和关系。还可添加、覆盖改变继承的行为
若系统中一个或多个用例是某个一般用例的一般化时,就需要使用用例的泛化关系。当系统中存在泛化关系时,若父用例被使用,其任何子用例也可以被使用
定义:用例功能的延伸,相当于为基础用例提供了一个附加功能,也是依赖关系的一种。所以扩展用例不一定每次都被执行和调用。而被包含用例每次必修执行
条件性:泛化中的子用例和include中的被包含的用例会无条件发生,而extend中的延伸用例的发生是有条件的;
直接性:泛化中的子用例和extend中的延伸用例为参与者提供直接服务,而include中被包含的用例为参与者提供间接服务。
对extend而言,延伸用例并不包含基础用例的内容,基础用例也不包含延伸用例的内容。
对Inheritance而言,子用例包含基础用例的所有内容及其和其他用例或参与者之间的关系;
用来说明执行者为了实现自己的目标与系统进行交互的过程。由执行者开始。执行者得到一个有价值的结果为止。
事件流:描述一个用例时,执行者与系统之间的一次交互过程。包含:基本流、备选流、事件流的循环与分支
前置条件:执行的前提条件
后置条件:用例结束时系统的状态
前置和后置可用于用例的验证和评审
特殊要求:用例中的非功能性需求
扩展点:用例的扩展
用例场景:由基本流和备选流组合而成。包括成功和失败场景
问题说明:本用例在分析和描述过程中还存在的问题
用例的大小
概述级(粗的粒度)
用户目标级(细化)
子功能级(再次细化、一般不深入这一层)
用例图是系统建模的起点。用来描述系统的概要功能和行为,实现这些功能和行为的细节则由用例描述文档进行详细说明。
进行系统用例绘制主要需要经过以下步骤:用户需求(系统开发原动力)、需求分析(用例图)、需求描述{用户需求文档(包括描述功能需求的用例图和用例文档,以及描述非功能需求的文档)}。