用例图:用来描述用户的需求
方面:
功能(从用户角度分析)
角色(各功能的执行者)
构成:
用例:用例名称需要反映用例的功能(需求功能描述)
角色(actor):激活、处理、接受信息(角色还可以是一些事、物)
主要属性:
事件流:执行时,执行者与系统间的交互过程
前置条件:用例执行的前提条件
后置条件:用例结束时系统的状态
特殊要求
扩展点
关系:
关联
依赖
泛化
例:
一个客户打电话,从银行取钱,需要身份验证
因为都要使用到身份验证,把它独立出来,作为单独用例;如果不抽象,打电话、取钱都要验证,出现冗余,一旦有冗余,不仅造成空间上的浪费还会导致代码不一致。独立出来,只需要维护一份身份验证,打电话和取钱与身份验证是使用关系。
设计时,要确定用例的粒度,是否应该把用力拆成更小的用例需要考虑。如果某一功能在多处都需要用到,就应该把它抽象成用例存在,然后其他和它之间就是复用关系。
用例的粒度与范围(从粗浅到细化)
在设计用例时,一定要考虑用例的粒度。如果多个用例之间共享同一个子功能,就要把它抽象提取成一个单独的用例。如果用例之间没有重叠,就设计成一个个单独的用例。
用例图重要性
用例图是描述需求关系,不能和后面几种图脱离,还应考虑用例和用例之间的包含、泛化、扩展关系等,类图应该按照用例图进行逻辑组织,不要使用例图形同虚设。
因此,画用例图时就要严格把关分析设计,给出良好的用例粒度及良好的用例关系之间的描述,只有这样后面的其他视图才能描述的正确,质量才能很好,才能和用例图相关。