1.用例之间具有哪三种关系?这三种关系分别表达什么含义?举例说明之。
- 包含(include)
包含关系描述的是一个用例需要某种功能,而该功能被另外一个用例定义,那么在用例的执行过程中,就可以调用已经定义好的用例。
例:
- 扩展(extend)
向一个用例中添加一些动作后构成了另一个用例,二者即为扩展关系,后者继承前者的一些行为,通常称后者为扩展用例。
例:
- 泛化(generalization)
子用例和父用例相似,但表现出更特别的行为,子用例将继承父用例的所有结构、行为和关系,子用例可以使用父用例的一段行为,也可以重载它,父用例通常是抽象的。此时父子为泛化关系,也称继承。
例:
2.已知三个类A、B和C,其中类A由类B的一个实类和类C的1个或多个实类构成。请画出能够正确表示类A、B和C之间关系的UML类图。
3.在线会议审稿系统主要处理会议前期的投稿和审稿事务,其功能描述如下:
用户在初始使用系统时,必须在系统中注册成为作者或审稿人。
作者登录后提交稿件和浏览稿件审阅结果。提交稿件必须在规定提交时间范围内,其过程为先输入标题和摘要,选择稿件所属主题类型,选择稿件所在位置(存储位置)。上述几步若未完成,则重复;若完成,则上传稿件至数据库中,系统发送通知。
审稿人登录后可设置兴趣领域,审阅稿件给出意见,以及罗列录用和(或)拒绝的稿件。
会议委员会主席是一个特殊的审稿人,可以浏览提交的稿件、给审稿人分配稿件、罗列录用和(或)拒绝的稿件,以及关闭审稿过程。其中关闭审稿过程须包括罗列录用和(或)拒绝的稿件。
试据此描述画出该系统的UML用例图和作者提交稿件过程的活动图。
4.用面向对象方法分析研究机票预订系统,试建立它的对象模型、动态模型和功能模型。
对象模型
动态模型
脚本
正常脚本:
▼乘客订票,填写信息
系统根据信息查询适当航班
乘客选择航班
系统查询余票,充足
打印取票通知和账单
▼乘客取票,填写订单号
系统查询交款,已交
打印机票
异常脚本:
▼乘客订票,填写信息
系统根据信息查询适当航班
乘客选择航班
系统查询余票,不足
弹出提示,返回重新选择
▼乘客取票,填写订单号
系统查询交款,未交
转去执行交款业务
顺序图
状态图
功能模型
用例图
顶层数据流图
5.下面是自动售货机系统的需求陈述,试建立它的对象模型、动态模型和功能模型:
自动售货机系统是一种无人售货系统。售货时,顾客把硬币投入机器的投币口中,机器检查硬币的大小、重量、厚度及边缘类型。有效的硬币是一元币、五角币、一角币、五分币、二分币和一分币。其他货币都被认为是假币。机器拒绝接受假币,并将其从退币孔退出。当机器接收了有效的硬币之后,就把硬币送入硬币储藏器中。顾客支付的货币根据硬币的面值进行累加。
自动售货机装有货物分配器。每个货物分配器中包含零个或多个价格相同的货物。顾客通过选择货物分配器来选择货物。如果货物分配器中有货物,而且顾客支付的货币值不小于该货物的价格,货物将被分配到货物传送孔送给顾客,并将适当的零钱返回到退币孔。如果分配器是空的,则和顾客支付的货币值相等的硬币将被送回到退币孔。如果顾客支付的货币值少于所选择的分配器中货物的价格,机器将等待顾客投进更多的货币。如果顾客决定不买所选择的货物,他投放进的货币将从退币孔中退出。
对象模型
动态模型
脚本
正常脚本:
顾客选择货物,投币
系统查验硬币真伪,真
系统查看货物库存,充足
顾客确认购买
系统计算价值,货币面值≥货物价格
购买成功
异常脚本:
顾客选择货物,投币
▼系统查验硬币真伪,伪
退币
▼系统查看货物库存,不足
退币
▼顾客取消购买
退币
顺序图
状态图
功能模型
用例图
顶层数据流图
6.试用面向对象方法,设计机票预订系统。
对象模型、动态模型、功能模型见第4题
界面设计:略
包图
构件图:
部署图:
初学者手写作业,对问题叙述较为简单浅显,部分题目具有较强主观性,仅作为学习过程记录。
欢迎指正与讨论!