《面向对象分析与设计》一3.7 例题

3.7 例题

很多软件系统在一开始都需要登录,若用户登录成功,则可进入系统。如下以一个研究生学籍管理系统为例,描述四种登录方案。

出于简化和能够说明与解决问题起见,此处仅描述了登录、选课和查看学分这三项功能。

《面向对象分析与设计》一3.7 例题

1方案一
由于选课和查看学分都需要登录,故专门设立一个“登录”用况。若登录成功,则可以进行选课,也可以查看学分,见图319。
如下为对用况“登录”的描述:

《面向对象分析与设计》一3.7 例题

该方案的缺点是,必须要了解系统的其他模块才能描述清楚用况“登录”。向系统增减功能时,也要修改用况“登录”。从维护的角度看,可能会忘记对用况“登录”进行修改。
从概念上讲,选课与查看学分并不是登录的组成部分,用况“登录”的文字描述中的后半部分实际上是与登录无关的。这表明,该用况的功能不单一。
2方案二
用用况“选课”和“查看学分”扩展用况“登录”,见图320。

《面向对象分析与设计》一3.7 例题

如下为对用况“登录”的描述:

《面向对象分析与设计》一3.7 例题

该方案与方案一相比,除了在图上对“登录”用况的描述要清楚一些外,仍未解决方案一中存在的问题。
3方案三
让所有的相关用况都包含用况“登录”,见图321。

《面向对象分析与设计》一3.7 例题

如下为对用况“登录”的描述:

《面向对象分析与设计》一3.7 例题

这个方案中的用况“登录”仅描述有关登录的信息。研究生执行系统的其他功能都要先登录,这导致该方案有缺点:研究生可能要进行多次登录,且用况“登录”和“选课”的功能不单一。
图322方案四的用况图
4方案四
用况“登录”完全独立于其他用况,见图322。
《面向对象分析与设计》一3.7 例题

对用况“登录”的描述同方案三。如下为对用况“选课”的简化描述:

《面向对象分析与设计》一3.7 例题

对用况“查看学分”的描述也与此类似。
若使用该方案,必须要在用况“选课”和“查看学分”中指定前置条件:只有在登录成功后才能执行自己的其他交互。该方案较为简洁,但在图上不能直接看出用况之间的关系。
习题
1用况之间的关系可为包含关系、扩展关系或继承关系,三种关系之间有相同之处吗?它们之间的区别又在哪里?
2论述用况图在面向对象方法中的地位。
3怎样理解把系统内外的交互情况描述清楚了,就明确了系统边界?
4对于331节中的收款用况,补充使用信用卡付款和使用优惠卡的描述。
5自动售货机会按用户的要求进行自动售货,供货员会巡查向其内供货,取款员会定时取款。针对上述要求,请建立用况图,并描述各个用况。
6现要开发一个购书积分系统,其中至少要具有申请积分卡、增加积分、查看积分和按积分奖励功能。请建立用况图,并描述各个用况。