版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Rose实例:构造银行业务模型作者:Richard Felsinger 著,盖九宇 译 本文选自:UMLChina 2002年11月07日在前面的文章中,我们从Rational Rose开始,启动并建立了一个类图。今天我们的任务就是要通过BankAPP实例来了解如何用Rose构造业务模型。业务企业模型业务前景,目标,组织分别提供业务事件UML信号事件-指定的激励表格或文档和过程(UML 用例)过程名参与者事件/输入转换事件/输出约束描述引用联系点WithdrawFromAccountCustomer,Teller,BankDBWithd
2、rawRequestUpdateAccountWithdrawRecord译注:Customer:客户;Teller:出纳员 ;withdraw:取款;account:账户;BankDB:银行数据库Business Actors, Business Workers,业务实体(问题域实体)业务参与者(UML 参与者)业务员(UML 参与者)业务实体(UML 类)CustomerTellerAccount,SavingsAccount,CheckingAccount译注:saving:储蓄;checking:支票业务规则目录规则标识符参与者,实体,过程描述:IF条件.then 动作区域引用联系点(
3、Point of Contact)ValidAccountAccountIf AccountNum 有效,then Acccount 有效业务接口(指定操作集)由架构师提供业务模式目录参见Business Modeling with UML(Eriksson 和Penker 著)。业务术语待完备业务系统体系结构由架构师提供需求模型需求:BankApp应该管理支票和存款账户的存款和取款。将来(还要提供)查询,转账,透支,等等从TellerGUI 到BankApp的输入/输出: sAcctNum, nDeposit, nWithdraw,sText。从BankApp 到BankDB的输入/输出:
4、sAcctNum, nDeposit, nWithdraw.需求可追踪性表:需求号,名称,引用,用例名,UML元素,测试用例,描述,职责。需求可追踪性表(部分)需求编号需求名引用用例名UML元素测试实例描述职责1.1DepositToSavingsAccountDepositToSavingsAccountBankPkg1.2DepositToCheckingAccountDepositToCheckingAccountBankPkg1.3WithdrawFromSavingAccountWithdrawFromSavingAccountBankPkg1.4WithdrawFromChecki
5、ngAccountWithdrawFromCheckingAccountBankPkg需求用例图所有用例Rose用例图:在浏览器窗口,选择Use Case View;Main Use CaseDiagram;在图上放置参与者,用例,关系Rose单向关联(Unidirectional Association),泛化;选择每一个参与者单击鼠标右键键入参与者的操作;选择Tools-Check Model;选择.需求高级别协作图环境图(Context Diagram)Rose高级别协作图:在浏览器窗口,选择Use Case View;选择Browse-Interaction Diagram(交互图)-
6、Use Case View- ;选择Collaboration Diagram;键入图名;在图上放置对象表示参与者;双击每个对象,然后从下拉列表中选择参与者名;在图的中央放置一个对象以表示系统;双击对象,键入系统名;选择Rose Object Link (对象连接符)并且在参与者和系统之间拖曳;选择Rose 文本框TextBox"ABC" ,键入传递的对象/数据;选择Tools-Check Model;选择。 需求用例增量增量1:支票和储蓄账户的存款和取款增量2:查询和转账增量3:透支每个增量内进行迭代:乐观的,正常的,悲观的需求用例规约:名称,触发器,输入参数,
7、输出返回值,出现的前置条件/异常,出现的(raised)后置条件/异常,基本的/乐观场景,替代性可选的/悲观的场景,业务规则,测试实例。WithdrawFromCheckingAccount用例的用例规约用例名:WithdrawFromCheckingAccount触发器: WithdrawFromCheckingAccount输入参数: sAcctNum, nWithdraw输出返回值: sText前置条件: ValidAccount = true and nWithdraw <= nCurrentBalance出现的前置条件异常: 待定的描述/转换: nCurrentBalance
8、= nCurrentBalance - nWithdraw后置条件: nCurrentBalance < nOldBalance后置条件异常:无相关用例: Generalization, Includes, Extends/Extension Point: 无基本场景/乐观场景: Text(文本) - 待定;Diagram(图) -见 WithdrawFromCheckingAccount乐观场景顺序图替代性可选场景/被动场景:Text -待定;Diagram -见WithdrawFromCheckingAccount 活动图业务规则: ValidAccountRule, Adequat
9、eBalanceRule测试实例:1 - 乐观的:输入: sAcctNum - BGates001, nWithdraw - 100, nCurrentBalance - 1000 Conditions: None, 输出:"BGates001 withdraw $100 OK and recorded";2 .待定输入/输出表单:WithdrawFromCheckingAccount用例的输入/输出表单Withdraw Request Form(取款需求表单)Customer Account Number(客户账号)_Withdraw Amount(取款数量) _Butt
10、on-Submit(提交按钮) Button-Clear(清除按钮)Withdraw Response Form(取款响应窗体)Customer Account Number _Withdraw Amount _Status (状态) _Button-OK(OK 按钮)需求顺序图WithdrawFromCheckingAccount - 乐观场景注:getApp的第一笔事务需要达到应用程序的最高级别Rose 顺序图:在浏览器窗口,选择Use Case View;选择 Use Case Diagram;选择一个用例;选择Browse-Interaction Diagram-Use Case Vi
11、ew- ;选择Sequence Diagram;键入图名,例如WithdrawFromCheckingAccountOptiminticScenario;在图上放置对象以表示参与者;双击每个对象,然后从下拉列表中选择参与者名;在图的中央放置一个对象以表示系统;双击对象,从下拉列表中键入系统名;选择Rose Object Link (对象连接符),在参与者和系统之间拖曳;选择Tools-Check Model;选择 .4-WithdrawFromCheckingAccount用例所有场景的需求活动图注:getApp的第一笔事务需要达到应用程序的最高级别Rose状态活动图: 在浏览器窗口,选择Us
12、e Case View;选择Use Case Diagram 显示图;选择一个用例;选择Browse - State Diagram;如果"State Diagram" 是灰色,则返回到用例图并重新选择一个用例;在图上放置活动状态(activity states);通过在两个状态之间拖曳,放置转移;选择Tools-Check Model;选择 。需求产品性能:高可靠性,10个并发的用户,2秒响应时间。需求/分析高阶概念模型(HOCM-High Order Concept Model)外部参与者:TellerGUI,BankDB.内部实体(Internal Entities)
13、: BankApp, Account, CheckingAccount, SavingsAccountRose高级别概念模型图: 推荐使用铅笔和纸做HOCM。作为替代,创建不含属性和操作的Rose类图。分析模型草图分析类图 - 最简结构Rose类图: 见使用Rational Rose分析包图Rose包图:在浏览器窗口选择Logical View;选择BrowseClass DiagramLogical View 。输入包图名;在图上放置包;从工具条中选择依赖箭头然后从源包到目的包拖曳,放置依赖关系。在浏览器中,拖动每个类到适当的包;选择Tools-Check Model;选择。分析 Withd
14、rawFromCheckingAccount顺序图乐观场景注:getApp的第一笔事务需要达到应用程序的最高级别Rose顺序图:见使用Rational Rose8- 分析Account类的状态图Rose 状态活动图:在浏览器窗口,选择Use Case View;选择Use Case Diagram 显示;选择一个用例;选择Browse - State Diagram;如果 "State Diagram" 是灰色,则返回到用例图并重新选择一个用例;在图上放置活动状态(activity states);通过在两个状态之间拖曳,放置转移;选择Tools-Check Model;选
15、择 .分析复杂操作:待定的每一个操作的活动图 和/或操作规约:名称,输入,前置条件/异常,转换,后置条件/异常,业务规则,描述。Rose规约: 显示类图;选择一个类;按鼠标右键显示Specification Dialog Box;选择一个标签,例如Operations;双击一个操作;填写操作信息;选择 Tools - Check Model;选择File - Save.设计模型 - 编码的基础设计过程环境:Linux 6.2版, GNU C+ 6.2版, C+ 标准库,CORBA 3。设计潜在模式企业级:基于分布式CORBA,具有公共接口的组件系统(组件到组件):分层,会话实体(Session
16、 - Entity),回调(Callbacks),发行者-订阅者(Publisher - Subscriber)组件:应用文档,控制器实体边界,虚包(Facade)类设计:UML, Factory(工厂),事务JAVA 语言:Java Bean, Enterprise Java Bean, Servlet, RMI设计包图设计类图 说明类型和参数-目标是完成编码注:CheckingAccount和SavingsAccount 提供多态操作的实现。设计顺序图WithdrawFromCheckingAccount - 乐观场景注:getApp的第一笔事务需要达到应用程序的最高级别设计协作图With
17、drawFromCheckingAccount - 乐观场景在Rational Rose中打开顺序图,按F5 自动创建协作图。设计CheckingAccount类withdraw()操作的操作规约用例名: withdraw触发:withdraw输入参数: nWithdraw : int输出返回值: boolean前置条件: nWithdraw <= nCurrentBalance出现的前置条件/异常: exInsuffientFunds描述/转换: nCurrentBalance = nCurrentBalance - nWithdraw后置条件: nCurrentBalance <
18、; priorCurrentBalance后置条件异常: exIncorrectBalance基本/乐观场景 :见WithdrawFromCheckingAccount 顺序图替代性场景/悲观场景:见WithdrawFromCheckingAccount 活动图业务规则:ValidAccountRule, AdequateBalanceRule设计异常类(exception classes)异常超类(操作:Exception()/Exception(string);异常子类:exInsufiicientFunds 操作 :exInsufiicientFunds()、exInsufiicient
19、Funds(string);exIncorrectBalance操作:exIncorrectBalance()、exIncorrectBalance(string)。设计 CheckingAccount 类的状态图实施模型(Implementation Models)实施模型设计过程环境实施组件图实施文件(Implementation Files): TellerGUI.exe, BankApp.exe, BankDB.exe组件接口选择:1) BankApp具有单接口 IbankApp,其所有操作都是公有的(exposed)2) BankApp暴露(exposes) IBankApp, IC
20、heckingAccount, & ISavingAccount 接口3) BankApp暴露(exposes) IBankApp, IWithdraw, IDeposit, ICheckingAccount, & ISavingAccount 接口CORBA IDL/C+ 需要对接口进行描述Rose 组件图:在浏览器窗口,选择Component View;,将"Main"重命名为"Component View";双击图名显示该图;在图上放置组件和依赖关系(从client组件到supplier组件拖曳);在浏览器中把每个类拖到相应的组件中
21、;选择Tools-Check Model;选择.实施部署图Rose 部署图:在浏览器窗口选择Deployment View;双击以显示该图;在图上放置节点和关系;选择Tools-Check Model;选择./使用CORBA的 BankApp系统的接口/Sample IDL Interface Code(IDL 接口代码样本)module BankApp interface IBankApp exception exInsuffientFunds; IBankApp getApp(); boolean depositToCheckingAccount (in string sAcctNum,
22、in int nDeposit) ; boolean depositToSavingAccount (in string sAcctNum, in int nDeposit) ; boolean withdrawFromCheckingAccount (in string sAcctNum, in int nWithdraw)raises(exInsuffientFunds); boolean withdrawFromSavingAccount (in string sAcctNum, in int nWithdraw) raises(exInsuffientFunds);/Sample Ja
23、va Interface Code Using Remote Method Invocation/(使用RMI 的Java接口样本)import java.rmi.*;package BankApp;public interface IBankApp extends java.rmi.Remote boolean depositToCheckingAccount (String sAcctNum, int nDeposit) throws java.rmi.RemoteException ;boolean depositToSavingAccount (String sAcctNum, int
24、 nDeposit) throws java.rmi.RemoteException ;boolean withdrawFromCheckingAccount (String sAcctNum, int nWithdraw) throwsjava.rmi.RemoteException;boolean withdrawFromSavingAccount (String sAcctNum, int nWithdraw) throwsjava.rmi.RemoteException;/Sample Microsoft IDL Interface Code for COM - Simplified/
25、(Microsoft IDL 的COM接口编码样本简化版)library BankAppLib dispinterface IBankApp IBankApp getApp();boolean depositToCheckingAccount (BSTR sAcctNum, int nDeposit) ;boolean depositToSavingAccount (BSTR sAcctNum, int nDeposit) ;boolean withdrawFromCheckingAccount (BSTR sAcctNum, int nWithdraw);boolean withdrawFr
26、omSavingAccount (BSTR sAcctNum, int nWithdraw);coclass BankApp dispinterface IBankApp; ;/Sample SOAP (Simple Object Access Protocol) SDL (Service Description Language) with XML -Incomplete/包含XML 的SOAP SDL样本不完全<?xml version='1.0'?><serviceDescription name='BankApp'xmlns='
27、urn:schemas-xmlsoap-org:sdl.2000-01-25'xmlns:dt='http:/'xmlns:IBankApp='IBankApp'><import namespace='IBankApp' location='#IBankApp'/><soap xmlns='urn:schemas-xmlsoap-org:soap-sdl-2000-01-25'><interface name='IBankApp'><reque
28、stResponse name='WithdrawFromCheckingAccount'><request ref='IBankApp:WithdrawFromCheckingAccount'/><response ref='IBankApp:WithdrawFromCheckingAccountResponse'/></requestResponse></interface><service><addresses><address uri='http:
29、/myserver/IBankApp.asp'/></addresses><implements name='IBankApp'/></service></soap><IBankApp:schema id='IBankApp' targetNamespace='IBankApp'xmlns='http:/'><element name='WithdrawFromCheckingAccount'></element>&l
30、t;element name='WithdrawFromCheckingAccountResponse'><type><element name='return' type='dt:boolean'/></type></element></IBankApp:schema></serviceDescription>构建编码/命名标准;接口代码-CORBA IDL;C+代码;CASE 工具脚本/定制报告的VBA /代码生成Rose代码生成-需要Rose 专业版或企业版. 见Help Topic Code Generation(帮助主题Code Ge
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子工程设计规范及实践手册
- 旅游景管理与服务标准执行预案
- 项目进度管理模板跨行业版
- 个人理财规划方案制定指南
- 节约能源资源行动承诺书范文6篇
- 精准医疗结果确认承诺书(7篇)
- 护理课件资源分享平台
- 2026年老年人养生保健知识课件
- 业务学习合规流程承诺书6篇
- 投资项风险控制责任承诺书5篇
- 出口海运工厂集装箱货物绑扎加固指南
- 学前儿童家庭与社区教育(学前教育专业)PPT全套完整教学课件
- 电动机检修作业指导书
- TS30测量机器人Geocom中文说明书
- 化工厂监控系统解决方案
- GB/T 3565.1-2022自行车安全要求第1部分:术语和定义
- GB/T 3452.4-2020液压气动用O形橡胶密封圈第4部分:抗挤压环(挡环)
- GB/T 15382-2021气瓶阀通用技术要求
- 公共管理核心与前沿课件
- 磁粉检测技术(ii级)学习培训模板课件
- 新员工跟进转正面谈记录表
评论
0/150
提交评论