<
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 ]显示错误信息创建存款记录更新账户
6、客户开立账户序列图和协作图
客户开立新账户的基本工作流程如下: (1)客户向银行职员提出开立账户要求。
(2)银行职员在系统主界面请求创建账户操作,系统创建账户界面。 (3)银行职员添加账户信息后,提交至账户类。
- 21 -
(4)账户类确认数据库是否已存在该客户的账户。如不存在,则创建新客户对象。 (5)然后将客户信息保存到数据库中。
8、客户修改账户信息序列图和协作图 客户修改账户信息的工作流程如下:
(1)客户向银行职员提出修改账户信息的要求。
(2)银行职员在系统主界面请求查询账户操作,系统创建查询界面。
(3)银行职员在查询界面提交账号,从账户类中获得指定账户的信息,同时系统创建账户界面。 (4)银行职员修改账户信息后,提交给账户界面。
(5)账户界面发送消息更新数据库中客户的信息,同时更新账户信息。
9、银行账户状态图
在银行系统中,有明确状态转换的类是账户。账户包含以下三种状态:被创建的新账户、被修改后账户、睡眠账户和被删除的账户。它们之间的转化规则是:
(1)客户开立账户时,新的账户被创建。
(2)客户要求变更原有账户信息时,账户内容被改变。 (3)账户长期未使用,银行将其定义为睡眠账户的状态。 (4) 客户注销账户,账户被删除。
14、创建账户活动图
创建账户的活动图,需要创建二个泳道,分别是银行职员对象和系统对象,具体的活动过程描述如下: (1)系统提示输入用户的相关信息和存款金额。 (2)银行职员输入相关信息后提交。
(3)系统为客户创建账户,并将账户信息保存到数据库。
- 22 -
15、客户修改账户活动图
客户修改账户的活动图,我们创建了二个泳道,分别是银行职员对象和系统对象,具体的活动过程描述如下: (1)系统提示输入用户的账号。
(2)银行职员输入账号后提交。系统查询账户信息并显示。 (3)银行职员修改账户信息后提交,系统更改账户信息。
- 23 -
- 24 -
11. 下面是某选课系统的子功能“添加课程”用例的事件流。
主事件流:
管理员选择进入管理界面,用例开始。
系统提示输入管理员密码。 管理员输入密码。 系统验证密码。 A1:密码错误
(5) 进入管理界面,系统显示目前所建立的全部课程信息。 (6) 管理员选择添加课程。
(7) 系统提示输入新课程信息。 (8) 管理员输入信息。
(9) 系统验证是否和已有课程冲突。
A2:有冲突
(10) 系统添加新课程,提示课程添加成功。 (11) 系统重新进入管理主界面,显示所有课程。 (12) 用例结束。 扩展事件流:
A1:密码错误
(1) 系统提示再次输入。 (2) 用户确认。
(3) 三次错误,拒绝再次访问。
(4) 否则进入添加课程事件流第5步。 A2:有冲突
(1) 系统提示冲突,显示冲突课程信息。 (2) 用户重新输入。
(3) 继续验证直到无冲突。
(4) 进入添加课程事件流第10步。
用面向对象的开发技术分析上述用例,回答下面的问题。 (1) 给出该用例的活动图 (2) 给出该系统的类图
(3) 针对用例中涉及的主要类“Course(课程类)”,建立该类的状态图 (4) 给出“添加课程”用例的顺序图 参考答案:
(1) (2) (3) (4)
(1)活动图
系统提示输入密码管理员输入密码验证密码生成密码对象 系统提示再次输入[ 密码不正确 ]在数据库中查询密码判断正确否[ 密码正确 ]系统提示输入各项信息管理员输入课程信息选择添加课程取得系统管理权限验证课程合法否生成课程对象判断是否合法[ 合法 ]添加到数据库系统提示再次输入[ 不合法 ]在数据库中查询显示添加成功[ 成功 ]否成功- 25 - 判断添加是