Rose实例 构造银行业务模型.docx
- 文档编号:23259120
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:20
- 大小:208.57KB
Rose实例 构造银行业务模型.docx
《Rose实例 构造银行业务模型.docx》由会员分享,可在线阅读,更多相关《Rose实例 构造银行业务模型.docx(20页珍藏版)》请在冰豆网上搜索。
Rose实例构造银行业务模型
Rose实例:
构造银行业务模型
今天我们的任务就是要通过BankAPP实例来了解如何用Rose构造业务模型。
业务企业模型
业务前景,目标,组织-分别提供
业务事件[UML信号事件-指定的激励表格或文档]和过程(UML用例)
过程名
参与者
事件/输入
转换
事件/输出
约束
描述
引用
联系点
WithdrawFromAccount
Customer,Teller,BankDB
WithdrawRequest
UpdateAccount
WithdrawRecord
[译注:
Customer:
客户;Teller:
出纳员;withdraw:
取款;account:
账户;BankDB:
银行数据库]
BusinessActors,BusinessWorkers,业务实体(问题域实体)
业务参与者(UML参与者)
业务员(UML参与者)
业务实体(UML类)
Customer
Teller
Account,SavingsAccount,CheckingAccount
[译注:
saving:
储蓄;checking:
支票]
业务规则目录
规则标识符
参与者,实体,过程
描述:
IF条件..then动作
区域
引用
联系点(PointofContact)
ValidAccount
Account
IfAccountNum有效,thenAcccount有效
业务接口(指定操作集)-由架构师提供
业务模式目录-参见《BusinessModelingwithUML》(Eriksson和Penker著)。
业务术语-待完备
业务系统体系结构-由架构师提供
需求模型
需求:
BankApp应该管理支票和存款账户的存款和取款。
将来(还要提供)查询,转账,透支,等等从TellerGUI到BankApp的输入/输出:
sAcctNum,nDeposit,nWithdraw,sText。
从BankApp到BankDB的输入/输出:
sAcctNum,nDeposit,nWithdraw.
需求可追踪性表:
需求号,名称,引用,用例名,UML元素,测试用例,描述,职责。
需求可追踪性表(部分)
需求编号
需求名
引用
用例名
UML元素
测试实例
描述
职责
1.1
DepositToSavingsAccount
DepositToSavingsAccount
BankPkg
1.2
DepositToCheckingAccount
DepositToCheckingAccount
BankPkg
1.3
WithdrawFromSavingAccount
WithdrawFromSavingAccount
BankPkg
1.4
WithdrawFromCheckingAccount
WithdrawFromCheckingAccount
BankPkg
需求-用例图-所有用例
Rose用例图:
在浏览器窗口,选择UseCaseView;MainUseCaseDiagram;在图上放置参与者,用例,关系[Rose单向关联(UnidirectionalAssociation)],泛化;选择每一个参与者-单击鼠标右键键入参与者的操作;选择Tools-CheckModel;选择File-Save.
需求-高级别协作图[环境图(ContextDiagram)]
Rose高级别协作图:
在浏览器窗口,选择UseCaseView;选择Browse-InteractionDiagram(交互图)-UseCaseView-;选择CollaborationDiagram;键入图名;在图上放置对象表示参与者;双击每个对象,然后从下拉列表中选择参与者名;在图的中央放置一个对象以表示系统;双击对象,键入系统名;选择RoseObjectLink(对象连接符)并且在参与者和系统之间拖曳;选择Rose文本框TextBox"ABC",键入传递的对象/数据;选择Tools-CheckModel;选择File-Save。
需求-用例增量
增量1:
支票和储蓄账户的存款和取款
增量2:
查询和转账
增量3:
透支
每个增量内进行迭代:
乐观的,正常的,悲观的
需求用例规约:
名称,触发器,输入参数,输出返回值,出现的前置条件/异常,出现的(raised)后置条件/异常,基本的/乐观场景,替代性可选的/悲观的场景,业务规则,测试实例。
WithdrawFromCheckingAccount用例的用例规约
用例名:
WithdrawFromCheckingAccount
触发器:
WithdrawFromCheckingAccount
输入参数:
sAcctNum,nWithdraw
输出返回值:
sText
前置条件:
ValidAccount=trueandnWithdraw<=nCurrentBalance
出现的前置条件异常:
待定的
描述/转换:
nCurrentBalance=nCurrentBalance-nWithdraw
后置条件:
nCurrentBalance 后置条件异常: 无 相关用例: Generalization,Includes,Extends/ExtensionPoint: 无 基本场景/乐观场景: Text(文本)-待定;Diagram(图)-见WithdrawFromCheckingAccount乐观场景顺序图 替代性可选场景/被动场景: Text-待定;Diagram-见WithdrawFromCheckingAccount活动图 业务规则: ValidAccountRule,AdequateBalanceRule 测试实例: 1-乐观的: 输入: sAcctNum-BGates001,nWithdraw-100,nCurrentBalance-1000Conditions: None,输出: "BGates001withdraw$100OKandrecorded";2...待定 输入/输出表单: WithdrawFromCheckingAccount用例的输入/输出表单 WithdrawRequestForm(取款需求表单) CustomerAccountNumber(客户账号)__________ WithdrawAmount(取款数量)________ Button-Submit(提交按钮)Button-Clear(清除按钮) WithdrawResponseForm(取款响应窗体) CustomerAccountNumber__________ WithdrawAmount__________ Status(状态)________________________ Button-OK(OK按钮) 需求-顺序图WithdrawFromCheckingAccount-乐观场景 注: getApp的第一笔事务需要达到应用程序的最高级别 Rose顺序图: 在浏览器窗口,选择UseCaseView;选择UseCaseDiagram;选择一个用例;选择Browse-InteractionDiagram-UseCaseView-;选择SequenceDiagram;键入图名,例如WithdrawFromCheckingAccount-OptiminticScenario;在图上放置对象以表示参与者;双击每个对象,然后从下拉列表中选择参与者名; 在图的中央放置一个对象以表示系统;双击对象,从下拉列表中键入系统名;选择RoseObjectLink(对象连接符),在参与者和系统之间拖曳;选择Tools-CheckModel;选择File-Save. 4-WithdrawFromCheckingAccount用例-所有场景的需求活动图 注: getApp的第一笔事务需要达到应用程序的最高级别 Rose状态-活动图: 在浏览器窗口,选择UseCaseView; 选择UseCaseDiagram显示图; 选择一个用例;选择Browse-StateDiagram; 如果"StateDiagram"是灰色,则返回到用例图并重新选择一个用例; 在图上放置活动状态(activitystates);通过在两个状态之间拖曳,放置转移; 选择Tools-CheckModel; 选择File-Save。 需求-产品性能: 高可靠性,10个并发的用户,2秒响应时间。 需求/分析-高阶概念模型(HOCM--HighOrderConceptModel) 外部参与者: TellerGUI,BankDB.内部实体(InternalEntities): BankApp,Account,CheckingAccount,SavingsAccount Rose高级别概念模型图: 推荐使用铅笔和纸做HOCM。 作为替代,创建不含属性和操作的Rose类图。 分析模型-草图 分析类图-最简结构 Rose类图: 见〈使用RationalRose〉 分析包图 Rose包图: 在浏览器窗口选择LogicalView;选择Browse-ClassDiagram-LogicalView-。 输入包图名;在图上放置包;从工具条中选择依赖箭头然后从源包到目的包拖曳,放置依赖关系。 在浏览器中,拖动每个类到适当的包;选择Tools-CheckModel;选择File-Save。 分析WithdrawFromCheckingAccount顺序图-乐观场景 注: getApp的第一笔事务需要达到应用程序的最高级别 Rose顺序图: 见〈使用RationalRose〉 8-分析Account类的状态图 Rose状态-活动图: 在浏览器窗口,选择UseCaseView;选择UseCaseDiagram显示;选择一个用例;选择Browse-StateDiagram;如果"StateDiagram"是灰色,则返回到用例图并重新选择一个用例;在图上放置活动状态(activitystates);通过在两个状态之间拖曳,放置转移;选择Tools-CheckModel;选择File-Save. 分析-复杂操作: 待定的-每一个操作的活动图和/或操作规约: 名称,输入,前置条件/异常,转换,后置条件/异常,业务规则,描述。 Rose规约: 显示类图;选择一个类;按鼠标右键显示SpecificationDialogBox;选择一个标签,例如Operations;双击一个操作;填写操作信息;选择Tools-CheckModel;选择File-Save. 设计模型-编码的基础 设计过程环境: Linux6.2版,GNUC++6.2版,C++标准库,CORBA3。 设计潜在模式 企业级: 基于分布式CORBA,具有公共接口的组件 系统(组件到组件): 分层,会话-实体(Session-Entity),回调(Callbacks),发行者-订阅者(Publisher-Subscriber) 组件: 应用-文档,控制器-实体-边界,虚包(Facade) 类设计: UML,Factory(工厂),事务 JAVA语言: JavaBean,EnterpriseJavaBean,Servlet,RMI 设计包图 设计类图说明类型和参数-目标是完成编码 注: CheckingAccount和SavingsAccount提供多态操作的实现。 设计顺序图WithdrawFromCheckingAccount-乐观场景 注: getApp的第一笔事务需要达到应用程序的最高级别 设计协作图WithdrawFromCheckingAccount-乐观场景 在RationalRose中打开顺序图,按F5自动创建协作图。 设计CheckingAccount类withdraw()操作的操作规约 用例名: withdraw 触发: withdraw 输入参数: nWithdraw: int 输出返回值: boolean 前置条件: nWithdraw<=nCurrentBalance 出现的前置条件/异常: exInsuffientFunds 描述/转换: nCurrentBalance=nCurrentBalance-nWithdraw 后置条件: nCurrentBalance 后置条件异常: exIncorrectBalance 基本/乐观场景: 见WithdrawFromCheckingAccount顺序图 替代性场景/悲观场景: 见WithdrawFromCheckingAccount活动图 业务规则: ValidAccountRule,AdequateBalanceRule 设计异常类(exceptionclasses)异常超类(操作: Exception()/Exception(string);异常子类: exInsufiicientFunds[操作: exInsufiicientFunds()、exInsufiicientFunds(string)];exIncorrectBalance[操作: exIncorrectBalance()、exIncorrectBalance(string)]。 设计CheckingAccount类的状态图 实施模型(ImplementationModels) 实施模型 设计过程环境 实施组件图 实施文件(ImplementationFiles): TellerGUI.exe,BankApp.exe,BankDB.exe 组件接口选择: 1)BankApp具有单接口IbankApp,其所有操作都是公有的(exposed) 2)BankApp暴露(exposes)IBankApp,ICheckingAccount,&ISavingAccount接口 3)BankApp暴露(exposes)IBankApp,IWithdraw,IDeposit,ICheckingAccount,&ISavingAccount接口 CORBAIDL/C++需要对接口进行描述 Rose组件图: 在浏览器窗口,选择ComponentView;,将"Main"重命名为"ComponentView";双击图名显示该图;在图上放置组件和依赖关系(从client组件到supplier组件拖曳);在浏览器中把每个类拖到相应的组件中;选择Tools-CheckModel;选择File-Save. 实施部署图 Rose部署图: 在浏览器窗口选择DeploymentView;双击以显示该图;在图上放置节点和关系;选择Tools-CheckModel;选择File-Save. //使用CORBA的BankApp系统的接口 //SampleIDLInterfaceCode(IDL接口代码样本) moduleBankApp{ interfaceIBankApp{ exceptionexInsuffientFunds; IBankAppgetApp(); booleandepositToCheckingAccount(instringsAcctNum,inintnDeposit); booleandepositToSavingAccount(instringsAcctNum,inintnDeposit); booleanwithdrawFromCheckingAccount(instringsAcctNum,inintnWithdraw)raises (exInsuffientFunds); booleanwithdrawFromSavingAccount(instringsAcctNum,inintnWithdraw)raises (exInsuffientFunds); };}; //SampleJavaInterfaceCodeUsingRemoteMethodInvocation //(使用RMI的Java接口样本) importjava.rmi.*; packageBankApp; publicinterfaceIBankAppextendsjava.rmi.Remote{ booleandepositToCheckingAccount(StringsAcctNum,intnDeposit)throws java.rmi.RemoteException; booleandepositToSavingAccount(StringsAcctNum,intnDeposit)throws java.rmi.RemoteException; booleanwithdrawFromCheckingAccount(StringsAcctNum,intnWithdraw)throws java.rmi.RemoteException; booleanwithdrawFromSavingAccount(StringsAcctNum,intnWithdraw)throws java.rmi.RemoteException; } //SampleMicrosoftIDLInterfaceCodeforCOM-Simplified //(MicrosoftIDL的COM接口编码样本-简化版) libraryBankAppLib{ dispinterfaceIBankApp{ IBankAppgetApp(); booleandepositToCheckingAccount(BSTRsAcctNum,intnDeposit); booleandepositToSavingAccount(BSTRsAcctNum,intnDeposit); booleanwithdrawFromCheckingAccount(BSTRsAcctNum,intnWithdraw); booleanwithdrawFromSavingAccount(BSTRsAcctNum,intnWithdraw); }; coclassBankApp{ dispinterfaceIBankApp; };}; //SampleSOAP(SimpleObjectAccessProtocol)SDL(ServiceDescriptionLanguage) withXML-Incomplete //包含XML的SOAPSDL样本-不完全 xmlversion='1.0'? > xmlns='urn: schemas-xmlsoap-org: sdl.2000-01-25' xmlns: dt='http: //www.w3.org/1999/XMLSchema' xmlns: IBankApp='IBankApp'> schemas-xmlsoap-org: soap-sdl-2000-01-25'> WithdrawFromCheckingAccount'/> WithdrawFromCheckingAccountResponse'/> //myserver/IBankApp.asp'/> schemaid='IBankApp'targetNamespace='IBankApp' xmlns='http: //www.w3.org/1999/XMLSchema'> boolean'/> schema> 构建 编码/命名标准;接口代码-CORBAIDL;C++代码;CASE工具脚本/定制报告的VBA/代码生成 Rose代码生成-需要Rose专业版或企业版.见HelpTopicCodeGeneration(帮助主题-CodeGeneration)。 步骤: 1-检查模型; 2-创建组件; 3-映射/分配类到组件; 4-设定代码生成特性; 5-选择一个类、组件或包 6-生成代码; 7-检查生成的代码。 Rose逆工程-需要Rose专业版或企业版.见HelpTopic-ReverseEngineering.使用模型更新工具(ModelUpdateTool)。 测试 整个系统/集成测试-所有组件/子系统;组件测试-每个组件;单元测试-每个类。 测试实例规约: 测试实例名(TestUseCaseName): 用例名(UseCaseName): 用例场景名(UseCaseScenarioName): 触发器(Trigger): 输入参数(InputParameters): 输出返回值(OutputReturn): 前置条件(Precondition): 出现的前置条件异常(Precondit
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Rose实例 构造银行业务模型 Rose 实例 构造 银行业务 模型
![提示](https://static.bdocx.com/images/bang_tan.gif)