UML建模(用例图)
阿里巴巴长期招聘Java研发工程师p6,p7,p8等上不封顶级别,有意向的可以发简历给我,注明想去的部门和工作地点:1064454834@qq.com
欢迎关注微信公众号:技术原始积累 获取更多技术干货
一、用例图
在软件生命周期的整个过程中,用例图是软件需求分析到软件交付的第一步,用例图的主要目的是说明这个软件的使用者是谁,使用者要使用那些功能,以及使用者需要向软件提供什么功能。通过用例视图一来可以让使用者清楚的理解这个软件到底能提供什么功能,是不是满足自己的需求,另外一方面对应开发者来说,可以更好地理解需求,从而能更好的去实现这些需求。
用例图主要有六个元素,分别是:参与者(Actor)、用例(Use Case)、关联关系(Association)、包含关系(Include)、扩展关系(Extend)以及泛化关系(Generalization)。
参与者(Actor)
参与者在uml中用下面带有名字的小人来标示,主要表示与您的软件系统交互的人,组织或者外部软件系统。
用例(Use Case)
用例在uml中用使用椭圆标示,主要说明你的软件系统的功能,是使用文字描述的形式说明你的系统的功能。
关联关系(Association)
在uml中用例图中用箭头来标示,主要描述参与者与用例之间的关系。
【箭头指向】:指向用例
包含关系(Include)
在uml中包含关系表示为虚线箭头交<<include>>字样,有时候一个用例很大,那么我们可以把用例分块,把复杂的用例分解为几个小用例来描述
【箭头指向】:箭头指向被包含的用例
image.png
扩展(Extend)
在uml中扩展关系表示为虚线箭头加<<extend>>字样,扩展是指在基础用例功能的基础上插入新的功能点,新的功能点可以看做是对基础用例的扩展。
【箭头指向】:箭头指向基础用例
泛化(Inheritance)
在uml中用例泛化用一个空心三角箭头从子用例指向父用例,泛化就是继承关系,子用例可以使用父亲用例中的属性,行为和关系。
【箭头指向】:箭头指向父用例
Include、Extend、Inheritance总结对比
包含关系强调整体与部分之间关系,也就是说整体的功能是由一个个子用例功能叠加起来的,比如上图庭审功能就包含了线上视频庭审,线上语音庭审,线下语音庭审功能,庭审用例本身是对子功能的汇总标示,具体功能点在子用例实现。
扩展关系则强调是在基础功能的基础上添加新的功能,基础功能本身是提供功能的,基础功能和扩展功能直接是不可见的,但是扩展功能是要在基础功能的某一个条件下才会发生,例如上面基础服务视频庭审已经提供了庭审的功能,现在有加了了扩展的语音识别功能来识别用户说的话为文字。之所以说是扩展功能是因为即便没有语音识别功能,视频庭审功能还是照样可以正常运转,之所以说扩展功能是有条件发生是因为只有开通了语音识别的视频庭审才能回有语音识别的扩展功能
泛化关系则强调复用的关系,也就是说子用例基础了父用例的一部分功能并且自己有新增了或者覆盖了父用例的功能,具体说比如上图视频庭审有个记录笔录的功能,这个本身是个独立的功能点,而书记员和法官都可以复用这个功能并对其定制化。
一个案例
欢迎关注微信公众号:技术原始积累 获取更多技术干货
image.png