使用RationalRose全景追踪.doc_第1页
使用RationalRose全景追踪.doc_第2页
使用RationalRose全景追踪.doc_第3页
使用RationalRose全景追踪.doc_第4页
使用RationalRose全景追踪.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

使用Rational Rose全景追踪本教程的目在于给出步进式的使用指导,并且提供一个使用Rational Rose UML CASE 工具创建完整的UML模型的范例。本教程是为那些想高效地使用和评估Rational Rose工具(而不是其他UML CASE 工具)的新用户准备的。作为一个新用户,我们建议做下面的工作:首先:创建使用Rational Rose CASE 工具()的图表和报告,如下所示。第二:使用Rational Rose UML CASE 工具在你的问题领域创建一个类似的实例,如一个订单系统、产品系统,客户系统,等等。第三(如果需要),使用其他 UML CASE 工具创建这些实例,以充分比较不同工具的性能。我们的目标是创建一个系统的正确、可靠、可理解、可扩展、可复用、完整的UML模型。该模型应该混合了可复用的类、组件和模式。这里提供一个经简化的银行存款模型。从Rational Rose开始启动 Rose: 选择菜单FileNew,选择FileSaveAs,将文件另存为BusinessModel.然后选择FileNewSaveAs,另存为Requirements-AnalysisModel;注意,当Requirements-Analysis(需求分析)完成后要另存为Design-ImplementationModel(设计实现模型);选择View(视图)选中Status Bar,Browser, Documentation, As Unified;选择ToolsOptionsDiagram 选中Stereotype Display(构造型显示)标签并选中Show/Display 的所有项目(Three-Tier Diagram除外);可以在文档窗口(Documentation Window)为每个浏览器元素(Browser element)键入“文档信息”;可以在图上增加文本框(text boxes)“ABC”(译注:ABC 是文本框符号的标志);可以在图上增加注释;也可以通过“FileDelete”(译注:似乎应是EditDelete)从模型中删除不正确的元素。Check Model后,选择WindowLog查看日志文件;可以选择ReportDocumentation Report;选择Help,查看Rational Rose Help Topics(帮助主题)。创建Rose 用例图:在浏览器窗口,选择Use Case View(用例视图),将“Main”重命名为“Use Case Diagram”,在Use Case View双击可以显示用例图,在图上放置参与者(ACTOR)和用例,选择一种关系连接各元素。 user use case创建Rose 类图:在浏览器窗口选择Logical View(逻辑视图) ,将“Main”重命名为“class diagram”;在Class Diagram上双击以显示类图;在图上放置“类”;选择一个“类”然后按鼠标右键,选择New Attribute键入属性;选择“类”然后按鼠标右键,再选择:“New Operation”键入操作;从工具条中选择“泛化”(Generalization)关系箭头,从子类到超类拖曳,放置一个泛化关系;从工具条中选择实现(Realize)箭头,由实现类向接口拖曳,放置一个实现关系;从工具条中选择关联(Association)箭头从较大/上级类向较小/从属类拖曳,放置一个关联关系;在离较小/从属类最近的关联线上单击鼠标右键,键入角色名及角色多重性;,从工具条中选择菱形的聚合符号,然后从较大/整体类向较小/部分类拖曳,放置一个聚合/组成关系;在到部分类最近的关联线上单击鼠标右键,键入角色名称及角色多重性;从工具条中选择依赖箭头,从源/客户类(source/client class)向目标/供应端(destination/supplier class)拖曳,放置一个依赖(dependency)关系;选择ToolsCheck Model;选择Report - Show Usage/Show Instances/Show Access Violations;选择 File - Save. 创建Rose 顺序图:在浏览器窗口选择Logical View;选择BrowseInteraction DiagramLogical View;选择Sequence Diagram;键入图名;在图上放置对象(object)以表示类的对象;双击对象并且选择从下拉列表中选择类名;选择Rose 对象消息(Object Message)符并在两个对象间拖曳;双击消息,选择操作。选择Tools - Check Model;选择Report - Show Unresolved Objects/Show Unresolved Messages;选择 File - Save.使用统一过程生命周期阶段本教程使用了“统一软件开发过程”。参见The Unified Software Development Process(Ivar Jacobson,Grady Booch, James Rumbaugh 著)、The Rational Unified Process An Introduction Second Edition(Krutchen著)。统一过程生命周期阶段图示如下:系统/子系统/组件包/类/对象需求分析需求描述/产品性能类图所有用例的用例图包图每个用例场景(scenario)的顺序图顺序图 和/或 协作图每个用例所有场景的活动图活动图和状态图实现设计过程环境硬件&软件组件图&部署图过程环境硬件(HW)&软件(SW)更新的类/包/顺序/协作/活动/状态图& 构建/测试下表中总结了在统一过程中不同的模型:业务模型需求模型分析模型设计模型实现模型测试模型关键UML元素业务过程(用例),业务域对象系统,参与者,用例,交互业务包,类,对象,消息硬件&软件配置,包,类,对象,消息组件,节点,编码测试计划和测试实例主要关注点模型业务黑盒模型系统问题领域模型的业务元素(不含实现细节)更新特定实现的分析图/规约,例如硬件&软件配置分布式环境模型物理元素;对应所有需求的编码单元(类/操作)测试,集成,整个系统测试目标:元素间弱耦合强内聚充分的业务/企业信息所有用例/场景的充分信息,所有计划过的增量/迭代。满足需要的最简业务/问题领域模型生成最大量代码或手动编码需要的足够的信息界面友好、最适当的组件架构网络;满足所有需求的代码编码可满足所有需求的充分测试静态/结构性图业务领域对象显示参与者的块图和用例图包/类图包/类图组件和部署图;逆向类图动态的/基于时间的图业务过程(用例)每个用例场景的用例图、顺序图,每个用例的活动图每个用例场景的顺序图,基于状态的类的状态图,复杂操作的活动图每个用例场景的顺序图,基于状态的类的状态图,复杂操作的活动图可选地,显示分布式信息的更新顺序图关键团队成员业务分析员业务分析员业务分析员开发人员架构师,开发人员开发人员/测试人员模型签认项目经理,架构师,客户项目经理,架构师,客户项目经理,架构师,客户项目经理,架构师项目经理,架构师项目经理,架构师,客户(验收)建议的任务/练习:基于统一过程创建一个UML模型。0- 业务建模企业级评审业务模型:前景文档,组织结构图,业务事件和过程(用例),业务参与者,工作人员(worker),实体(域模型),业务规则目录,业务接口(操作集),业务模式,业务系统体系结构组件图,术语表。参见The Rational Unified Process An Introduction Second Edition(Krutchen著)及Business Modeling with UML(Eriksson 和Penker 著)。需求系统/子系统/组件级(与语言无关的)1- 需求对需求描述、系统图(System Drawing),系统块图(客户提供)进行评审。创建系统协作图环境图(Context Diagram)以说明对象/数据的输入输出、设定系统的边界(可选)。创建需求可追踪性表,列出需求名、需求号、引用、用例、UML元素、测试实例、描述、职责,等等(可选)。评审管理计划、时间表、风险、命名/编码标准、方法设计UML 过程/构造型/特征/约束(可选)。2- 所有用例创建用例图说明所有用例。说明用例关系(包含,扩展、泛化)和/或分级用例(从高级到细节)(可选)。确定用例的增量和迭代。3- 每个用例为每个用例创建用例规约描述:用例名、触发、输入、输出、前置条件/异常、后置条件/异常,基本的和替代性可选场景【从乐观到悲观(optimistic to pessimistic)】、业务规则。为每个用例场景创建顺序图(可选)。为每个用例创建输入/输出表和测试实例(可选)。4- 每个用例所有的场景为每个用例创建活动图说明所有的用例场景(乐观到悲观)。用文本、流程图或其他图说明每个用例的场景/路径(可选)。5- 信息创建产品性能(Product Capabilities)列出非功能性的需求:可用性(可靠性、性能、安全、人员因素),一般性(generality)、可移动性、兼容性,时间,空间,存储等等。创建一个语义数据模型(高级类/包图)(可选)。分析类和对象级(与语言无关的)6- 类和包创建候选类清单,CRC 卡,类图和包图。创建对象图显示属性值(可选)。7- 对象和消息为每个用例乐观场景创建顺序图。为所有其他用例场景创建顺序图(可选)。或者,为每个用例创建协作图。 8- 状态和转移为每个基于状态的类创建状态图,说明状态、事件、条件、动作。9-操作为每个复杂的操作创建一个操作规约,说明前置条件、转换,后置条件,以及异常。为每个复杂操作创建活动图,说明活动的顺序、状态、条件和动作(可选)。III 设计-类和对象级(特定的过程环境下的)10过程环境创建由已计划的“实现硬件和软件配置清单”组成的goig过程环境:操作系统,语言,类库,组件,GUI,分布对象请求代理,永久数据存储,等等。可列出潜在的模式,组件标准((Active X, Java Bean, CORBA),命名约定,编码标准,代码生成脚本,工具(CASE, 编译器,配置管理,测试等等)(可选)。11 更新的分析图及规约更新所有图表和说明,为过程环境增加细节,包括数据类型,参数/返回值,支持类,操作细节(前置条件/异常)转换,后置条件/异常),等等。提供了实现模式,例如多态操作,异常(异常的超类/子类),线程,数据访问,事务,安全,消息队列等等。目标是:图和规约为手工编码或代码生成提供正确的信息(可选)。 实现系统/子系统/组件级(特定过程环境下的)12实施过程环境,组件标准和组件模式更新过程环境,显示已提供的组件(GUI,数据访问,事务,分布,消息队列,安全等)、组件标准(ActiveX, Enterprise Java Bean,CORBA)、组件到组件模式,例如小的单个操作组件、基于组件的类、每一用户实体组件,基于组件的包,大的多包组件。13 实施组件创建组件图显示所有需要的带有依赖关系的组件和文件,例如.EXE, DLL, .OCX, .LIB, .TXT, .HLP等等。显示接口(棒棒糖)、创建接口图显示公有操作(exposed operation)(可选)。显示IDL 代码(Interface Definition Language,接口定义语言)例如 CORBA IDL, Microsoft IDL, Java(可选)。14 实施节点(处理器和设备)- 创建部署图,显示所有需要的处理器、设备和其他器材,例如客户网络计算机(NC),Windows PC, NT Server,事务服务器,WEB 服务器,邮件服务器,传真,打印机,网络等。V -构建15-编码标准和代码生成脚本更新编码标准和代码生成脚本.编码标准为所有主要UML元素编码列出了样本代码、关系以及继承策略、接口、异常、线程等。 16 -每个组件的编码、图表逆向工程VI - 测试17 测试计划更新测试计划,列出测试实例(名称,输入,输出,条件),测试步骤(每一个测试用例的每一步用法),测试组件【驱动器(driver),测试装置(harnesses),脚本】18 -测试引导测试(conduct tests),例如类/操作测试(单元测试),个体组件测试(基于用例的),全范围系统-多组件测试(基于用例的集成/验收测试)。VII - 模型和构建其他需要的组件19 图形用户接口/用户/外部接口组件可选的创建GUI 组件(窗口,菜单,对话框,面板) 20 永久存储组件的可选的数据存储表/存储过程/触发器。 UML CASE 学习BankApp (使用Rational Rose)0预备业务企业模型业务前景,目标,组织分别提供业务事件UML信号事件-指定的激励表格或文档和过程(UML 用例)过程名参与者事件/输入转换事件/输出约束描述引用联系点WithdrawFromAccountCustomer,Teller,BankDBWithdrawRequestUpdateAccountWithdrawRecord译注:Customer:客户;Teller:出纳员;withdraw:取款;account:账户;BankDB:银行数据库Business Actors, Business Workers,业务实体(问题域实体)业务参与者(UML 参与者)业务员(UML 参与者)业务实体(UML 类)CustomerTellerAccount,SavingsAccount,CheckingAccount译注:saving:储蓄;checking:支票业务规则目录规则标识符参与者,实体,过程描述:If 条件. then 动作区域引用联系点(Point of Contact)ValidAccountAccountIf AccountNum 有效,then Acccount 有效业务接口(指定操作集)由架构师提供业务模式目录参见Business Modeling with UML(Eriksson 和Penker 著)。业务术语待完备业务系统体系结构由架构师提供需求模型1 -需求:BankApp应该管理支票和存款账户的存款和取款。将来(还要提供)查询,转账,透支,等等从TellerGUI 到BankApp的输入/输出: sAcctNum, nDeposit, nWithdraw,sText。从BankApp 到BankDB的输入/输出: sAcctNum, nDeposit, nWithdraw.1 -需求可追踪性表:需求号,名称,引用,用例名,UML元素,测试用例,描述,职责。需求可追踪性表(部分)需求编号需求名引用用例名UML 元素测试实例描述职责1.1DepositToSavingsAccountDepositToSavingsAccountBankPkg1.2DepositToCheckingAccountDepositToCheckingAccountBankPkg1.3WithdrawFromSavingAccountWithdrawFromSavingAccountBankPkg1.4WithdrawFromCheckingAccountWithdrawFromCheckingAccountBankPkg2-需求用例图所有用例Rose 用例图:在浏览器窗口,选择Use Case View;Main Use CaseDiagram;在图上放置参与者,用例,关系Rose单向关联(Unidirectional Association),泛化;选择每一个参与者单击鼠标右键键入参与者的操作;选择Tools-Check Model;选择File-Save.2-需求高级别协作图环境图(Context Diagram):Rose高级别协作图:在浏览器窗口,选择Use Case View;选择Browse-Interaction Diagram(交互图)-Use Case View-;选择Collaboration Diagram;键入图名;在图上放置对象表示参与者;双击每个对象,然后从下拉列表中选择参与者名;在图的中央放置一个对象以表示系统;双击对象,键入系统名;选择Rose Object Link (对象连接符)并且在参与者和系统之间拖曳;选择Rose 文本框TextBox“ABC” ,键入传递的对象/数据;选择Tools-Check Model;选择File-Save . 2-需求用例增量增量1:支票和储蓄账户的存款和取款增量2:查询和转账增量3:透支每个增量内进行迭代:乐观的,正常的,悲观的3-需求用例规约:名称,触发器,输入参数,输出返回值,出现的前置条件/异常,出现的(raised)后置条件/异常,基本的/乐观场景,替代性可选的/悲观的场景,业务规则,测试实例。WithdrawFromCheckingAccount用例的用例规约用例名:WithdrawFromCheckingAccount触发器: WithdrawFromCheckingAccount输入参数: sAcctNum, nWithdraw输出返回值: sText前置条件: ValidAccount = true and nWithdraw = nCurrentBalance出现的前置条件异常: 待定的描述/转换: nCurrentBalance = nCurrentBalance - nWithdraw后置条件: nCurrentBalance nOldBalance后置条件异常:无相关用例: Generalization, Includes, Extends/Extension Point: 无基本场景/乐观场景: Text(文本) 待定;Diagram(图) -见 WithdrawFromCheckingAccount Optimistic Scenario顺序图替代性可选场景/被动场景:Text -待定;Diagram -见WithdrawFromCheckingAccount 活动图业务规则: ValidAccountRule, AdequateBalanceRule测试实例: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(取款数量) _ Button-Submit(提交按钮) Button-Clear(清除按钮) Withdraw Response Form(取款响应窗体) Customer Account Number _ Withdraw Amount _ Status (状态) _ Button-OK(OK 按钮)3 需求顺序图WithdrawFromCheckingAccount 乐观场景注:getApp的第一笔事务需要达到应用程序的最高级别Rose 顺序图:在浏览器窗口,选择Use Case View;选择 Use Case Diagram;选择一个用例;选择Browse-Interaction Diagram-Use Case View-;选择Sequence Diagram;键入图名,例如WithdrawFromCheckingAccountOptiminticScenario;在图上放置对象以表示参与者;双击每个对象,然后从下拉列表中选择参与者名;在图的中央放置一个对象以表示系统;双击对象,从下拉列表中键入系统名;选择Rose Object Link (对象连接符),在参与者和系统之间拖曳;选择Tools-Check Model;选择File-Save .4-WithdrawFromCheckingAccount用例所有场景的需求活动图注:getApp的第一笔事务需要达到应用程序的最高级别Rose 状态活动图: 在浏览器窗口,选择Use Case View;选择Use Case Diagram 显示图;选择一个用例;选择Browse - State Diagram;如果State Diagram 是灰色,则返回到用例图并重新选择一个用例;在图上放置活动状态(activity states);通过在两个状态之间拖曳,放置转移;选择Tools-Check Model;选择File-Save . 5 需求产品性能:高可靠性,10个并发的用户,2秒响应时间。5 需求/分析高阶概念模型(HOCM-High Order Concept Model) 外部参与者:TellerGUI,BankDB.内部实体(Internal Entities): BankApp, Account, CheckingAccount, SavingsAccountRose高级别概念模型图: 推荐使用铅笔和纸做HOCM。作为替代,创建不含属性和操作的Rose 类图。分析模型草图6 分析类图 - 最简结构Rose 类图: 见使用Rational Rose6- 分析包图Rose 包图:在浏览器窗口选择Logical View;选择BrowseClass DiagramLogical View。输入包图名;在图上放置包;从工具条中选择依赖箭头然后从源包到目的包拖曳,放置依赖关系。在浏览器中,拖动每个类到适当的包;选择Tools-Check Model;选择File-Save。7- 分析 WithdrawFromCheckingAccount顺序图乐观场景注:getApp的第一笔事务需要达到应用程序的最高级别Rose 顺序图:见使用Rational Rose8- 分析Account类的状态图Rose 状态活动图:在浏览器窗口,选择Use Case View;选择Use Case Diagram 显示;选择一个用例;选择Browse - State Diagram;如果 State Diagram 是灰色,则返回到用例图并重新选择一个用例;在图上放置活动状态(activity states);通过在两个状态之间拖曳,放置转移;选择Tools-Check Model;选择File-Save .9-分析复杂操作:待定的每一个操作的活动图 和/或操作规约:名称,输入,前置条件/异常,转换,后置条件/异常,业务规则,描述。Rose 规约: 显示类图;选择一个类;按鼠标右键显示Specification Dialog Box;选择一个标签,例如Operations;双击一个操作;填写操作信息;选择 Tools - Check Model;选择File - Save.III 设计模型 - 编码的基础10 设计过程环境:Linux 6.2版, GNU C+ 6.2版, C+ 标准库,CORBA 3.10 -设计潜在模式企业级:基于分布式CORBA,具有公共接口的组件系统(组件到组件):分层,会话实体(Session Entity),回调(Callbacks),发行者订阅者(Publisher Subscriber)组件:应用文档,控制器实体边界,虚包(Facade)类设计:UML, Factory(工厂),事务JAVA 语言:Java Bean, Enterprise Java Bean, Servlet, RMI11设计包图 11-设计类图 说明类型和参数-目标是完成编码注:CheckingAccount和SavingsAccount 提供多态操作的实现。11-设计顺序图WithdrawFromCheckingAccount 乐观场景注:getApp的第一笔事务需要达到应用程序的最高级别11-设计协作图WithdrawFromCheckingAccount 乐观场景在Rational Rose中打开顺序图,按F5 自动创建协作图。11 设计CheckingAccount类withdraw()操作的操作规约用例名: withdraw触发:withdraw输入参数: nWithdraw : int输出返回值: boolean前置条件: nWithdraw = nCurrentBalance出现的前置条件/异常: exInsuffientFunds描述/转换: nCurrentBalance = nCurrentBalance - nWithdraw后置条件: nCurrentBalance priorCurrentBalance后置条件异常: exIncorrectBalance基本/乐观场景 :见WithdrawFromCheckingAccount 顺序图替代性场景/悲观场景:见WithdrawFromCheckingAccount 活动图业务规则:ValidAccountRule, AdequateBalanceRule11-设计异常类(exception classes)异常超类(操作:Exception()/Exception(string);异常子类:exInsufiicientFunds 操作 :exInsufiicientFunds()、exInsufiicientFunds(string);exIncorrectBalance操作:exIncorrectBalance()、exIncorrectBalance(string)。11-设计 CheckingAccount 类的状态图 实施模型(Implementation Models)12-设计过程环境13 实施组件图 实施文件(Implementation Files): TellerGUI.exe, BankApp.exe, BankDB.exe组件接口选择:1) BankApp具有单接口 IbankApp,其所有操作都是公有的(exposed)2) BankApp暴露(exposes) IBankApp, ICheckingAccount, & ISavingAccount 接口3) BankApp暴露(exposes) IBankApp, IWithdraw, IDeposit, ICheckingAccount, & ISavingAccount 接口CORBA IDL/C+ 需要对接口进行描述Rose 组件图:在浏览器窗口,选择Component View;,将“Main”重命名为“Component View”;双击图名显示该图;在图上放置组件和依赖关系(从client组件到supplier组件拖曳);在浏览器中把每个类拖到相应的组件中;选择Tools-Check Model;选择File-Save.14-实施部署图Rose 部署图:在浏览器窗口选择Deployment View;双击以显示该图;在图上放置节点和关系;选择Tools-Check Model;选择File-Save./使用CORBA的 BankApp系统的接口/Sample IDL Interface Code(IDL 接口代码样本)module BankApp interface IBankApp exception exInsuffientFunds; IBankApp getApp(); boolean depositToCheckingAccount (in string sAcctNum, 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 Java 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 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/(Microsoft IDL 的COM接口编码样本简化版)library BankAppLib dispinterface IBankApp IBankApp getApp();boolean depositToCheckingAccount (BSTR sAcctNum, int nDeposit) ;boolean depositToSavingAccount (BSTR sAcctNum, int nDeposit)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论