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

简介: 本节书摘来自华章出版社《面向对象分析与设计》一书中的第3章,第3.7节,作者 麻志毅,更多章节内容可以访问云栖社区“华章计算机”公众号查看

3.7 例题

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

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

image

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

image

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

image

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

image

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

image

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

image

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

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

image

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

相关文章
|
Java
Java面向对象程序设计综合练习2(填空题)(下)
Java面向对象程序设计综合练习2(填空题)(下)
791 0
Java面向对象程序设计综合练习2(填空题)(下)
|
5月前
|
机器学习/深度学习 算法 Java
「程序员必须掌握的算法」动态规划「中篇」
「程序员必须掌握的算法」动态规划「中篇」
|
存储 Java
Java面向对象程序设计综合练习2(填空题)(上)
Java面向对象程序设计综合练习2(填空题)(上)
676 0
Java面向对象程序设计综合练习2(填空题)(上)
|
Java C++
面向过程、与面向对象程序分析设计领悟
面向过程、与面向对象程序分析设计领悟
54 0
|
算法 测试技术
动态规划真的有那么抽象吗?(递推算法还是动态规划别傻傻分不清了) 以正确的姿势学习动态规划 (入门篇)
动态规划真的有那么抽象吗?(递推算法还是动态规划别傻傻分不清了) 以正确的姿势学习动态规划 (入门篇)
动态规划真的有那么抽象吗?(递推算法还是动态规划别傻傻分不清了) 以正确的姿势学习动态规划 (入门篇)
|
存储 Java
Java面向对象程序设计综合练习3(填空题)
Java面向对象程序设计综合练习3(填空题)
80 0
Java面向对象程序设计综合练习3(填空题)
|
Java
Java面向对象程序设计综合练习1(填空题)
Java面向对象程序设计综合练习1(填空题)
122 0
|
SQL Java 数据库连接
Java面向对象程序设计综合练习4(填空题)(上)
Java面向对象程序设计综合练习4(填空题)(上)
136 0
|
Java 容器
Java面向对象程序设计综合练习4(填空题)(下)
Java面向对象程序设计综合练习4(填空题)(下)
306 0
【编程思想】自顶向下 逐步求精
面向过程化编程思想:自顶向下 逐步求精 从程序执行的过程入手,将完整的过程细化成多个子过程,再将子过程细化,直到完成代码。
【编程思想】自顶向下 逐步求精