用例图:不是面向对象的面向对象设计概念图

导读

相信经历软考的人都应当对最后的几个大题的图傻傻分不清楚。别害怕,还有更猛的,把你锤在地上爬都爬不起来。

用例图简介

用例图是什么?这个只能通过死记硬背来对应起来。这玩意怎么记呢?既然是用例图,那肯定就是在说什么对象在使用什么操作。听起来很有面向对象的那味儿了,不是么?

用例图:不是面向对象的面向对象设计概念图

——摘自百度百科【用例图】

来看看上面这张图,这种就是用例图(虽然并不标准)。

可以看到,教师拥有“录入成绩”、“修改成绩”、“查询成绩”、“删除成绩”、“登录”五大功能,同时附赠一个“找回密码”的小功能,而且“录入成绩”、“修改成绩”这两个大功能共用一个“保存成绩”的小功能;学生就只有“查询成绩”、“登录”和附赠的“找回密码”。

可以看到,这张用例图清晰地表示了哪个角色能够使用哪些功能,而哪些功能中包含或者拓展哪些小功能

是不是觉得这个系统应该怎么规划都想得很清楚了?是不是觉得现在开始编码随便写写就能出来了?没错,用例图就是这么简单直接所以才能够普及。

顺便说明一下,用例图时需要明确标明系统边界的,所以标准的画法应当是在所有功能外画一个大边框,表示这是系统的边界;与此同时还需要在边框旁边标明这个是什么系统。

面向对象?很可惜不是

什么是面向对象每一个类所实例化的对象都有与之对应的属性来描述对象的特征,并且还有成员函数来描述对象的行为又是什么?是属性和操作的封装体对象是什么?是类的实例

可是用例图有吗?当然没有

回看我们刚刚的例子,用例图只包含若干个执行者和执行者所对应的操作。这算哪门子面向对象嘛。

但是也正因为用例图屏蔽了面向对象中很多的细节,删去了属性、不必要的成员函数乃至对象之间的关系,所以反而传达了更精确的面向对象概念

可不能弄混了呐。