(2)活动图
提示投币提示假币,退币检查硬币[ 假币 ][ 真币 ][ 否 ][ 购买 ]存储货币,计算货币总值确认投币结束请求选择货物检测货物存量计算比较货币总值和货物价格确认顾客购买送出货物,请求取货[ 无购物 ][ 不购买 ]退币,请求去退币提示交易结束提示无货提示货物不足,确认购买
8. 有一房地产销售管理系统,主要功能有房源查询、房源预定、房源签约、退房操作、换房操作、房款管理、销售统计、房款统计,销售人员主要进行房源的销售操作,财务人员负责房款的收取,销售主管能够及时汇总销售情况和房款收取情况。 1)请画出房地产管理系统的UML用例图。
2)对于一套房源,有三种状态:待售状态、预定状态、已售状态,请用UML状态图给出房源的状态变迁情况,并用文字简单说明。 3)采用面向对象的设计思想,试给出该系统应该包含的主要类,并做简单说明。
参考答案: (1) 用例图
查询房源销售统计预定房源统计房款签约房源退房销售人员换房管理房款财务人员销售主管
(2) 状态图
退订查询房源待售状态预定预定状态签约已售状态
(3) 类图(略)
9. 某银行系统的需求概述如下:
某银行系统为该行的客户提供以下业务:存款、取款、转账和查询。拥有该行账户的客户可以利用该银行系统实现各种银行业务,如客户可以存款,也可以取款,或者将存款从一个账户转到另一个账户。客户还可以随时查询自己账户的情况,并查询以前所进行的存款、取款等交易记录。客户也有权利要求关闭账户。
由上述描述可知这个简化的银行系统至少应该具有如下功能:
? 客户可以取款 ? 客户可以存款
? 客户可以在不同的账户之间转账 ? 客户可以查询自己账户的余额 ? 银行职员负责系统的维护
附: 银行系统的”取款”用例的描述 主事件流:
当客户(Customer)想从自己的账户中取钱时,要向银行职员(Clerk)提交取款单,“取款”用例启动。 (1) 系统提示输入用户信息,进行帐户有效性的验证 (2) 客户输入有关帐户的信息(帐户信息、密码等) (3) 系统确认账户的有效性。A1:账户验证不合法 (4) 系统提示进行取款交易
(5) 客户按照系统提示进行取款交易(交易类型,交易金额)。A2:账户余额不足 (6) 系统建立取款事件记录,并更新账户的相关信息 (7) 用例结束 扩展事件流:
A1:账户验证不合法
若账户不存在或无效,显示提示信息,用户可以重新输入或终止该用例。。 A2:账户余额不足
账户中的存款金额不足,显示提示信息,用户可以重新输入金额或终止该用例。
要求:用面向对象方法学对银行系统进行分析与设计,分别完成以下工作: (1) 画出银行系统的用例图
(2) 画出银行所在的银行系统的类图 (3) 画出银行取款顺序图(时序图) (4) 画出银行取款活动图
参考答案:
1.用例图
存款银行客户取款<
3.“取款”用例的顺序图4. “取款”用例的活动图
查询余额银行管理员维护系统
form : checkBalance : FormWindowsBankAccountwithdrawRecord : WithdrawRecord : 银行管理员1: inputWithdrawReq( )2: withdraw( )3: checkBalance( )4: requestPass( ) : 银行客户5: checkPassword( )6: true7: compInterest( )8: compBalance( )9: addRecord( )10: true11: true
银行储户出超机Atm打印机开始输入取款金额修改取款判定顾客已有存款的金额[ 余额不足 ]判定取款限额[ 超过取款限额 ]判定atm内余额[ 未超过 ][ 余额足够 ]出钞[ 请求打印 ]打印凭条[ 不打印 ]
10. 需求陈述:
某银行系统为该行的客户提供以下业务:存款、取款、转账和查询。拥有该行账户的客户可以利用该银行系统实现各种银行业务,如客户可以存款,也可以取款,或者将存款从一个账户转到另一个账户。客户还可以随时查询自己账户的情况,并查询以前所进行的存款、取款等交易记录。客户也有权利要求关闭账户。
由上述描述可知这个简化的银行系统至少应该具有如下功能: ? 客户可以取款 ? 客户可以存款
? 客户可以在不同的账户之间转账 ? 客户可以查询自己账户的余额 ? 银行职员负责系统的维护 附:
银行系统的”存款”用例的描述。 主事件流:
当客户(Customer)想向自己的账户中存钱时,要向银行职员(Clerk)提交存款单和现金,“存款”用例启动。 (1)系统提示Clerk输入用户姓名、用户的id号、账号和所存款项的金额。 (2)Clerk输入相关信息后提交,系统确认账户是否存在并有效(当用户名、用户id与账户的户主信息一致,且账户处于非冻结状态时,账户有效。否则转E-1。
(3)客户按照系统提示进行存款交易(交易类型,交易金额)。 (4)系统建立存款事件记录,并更新账户的相关信息。 (5)用例结束 扩展事件流:
E-1:账户不存在或无效,显示提示信息,用户可以重新输入或终止该用例。 要求:用面向对象方法学对该系统进行分析与设计,分别完成以下工作: 1) 给出银行系统的用例模型 2)给出银行系统的类图 3)给出存款用例的顺序图 4)给出存款用例的活动图
参考答案:
1.用例图
存款银行客户取款<
2. 类与对象模型
3.“存款”用例的顺序图
: Clerk : BankGUI1. deposit( ) : DWDialog : Account : Deposit2. newDWDialog( )3. deposit( )3.1. deposit(String, string, String, float)3.1.1. query(String, String, String, float, Boolean)4. newDeposit(Account, float, Date)5. save( )6. newBalance( )6.1. update( )
4.“存款”用例的活动图
开始输入用户的存款信息提交验证账户的有效性[ yes ][ no ]显示错误信息创建存款记录更新账户
11. 下面是某选课系统的子功能“添加课程”用例的事件流。
主事件流:
(1)
(2) (3) (4)
管理员选择进入管理界面,用例开始。 系统提示输入管理员密码。 管理员输入密码。 系统验证密码。 A1:密码错误
(5) 进入管理界面,系统显示目前所建立的全部课程信息。 (6) 管理员选择添加课程。
(7) 系统提示输入新课程信息。 (8) 管理员输入信息。
(9) 系统验证是否和已有课程冲突。
A2:有冲突
(10) 系统添加新课程,提示课程添加成功。