《Rose建模实践指南》由会员分享,可在线阅读,更多相关《Rose建模实践指南(66页珍藏版)》请在金锄头文库上搜索。
1、1第第2 2章章Rational Rose建模实践指南建模实践指南 2本章导读本章导读 nRational Rational RoseRose是是面面向向对对象象分分析析与与设设计计建建模模最最好好的的工工具具,它它的的应应用用领领域域宽宽,应应用用时时间间长长,也也较较为为成成熟熟,但但是是在在国国内内普普及及面面不不广广。当当前前,它它是是ITIT企企业业常常用用的的CASECASE工工具具之之一一,计计算算机机及及软软件件专专业业方方向向的的大大学学生生、研研究究生生和和软软件件工工程程师师必必须须学学会会它它,掌掌握握它它,并并用用它它来来解解决决面面向向对对象象分分析析与与设设计计建
2、建模模的的实实际问题。际问题。nRational Rational RoseRose的的理理论论基基础础是是统统一一建建模模语语言言UMLUML,在在学学习习Rational Rational RoseRose之之前前,必必须须对对UMLUML有有所所了了解解。由由于于UMLUML本本身身也也较较为为复复杂杂,所所以以学学习习Rational Rational RoseRose比比学学习习PowerDesignePowerDesigne要要困困难难得得多多。但但是是,天天下无难事,只要肯攀登!下无难事,只要肯攀登!3本章对读者的要求本章对读者的要求 要要 求求具具 体体 内内 容容了了 解解1
3、)Rational RoseRational Rose的发展历史的发展历史2)Rational RoseRational Rose的安装与启动的安装与启动3)Rational RoseRational Rose的工作界面及图标的工作界面及图标理理 解解1)Rational RoseRational Rose与与UMLUML之间的关系之间的关系2)Rational RoseRational Rose逆向工程逆向工程3 3)JavaJava代码逆向工程代码逆向工程掌掌 握握1)用)用Rational RoseRational Rose设计用况模型设计用况模型2)用)用Rational RoseRa
4、tional Rose设计领域模型设计领域模型3 3)用)用Rational RoseRational Rose设计类模型和包图设计类模型和包图4 4)用)用Rational RoseRational Rose设计系统动态模型设计系统动态模型5 5)用)用Rational RoseRational Rose进行数据建模进行数据建模4Rational Rose概述概述n解决面向对象问题的核心是建模,即建解决面向对象问题的核心是建模,即建立系统的立系统的Rose模型。软件系统内部的高模型。软件系统内部的高内聚、低耦合程度以及维护成本是软件内聚、低耦合程度以及维护成本是软件设计的所关注的问题,设计的
5、所关注的问题,Rational Rose是基于是基于UML而产生的,是软件开发过程而产生的,是软件开发过程中的不可或缺的一个建模工具。中的不可或缺的一个建模工具。 5Rational Rose主要特点主要特点n支持多种语言支持多种语言,如如Ada、CORBA、Visual Basic、Java等;等; n支持模型的支持模型的Internet发布;发布;n可以生成简单、清晰且定制灵活的文档;可以生成简单、清晰且定制灵活的文档;n双向工程保证了模型和代码高度一致;双向工程保证了模型和代码高度一致;n支持逆向工程,建立代码框架;支持逆向工程,建立代码框架;n支持多种关系型数据库的建模;支持多种关系型
6、数据库的建模;n从需求分析到测试,在整个软件生命周从需求分析到测试,在整个软件生命周期中,都为团队开发提供强有力的支持。期中,都为团队开发提供强有力的支持。6Rational Rose的作用的作用n整个开发团队可以使用用况图,来获得一个系统高整个开发团队可以使用用况图,来获得一个系统高层次的视图,并且可以协商项目的范畴;层次的视图,并且可以协商项目的范畴;n项目经理可以使用用况图和文档,把项目分解成项目经理可以使用用况图和文档,把项目分解成便于管理的多个模块;便于管理的多个模块;n系统分析员和客户在看到用况规格描述文档的时系统分析员和客户在看到用况规格描述文档的时候,就可以明白系统将会提供什么
7、样的功能;候,就可以明白系统将会提供什么样的功能;n技术编写者在看到用况规格描述文档时,就可以技术编写者在看到用况规格描述文档时,就可以着手编写用户手册和培训计划;着手编写用户手册和培训计划;n系统分析员和软件开发者在看到时序图和协作图系统分析员和软件开发者在看到时序图和协作图时,就可以明白整个系统的逻辑流程、对象以及时,就可以明白整个系统的逻辑流程、对象以及对象之间的消息;对象之间的消息;7Rational Rose的作用的作用n质量检测员可以使用用况文档、时序图、协作图获质量检测员可以使用用况文档、时序图、协作图获得测试脚本所需要的信息;得测试脚本所需要的信息;n软件开发人员使用类图和状态
8、图,可以获得系软件开发人员使用类图和状态图,可以获得系统模块的详细视图以及模块之间的关系;统模块的详细视图以及模块之间的关系;n部署人员在使用组件图和部署图时,就可以明部署人员在使用组件图和部署图时,就可以明白哪些是可执行文件或白哪些是可执行文件或DLL文件,以及其他的一文件,以及其他的一些组件是如何创建的,这些组件该部署在网络些组件是如何创建的,这些组件该部署在网络中哪些地方;中哪些地方;n整个团队使用整个团队使用Rose模型,就可以确定从需求到模型,就可以确定从需求到编码的整个过程,并且从编码到需求这个逆过编码的整个过程,并且从编码到需求这个逆过程也是可以追踪的。程也是可以追踪的。8安装安
9、装Rational RoseRational Rose n(1) (1) 双击双击Rational Rose 2003Rational Rose 2003的安装程序,进入安装界面,如图的安装程序,进入安装界面,如图2-12-1所示;所示;n(2) (2) 单击【下一步】按钮,进入如图单击【下一步】按钮,进入如图2-22-2所示界面,此时用户可以选择要安装所示界面,此时用户可以选择要安装的产品,一般选择的产品,一般选择“Rational Rose Enterprise EditionRational Rose Enterprise Edition” ;n(3) (3) 单单击击【下下一一步步】按
10、按钮钮,进进入入如如图图2-32-3所所示示界界面面,在在图图2-32-3中中选选择择“Desktop Desktop installation from CDinstallation from CD”选项,表示创建一个本地的应用程序而不是网络的;选项,表示创建一个本地的应用程序而不是网络的;n(4) (4) 单击【下一步】按钮,进入安装向导界面,如图单击【下一步】按钮,进入安装向导界面,如图2-42-4所示;所示;n(5) (5) 单击【单击【NextNext】按钮,进入产品声明界面,如图按钮,进入产品声明界面,如图2-52-5所示;所示;n(6) (6) 单击【NextNext】按按钮,进
11、入入协议许可界面,如可界面,如图2-62-6所示;所示; n(7) (7) 单单击击【NextNext】按按钮钮,进进入入安安装装路路径径设设置置界界面面,如如图图2-72-7所所示示,单单击击“ChangeChange”按钮设置安装路径;按钮设置安装路径;n(8) (8) 单击【NextNext】按按钮,进入安装入安装设置界面,如置界面,如图2-82-8所示;所示; n(9) (9) 单击【单击【NextNext】按钮,进入开始安装界面,如图按钮,进入开始安装界面,如图2-92-9所示;所示;n(10) (10) 单击【单击【InstallInstall】按钮,开始拷贝文件到安装目录,如图按
12、钮,开始拷贝文件到安装目录,如图2-102-10所示;所示; n(11) (11) 安安装装完完毕毕,将将自自动动弹弹出出如如图图2-112-11所所示示对对话话框框,用用户户必必须须对对该该软软件件进进行行注注册方能使用该软件;册方能使用该软件;n(12) (12) 安装成功,进入安装成功,进入Rational RoseRational Rose界面,如图界面,如图2-122-12所示。所示。 9安装界面安装界面 10Rational RoseRational Rose的使用的使用 nRose Rose 是菜单驱动式的是菜单驱动式的CASECASE工具,可以通过工具工具,可以通过工具栏使用其
13、常用功能,如图栏使用其常用功能,如图2-132-13所示。所示。nRoseRose支持支持8 8种不同类型的种不同类型的UMLUML图:图:n用况图(用况图(Use Case DiagramUse Case Diagram)n活动图活动图( (Activity Diagram)Activity Diagram)n时序图(时序图(Sequence DiagramSequence Diagram)n协作图协作图( (Collaboration Diagram)Collaboration Diagram)n类图类图( (Class Diagram)Class Diagram)n状态图状态图( (St
14、atechart Diagram)Statechart Diagram)n组件图(组件图(Component DiagramComponent Diagram)n部署图部署图( (Deployment Diagram)Deployment Diagram)。 11RoseRose界面简介界面简介 nRoseRose主界面如图主界面如图2-132-13所示,它由所示,它由5 5个部分组成:个部分组成:n(1) (1) BrowserBrowser窗窗口口: : 浏浏览览器器窗窗口口,用用于于快快速速启启动模型;动模型;n(2) (2) DocumentationDocumentation窗窗口口
15、:文文档档窗窗口口,用用于于快快速访问通用命令;速访问通用命令;n(3) (3) DiagramDiagram窗窗口口:编编辑辑区区,用用于于显显示示和和编编辑辑多个多个UMLUML图;图;n(4) (4) 日日志志窗窗口口:用用于于观观看看错错误误和和各各种种各各样样命命令的结果报告;令的结果报告;n(5) (5) 工具栏窗口:显示有关工具图标。工具栏窗口:显示有关工具图标。 12图图2-13 2-13 RoseRose的主界面的主界面 13RoseRose建模简介建模简介 nRoseRose创建的模型文件后缀名为创建的模型文件后缀名为. .mdlmdl,模型的创建的一般步骤模型的创建的一般
16、步骤: :n(1) (1) 创建模型创建模型n点点击击菜菜单单栏栏中中【FileFile】项项,选选择择【NewNew】选选项项,或或者者直直接接点点击击标标准准菜菜单单栏栏中的【中的【Create New Model or FileCreate New Model or File】按钮;按钮;n弹弹出出如如图图2-132-13所所示示的的对对话话框框,选选择择要要用用到到的的框框架架,单单击击【OKOK】按按钮钮,或或者者【CancelCancel】按钮。按钮。n(2) (2) 保存模型保存模型n保保存存模模型型是是创创建建模模型型的的逆逆过过程程,点点击击菜菜单单栏栏中中【FileFile
17、】项项,选选择择【SaveSave】选选项项,或或者者直直接接点点击击标标准准菜菜单单栏栏中中的的【Save Save Model,File,or Model,File,or ScriptScript】按按钮;钮;n(3) (3) 发布模型发布模型n点击菜单栏中的【点击菜单栏中的【ToolsTools】项,选择【项,选择【Web Publisher.Web Publisher.】项,跳出如图项,跳出如图2-142-14所示对话框;所示对话框;n在在图2-142-14中,中,选择要要发布到布到webweb页面上的内容和面上的内容和HTMLHTML页面要保存的位置,面要保存的位置,单击【Publi
18、shPublish】按按钮,RoseRose模型就模型就发布到布到webweb页面上,打开所保存的面上,打开所保存的. .htmlhtml文件,就可以看到文件,就可以看到RoseRose模型,如模型,如图2-152-15所示。所示。 14发布模型和保存布模型和保存. .htmlhtml文件的窗口文件的窗口 15用用Rational RoseRational Rose设计用况模型设计用况模型 n用用况况模模型型( (Use Use Case Case Model)Model)又又称称为为用用例例模模型型,它它是是所所有有用用况况、参参与与者者以以及及相相关关关关系系的的集集合合,是是关关于于系系
19、统统功功能能和和环环境境的的模模型型。一一个个用用况况就就是是系系统统要要实实现现的的一一项项功功能能,即即使使用用用用况况来来描描述述系系统统要要做做什什么么。用用况况模模型型是是软软件件需需求求分分析析结结果果的的可视化表示。可视化表示。n另外,参考文献另外,参考文献1 1中所讲的中所讲的“业务模型、功业务模型、功能模型、数据模型能模型、数据模型”这三个模型的建模思想与这三个模型的建模思想与建模方法论,也可以用建模工具建模方法论,也可以用建模工具Rational RoseRational Rose来加以实现。来加以实现。 16理解用况模型中的元素理解用况模型中的元素 n1用况图(Use C
20、ase Diagram) n确定系统中所包含的参与者、用况和两者之间或其自身的关系,用况图是基于系统要实现的功能的一个可视化描述。n(1) 参与者(Actor)n(2) 用况(Use Case)n用况是用来描述参与者使用系统,以达到某个目标时所涉及到的一系列的场景的集合。一个用况的核心并不是上述的图标,而是一个规格化的叙述型文档,它描述了参与者要实现某项功能的事件流程,展示和体现了其所描述的过程中的需求情况。用况名称一般以“做什么”即“动宾词组”形式来命名。 n(3) 用况和参与者及自身的关系n泛化关系(generalization) n包含关系(include) n扩展关系(extend)
21、17理解用况模型中的元素理解用况模型中的元素n2. 2. 用况规约用况规约( (Use Case Specification)Use Case Specification)n所所谓谓规规约约,就就是是业业务务规规则则的的规规格格说说明明。针对每每一一个个用用况况,都都应该有有一一个个用用况况规约文文档档与与之之相相对应,以以描描述述该用用况况的的细节内内容容。每每一一个个用用况况的的用用况况规约,都都应该包含以下内容:包含以下内容:n(1) (1) 用况名称用况名称( (Use Case Name).Use Case Name).用况的名称一般由用况的名称一般由“动词+ +名名词”构成,构成,
22、简单说明明“做什么做什么”。n(2) (2) 简要要说明明( (Brief Description).Brief Description).简要介要介绍该用况的作用和目的。用况的作用和目的。n(3) (3) 前置条件前置条件( (Previous Condition).Previous Condition).系系统在在执行行该用况前必用况前必须处在的状在的状态。n(4) (4) 事件流事件流( (Flow of Event) Flow of Event) n(5) (5) 用况用况场景景( (Use Case Scenario).Use Case Scenario).包括成功包括成功场景和失景
23、和失败场景,景,场景主要由基景主要由基本流和本流和备选流流组合而成。合而成。n(6) (6) 特殊需求特殊需求( (Special Requirement).Special Requirement).描述与描述与该用况相关的非功能性需求用况相关的非功能性需求( (性能、性能、可靠性、可用性和可可靠性、可用性和可扩展性等展性等) )以及涉及以及涉及约束束( (所使用的操作系所使用的操作系统、开、开发工具等工具等) )。n(7) (7) 后置条件后置条件( (Post Condition).Post Condition).系系统在在执行完行完该用况之后用况之后应该处在的状在的状态 。 18用况建模
24、用况建模 n1创建用况图创建用况图n(1) 选定浏览器窗口中的【选定浏览器窗口中的【Use Case View】;n(2) 单击鼠标右键,在弹出的快捷菜单中选择单击鼠标右键,在弹出的快捷菜单中选择【New】;n(3) 在菜单【在菜单【New】产生的下级菜单中选择要产生的下级菜单中选择要新建的图新建的图【Use Case Diagram】。】。n以上步骤如图以上步骤如图2-19所示,生成的用况图,如图所示,生成的用况图,如图2-20所示。所示。 19用况图用况图 20用况建模用况建模n2 2设定编辑区工具栏设定编辑区工具栏n用用户可以根据自己的需要,往当前可以根据自己的需要,往当前编辑区工具区工
25、具栏中添加按中添加按钮,用,用户可以根据以下两种方法打开可以根据以下两种方法打开“自定自定义工具工具栏”:n(1) (1) 选定定编辑区工具区工具栏,单击鼠鼠标右右键,选择【Customize.Customize.】, ,即跳出如即跳出如图2-212-21的的对话框;框;n(2) (2) 选择菜菜单【ViewView】, ,单击【ToolbarsToolbars】, ,在出在出现的下的下级菜菜单中中选择【Configure.Configure.】, , 弹出如出如图2-212-21所示所示对话框。框。n3 3创建参与者、用况创建参与者、用况n参与者、用况、以及两者的关系,是用况参与者、用况、以
26、及两者的关系,是用况图的主要的主要组成元素。成元素。n下面有两种方式下面有两种方式创建用况建用况图所需的元素:所需的元素:n(1) (1) 单击编辑区工具区工具栏的的图标,然后在,然后在编辑区区单击鼠鼠标左左键;n(2) (2) 在浏览器窗口中创建所需要的元素,将浏览器中的元素拖动在浏览器窗口中创建所需要的元素,将浏览器中的元素拖动编辑区编辑区 21图图2-21 2-21 定义工具栏定义工具栏 22网上求职招聘系统用况建模案例分析网上求职招聘系统用况建模案例分析1.1.对系系统的求的求职者模者模块进行用况建模行用况建模 232.对系统的招聘者模块进行用况建模对系统的招聘者模块进行用况建模 24
27、3.对系统的管理员模块进行用况建模对系统的管理员模块进行用况建模 254.对系统总体功能进行建模对系统总体功能进行建模 265.建立用况规约建立用况规约( (Use Case Specification)Use Case Specification) n下下面面以以求求职职者者模模块块中中的的“修修改改密密码码”用用况况为为例例,创创建建它它的的用用况规约:况规约:n在用况在用况“修改密码修改密码”上单击鼠标右键,选择菜单【上单击鼠标右键,选择菜单【Open Open Specification.Specification.】, ,从而打开如图从而打开如图2-262-26所示对话框。用户可所示
28、对话框。用户可以在用况属性设置标签中对一些属性进行设置。以在用况属性设置标签中对一些属性进行设置。nName(Name(名称名称) ):设置用况的名称;:设置用况的名称;nStereotype(Stereotype(类型类型) ):用况的类型;:用况的类型;nRank(Rank(级别级别) ):对用况进行层次划分;:对用况进行层次划分;n在在图2-262-26所示的用况属性所示的用况属性设置窗口中,我置窗口中,我们通常将用况通常将用况规约写在【写在【DocumentationDocumentation】对象窗口中,用况象窗口中,用况“修改密修改密码”的的用况用况规约如表如表2-32-3所示。所
29、示。 27图图2-262-26用况属性设置窗口用况属性设置窗口 286.创建活动图描述用况创建活动图描述用况 29用用Rational RoseRational Rose设计领域模型设计领域模型 n领领域域模模型型是是什什么么?它它是是某某行行业业领领域域内内现现实实世世界界概概念念类类的的一一种种表表示示,而而不不是是软软件件组组件件的的一一种种表表示示。领领域域模模型型不不是是描描述述软软件件类类的的图图集集,也也不不是是有有着着职职责责的的软软件件对对象象。通通俗俗地地说说,领领域域模模型型是是某某行行业业领领域域相相关关的的实实体体的的集集合合,是是某某行行业业领领域域中中的的任任何何
30、事事物物或或者者是是人人的的可可视视化的表示,它关注的是实体本身,而不在于它们的属性和操作。化的表示,它关注的是实体本身,而不在于它们的属性和操作。n领领域域模模型型是是概概念念类类或或者者系系统统相相关关的的对对象象的的可可视视化化表表示示。领领域域模模型型一一般般包包含含的的元元素素有有:概概念念类类、概概念念类类之之间间的的关关联联、概概念念类类的的基基本本属性。属性。n由此可见,领域模型有点类似于概念数据模型,即有点类似于实由此可见,领域模型有点类似于概念数据模型,即有点类似于实体关系图体关系图( (或或E-RE-R模型模型) )。n创创建建领领域域模模型型,实实际际上上就就是是在在建
31、建立立类类图图( (Class Class Diagram)Diagram),操操作作方方法如下:法如下:n选定浏览器窗口中的用况视图,单击鼠标右键,选择菜单【选定浏览器窗口中的用况视图,单击鼠标右键,选择菜单【NewNew】, ,在下级菜单中选择【在下级菜单中选择【Class DiagramClass Diagram】菜单项菜单项 30使用使用Rational RoseRational Rose建立领域模型建立领域模型 n打开新建的领域模型,即类图,在编辑区工具打开新建的领域模型,即类图,在编辑区工具栏中单击【栏中单击【ClassClass】按钮,在编辑区单击任何按钮,在编辑区单击任何位置。
32、如果要对类进行划分,可以在浏览器窗位置。如果要对类进行划分,可以在浏览器窗口中创建类所在的包,然后在包中创建相关的口中创建类所在的包,然后在包中创建相关的类。类图如图类。类图如图2-282-28所示。所示。 n类之间的最为常见的关系有类之间的最为常见的关系有4 4种:关联、泛化、种:关联、泛化、聚合、依赖。关联是描述相关的两个事物之间聚合、依赖。关联是描述相关的两个事物之间进行通信的一种关系。类之间的关联进行通信的一种关系。类之间的关联( (Association)Association)关系具有一些属性,用户可以关系具有一些属性,用户可以根据需要,在图根据需要,在图2-292-29所示的关联
33、关系属性设置所示的关联关系属性设置对话框中进行设置。对话框中进行设置。 31领域模型窗口领域模型窗口 32网上求职招聘系统的领域模型案例分析网上求职招聘系统的领域模型案例分析 1 1创建求职者领域模型创建求职者领域模型 332 2添加属性,完整的求职者领域模型如图添加属性,完整的求职者领域模型如图2-312-31所示所示 34用用Rational RoseRational Rose设计类模型和包图设计类模型和包图 n建立类模型和包图,是静态角度来分析系统的。因此,类图和包建立类模型和包图,是静态角度来分析系统的。因此,类图和包图实际上都属于系统的静态模型。这一节我们将讨论如何在图实际上都属于系
34、统的静态模型。这一节我们将讨论如何在Rational RoseRational Rose的逻辑视图中,创建类以及如何将类组织成包。的逻辑视图中,创建类以及如何将类组织成包。n类图( (Class Diagram)Class Diagram)是面向是面向对象系象系统的核心,它的主要元素包括的核心,它的主要元素包括类、对象、接口以及它象、接口以及它们之之间的关系。的关系。 n对对一一个个复复杂杂的的面面向向对对象象的的系系统统进进行行建建模模,我我们们需需要要建建立立大大量量的的类类、接接口口、关关联联以以及及UMLUML图图,以以达达到到确确定定系系统统需需求求以以及及系系统统设设计计的的目目的
35、的。如如果果将将这这些些元元素素凌凌乱乱、分分散散地地放放在在用用况况视视图图( (Use Use Case Case View)View)、逻逻辑辑视视图图( (Logical Logical View)View)、组组件件视视图图( (Component Component View)View)中中,就就会会对对维维护护和和控控制制系系统统的的需需求求和和总总体体结结构构造造成成很很大大的的麻麻烦烦。设设计计一一些些良良好好的的包包,将将建建模模过过程程中中的的元元素素有有效效地地组组织织起起来来,就就可可以以保保证证高高内内聚聚和和低低耦耦合合。同同时时通通过过控控制制包包的的可可见见性
36、性,就就能能有有效效地地控控制制对对包包中中的内容的访问。的内容的访问。n包包图的元素包括包、包与包之的元素包括包、包与包之间的的联系,包系,包图实际上是通上是通过类图( (Class Diagram)Class Diagram)来来实现。 35创建类图创建类图 36创建包图创建包图 37网上求职招聘系统类图和包图案例分析网上求职招聘系统类图和包图案例分析 n该类图有该类图有7 7个实体类:个实体类:nUserBean(UserBean(用户实体用户实体) )nPersonBean(PersonBean(求职者实体求职者实体) )nCompanyBean(CompanyBean(企业实体企业实
37、体) )nAdminBean(AdminBean(管理员实体管理员实体) )nApplyInfoBean(ApplyInfoBean(求职信息实体求职信息实体) )nNewsBean(NewsBean(新闻实体新闻实体) )nJobInfoBean(JobInfoBean(招聘信息实体招聘信息实体) )n图中只展示了它们之间存在的主要关系:对于图中只展示了它们之间存在的主要关系:对于PersonBeanPersonBean、CompanyBeanCompanyBean、AdminBeanAdminBean而言,他们首先都是用户,因此他而言,他们首先都是用户,因此他们与们与UserBeanUse
38、rBean之间存在泛化关系。之间存在泛化关系。PersonBeanPersonBean与与ApplyInfoBeanApplyInfoBean之间存在之间存在“( (release)release)发布发布”关联关系;关联关系;AdminBeanAdminBean与与NewBeanNewBean之间存在之间存在“manage(manage(管理管理) )”关联关系;关联关系;CompanyBeanCompanyBean与与JobInfoBeanJobInfoBean之间存在之间存在“发布发布( (putout)putout)”关联关联关系。关系。 3839类与代码的对应关系类与代码的对应关系n
39、在在Rational Rational RoseRose中中,上上述述的的实实体体类类可可以以使使用用正正向向工工程程生生成成与与之之对对应的代码。操作过程如下:应的代码。操作过程如下:n(1) (1) 选择类框图中需要生成代码的类;选择类框图中需要生成代码的类;n(2) (2) 单击【单击【ToolsTools】菜单,选择【菜单,选择【Java/J2EEJava/J2EE】菜单项,在其下级菜菜单项,在其下级菜单中选择【单中选择【Generate CodeGenerate Code】, ,可以看到如图可以看到如图2-352-35所示对话框;所示对话框;n(3) (3) 单单击击【AssignA
40、ssign】按按钮钮,将将RoseRose中中的的类类部部署署到到类类路路径径( (该该路路径径可可以通过单击【以通过单击【Edit.Edit.】按钮来设置按钮来设置) );n(4) (4) 单击【单击【OKOK】按钮,生成代码框架;按钮,生成代码框架;n(5) (5) 代代码生成完生成完毕。n网上求网上求职招聘系招聘系统分分为三个模三个模块:求:求职者模者模块、招聘者模、招聘者模块、管理、管理员模模块。每个模。每个模块的的设计都是按照都是按照MVCMVC架构架构设计的:的:边界界类包集合包集合了表了表现层的所有的所有类( (边界界类) );控制包集合了控制;控制包集合了控制层的所有的所有类(
41、 (控制控制类) );实体包集合了所有体包集合了所有业务逻辑层和数据的和数据的类( (实体体类) )。 40图图 2-35 2-35 生成代码生成代码 41用用Rational RoseRational Rose设计系统动态模型设计系统动态模型 n系统的动态模型有点类似于系统的动态模型有点类似于“业务模型业务模型”,它描述,它描述了系统随时间变化的行为,这些行为是用从静态模了系统随时间变化的行为,这些行为是用从静态模型中抽取的系统的瞬间值的变化来描述的。型中抽取的系统的瞬间值的变化来描述的。n在在UMLUML的表现上,动态模型主要是建立系统的交互的表现上,动态模型主要是建立系统的交互图图( (
42、Interaction Diagram)Interaction Diagram)和行为图。和行为图。n交互图包括时序图和协作图;交互图包括时序图和协作图;n行为图包括状态图和活动图。行为图包括状态图和活动图。n交互图描述了一个交互,它由一组对象和它们之间交互图描述了一个交互,它由一组对象和它们之间的关系组成,并且还包括在对象之间传递的消息。的关系组成,并且还包括在对象之间传递的消息。 42动态模型动态模型n系统的动态模型有点类似于系统的动态模型有点类似于“业务模型业务模型”,它,它描述了系统随时间变化的行为,这些行为是用描述了系统随时间变化的行为,这些行为是用从静态模型中抽取的系统的瞬间值的变
43、化来描从静态模型中抽取的系统的瞬间值的变化来描述的。述的。n在在UML的表现上,动态模型主要是建立系统的的表现上,动态模型主要是建立系统的交互图交互图(Interaction Diagram)和行为图。和行为图。n交互图包括时序图和协作图;行为图包括状态交互图包括时序图和协作图;行为图包括状态图和活动图。交互图描述了一个交互,它由一图和活动图。交互图描述了一个交互,它由一组对象和它们之间的关系组成,并且还包括在组对象和它们之间的关系组成,并且还包括在对象之间传递的消息。对象之间传递的消息。 43理解时序图理解时序图 n时时序序图图又又叫叫顺顺序序图图,它它是是强强调调消消息息时时间间顺顺序序的
44、的交交互互图图,描描述述了了类类以以及及类类间间相相互互交交换换以以完完成成期期望望行行为为的的消消息息。时时序序图图一一般般包包括括如如下下元素:类角色、生命线、激活期和消息。元素:类角色、生命线、激活期和消息。n(1) 类类角角色色(Class Role). 类类角角色色代代表表时时序序图图中中的的对对象象在在交交互互中中所所扮演的角色。类角色一般代表实际的对象。扮演的角色。类角色一般代表实际的对象。n(2) 生生命命线线(Lifeline). 生生命命线线代代表表时时序序图图中中的的对对象象在在一一段段时时期期内内的的存存在在。每每个个对对象象底底部部中中心心都都有有一一条条垂垂直直的的
45、虚虚线线,这这就就是是对对象象的生命线,对象间的消息存在于两条虚线间。的生命线,对象间的消息存在于两条虚线间。n(3) 激激活活期期(Actiation). 激激活活期期代代表表时时序序图图中中的的对对象象执执行行一一项项操操作的时期。每条生命线上的窄的矩形代表活动期。作的时期。每条生命线上的窄的矩形代表活动期。n(4) 消消息息(Message). 消消息息是是定定义义交交互互和和协协作作中中交交换换信信息息的的类类,用用于于对对实实体体间间的的通通信信内内容容建建模模。信信息息用用于于在在实实体体间间传传递递信信息息,允允许许实体请求其他的服务,类角色通过发送和接收信息进行通信。实体请求其
46、他的服务,类角色通过发送和接收信息进行通信。 44网上求职招聘系统的登录操作时序图网上求职招聘系统的登录操作时序图 45时序图建模要点时序图建模要点 n(1) (1) 设设置置交交互互的的语语境境,这这些些语语境境可可以以是是系系统统、子子系系统统、操操作作、类、用况和协作的一个脚本。类、用况和协作的一个脚本。n(2) (2) 通通过过识识别别对对象象在在交交互互中中扮扮演演的的角角色色,根根据据对对象象的的重重要要性性,将其从左向右的方向放在时序图中。将其从左向右的方向放在时序图中。n(3) (3) 设设置置每每个个对对象象的的生生命命线线。一一般般情情况况下下,对对象象存存在在于于交交互互
47、的整个过程,但它也可以在交互过程中创建和撤销。的整个过程,但它也可以在交互过程中创建和撤销。n(4) (4) 从从引引发发某某个个交交互互的的消消息息开开始始,在在生生命命线线之之间间按按自自上上而而下下的顺序画出随后的消息。的顺序画出随后的消息。n(5) (5) 设设置置对对象象的的激激活活期期,这这可可以以可可视视化化实实际际计计算算发发生生时时的的时时间点、可视化消息的嵌套。间点、可视化消息的嵌套。n(6) (6) 如如果果需需要要设设置置时时间间或或者者空空间间的的约约束束,可可以以为为每每个个消消息息附附上合适的时间和空间的约束。上合适的时间和空间的约束。n(7) (7) 给某控制流
48、的每个消息附上前置条件或者后置条件,这给某控制流的每个消息附上前置条件或者后置条件,这可以更详细地说明这个控制流。可以更详细地说明这个控制流。 46理解协作图理解协作图 n。协作图只对相互间有交互作用的对象和这些对象间。协作图只对相互间有交互作用的对象和这些对象间的关系建模,而忽略了其他对象和关联。的关系建模,而忽略了其他对象和关联。n协协作作图图一一般般包包括括如如下下元元素素:类类角角色色、关关联联角角色色和和消消息息流。流。n(1) (1) 类角色类角色( (Class Role)Class Role)n类类角角色色代代表表协协作作图图中中对对象象在在交交互互中中所所扮扮演演的的角角色色
49、,矩矩形形中中的的对对象象代代表表类类角角色色。类类角角色色的的代代表表参参与与交交互互的的对对象,它的命名方式和对象的命名方式一样。象,它的命名方式和对象的命名方式一样。n(2) (2) 关联角色关联角色( (Association Role)Association Role)n关关联联角角色色代代表表协协作作图图中中连连接接在在交交互互中中所所扮扮演演的的角角色色。连接连接( (即连线或路径即连线或路径) )代表关联角色。代表关联角色。n(3) (3) 消息流消息流( (Message Flow)Message Flow)n消息流代表协作图中对象间通过连接发送的消息。消息流代表协作图中对象
50、间通过连接发送的消息。 47网上求职招聘系统的登录操作协作图网上求职招聘系统的登录操作协作图 48协作图建模要点协作图建模要点n(1) (1) 设设置置交交互互的的语语境境,语语境境可可以以是是系系统统、子子系系统统、操操作作、类类、用用况况或或用况的脚本。用况的脚本。n(2) (2) 通通过过识识别别对对象象在在交交互互中中所所扮扮演演的的角角色色,开开始始绘绘制制协协作作图图,把把这这些些对象作为图的顶点放在协作图中。对象作为图的顶点放在协作图中。n(3) (3) 在在识识别别了了协协作作图图对对象象之之后后,为为每每个个对对象象设设置置初初始始值值,如如果果某某对对象象的的属属性性值值、
51、标标记记值值、状状态态或或角角色色在在交交互互期期发发生生变变化化,则则在在图图中中放放置置一一个个复复制制对对象象,并并用用变变化化后后的的值值更更新新它它,然然后后通通过过构构造造型型become或或copy的消息将两者连接。的消息将两者连接。n(4) (4) 设设置置了了对对象象的的初初始始值值后后,根根据据对对象象间间的的关关系系开开始始确确定定对对象象间间链链接接。一般先确定关联的链接,因为这是最主要的,它代表了结构的链接。一般先确定关联的链接,因为这是最主要的,它代表了结构的链接。n(5) (5) 从从引引起起交交互互的的消消息息开开始始,按按消消息息的的顺顺序序,把把随随后后的的
52、消消息息附附到到适适当当的的链链接接上上,这这描描述述了了对对象象之之间间消消息息传传递递,可可以以用用带带小小数数点点的的编编号号来来表表达嵌套。达嵌套。n(6) (6) 如如果果需需要要说说明明时时间间或或空空间间的的约约束束,可可以以用用适适当当的的时时间间或或空空间间约约束束来修饰每个消息。来修饰每个消息。n(7) (7) 在建模中,如果想更详细地描述这个控制流,可以为交互过程的在建模中,如果想更详细地描述这个控制流,可以为交互过程的每个消息附上前置条件和后置条件。每个消息附上前置条件和后置条件。 49理解状态图理解状态图n状状态态图图是是UMLUML中中对对系系统统动动态态方方面面建
53、建模模的的图图之之一一。状状态态图图是是通通过过类类对对象象的的生生命命周周期期模模型型,来来描描述述对对象象随随时时间间变变化化的的动动态态行行为为。状状态态图图显显示示了了一一个个状状态态机机,它它基基本本上上是是一一个个状状态态机机中中的的元元素素的的一一个个投投影影,这这就就意意味味着着状状态态图图包包括括状状态态机机的的所所有有特特性性。状状态态图图和和其其他他图图的的区区别别在在于于它它的的内内容容。状状态态图图通通常常包包括括如如下下内内容容:状状态态、转换转换 。n(1) (1) 状态状态n状状态态定定义义对对象象在在其其生生命命周周期期中中的的条条件件或或状状况况,在在此此期
54、期间间,对对象象满满足足某某些些条条件件,执执行行某某些些操操作作或或等等待待某某些些事事件件。状状态态用用于于对对实实体在其生命周期中的状况建模。体在其生命周期中的状况建模。n(2) (2) 转换转换n转换包括事件和动作。事件是发生在时间空间上的一点值得注转换包括事件和动作。事件是发生在时间空间上的一点值得注意的事情。动作是原子性的,它通常表示一个简短的计算处理意的事情。动作是原子性的,它通常表示一个简短的计算处理过程过程( (如赋值操作或算术计算如赋值操作或算术计算) )。 50使用使用Rational RoseRational Rose建立建立用用户登登陆状态图状态图 51状态图建模要点
55、状态图建模要点 n(1) (1) 识识别别一一个个要要对对其其生生命命周周期期进进行行描描述述的参与行为的类;的参与行为的类;n(2) (2) 对对状状态态建建模模,即即确确定定对对象象可可能能存存在在的状态;的状态;n(3) (3) 对对事事件件建建模模,即即确确定定对对象象可可能能存存在在的事件;的事件;n(4) (4) 对对动动作作建建模模,即即确确定定当当转转变变被被激激活活时,相应被执行的动作;时,相应被执行的动作;n(5) (5) 对建模结果进行精化和细化。对建模结果进行精化和细化。 52理解活动图理解活动图 n活活动动图图( (Activity Activity Diagram)
56、Diagram)主主要要描描述述操操作作( (方方法法) )实实现现中中所所完完成成的的工工作作及及用用况况实实例例或或对对象象中中的的活活动动。它它是是状状态态图图的的一一个个变变种种,与与状状态态图图的的区区别别是是:活活动动图图的的主主要要目目的的是是描描述述动动作作( (执执行行的的动动作作和和活活动动) )及及对对象象改改变变的的结结果果;活活动动图图中中的的动动作作可可以以放放在在泳泳道道中,泳道聚合一组活动,并指定负责人和所属组织。中,泳道聚合一组活动,并指定负责人和所属组织。n主要元素有:主要元素有:n(1) (1) 泳道泳道( (Swimlane)Swimlane) n(2)
57、 (2) 活动活动( (Activity)Activity) n(3) (3) 状态转移状态转移( (State Transition)State Transition) n(4) (4) 决定决定( (Decision)Decision) 53用用Rational RoseRational Rose建立建立求求职者模者模块中的中的“搜索工作搜索工作”活动图活动图 54活动图建模要点活动图建模要点 n在建模的过程中,我们通常通过以下步骤实现:在建模的过程中,我们通常通过以下步骤实现:n(1) (1) 识别要对其工作流进行描述的类;识别要对其工作流进行描述的类;n(2) (2) 对动态状态建模;
58、对动态状态建模;n(3) (3) 对动作流建模;对动作流建模;n(4) (4) 对对象建模;对对象建模;n(5) (5) 对建模结果进行细化。对建模结果进行细化。n系统的动态模型建模,有点类似于系统的动态模型建模,有点类似于“业务模型业务模型”建模。在建模。在“功能模型、业务模式、数据模型功能模型、业务模式、数据模型”中,中,我们已经介绍了两个,剩下的数据模型建模,将我们已经介绍了两个,剩下的数据模型建模,将在下一节中介绍。在下一节中介绍。 55用用Rational RoseRational Rose进行数据建模进行数据建模 nRational RoseRational Rose不仅支持需求阶
59、段对系统进行功能不仅支持需求阶段对系统进行功能建模,支持设计阶段对系统进行详细设计,而且还建模,支持设计阶段对系统进行详细设计,而且还支持持久层数据库建模,即支持持久层数据库建模,即“数据模型数据模型” 建模。建模。利用利用Rational RoseRational Rose中的中的 Data ModelerData Modeler,可以进行可以进行数据库建模,它允许将数据库建模,它允许将UMLUML对象模型用作逻辑模型,对象模型用作逻辑模型,将数据模型用作物理模型,并协助用户保持这两者将数据模型用作物理模型,并协助用户保持这两者之间的同步。之间的同步。 nRational RoseRatio
60、nal Rose不仅支持需求阶段对系统进行功能不仅支持需求阶段对系统进行功能建模,支持设计阶段对系统进行详细设计,而且还建模,支持设计阶段对系统进行详细设计,而且还支持持久层数据库建模,即支持持久层数据库建模,即“数据模型数据模型” 建模。建模。利用利用Rational RoseRational Rose中的中的 Data ModelerData Modeler,可以进行可以进行数据库建模,它允许将数据库建模,它允许将UMLUML对象模型用作逻辑模型,对象模型用作逻辑模型,将数据模型用作物理模型,并协助用户保持这两者将数据模型用作物理模型,并协助用户保持这两者之间的同步。之间的同步。 56创建
61、数据模型的主要步骤创建数据模型的主要步骤 n(1) (1) 创建一个数据库;创建一个数据库;n(2) (2) 创创建建一一个个支支持持数数据据建建模模的的schemaschema,并并且且将将该该计计划划指指派派给给数数据库;据库;n(3) (3) 创建域包和域;创建域包和域;n(4) (4) 创建表;创建表;n(5) (5) 在在表表中中创创建建一一些些详详细细的的要要素素( (约约束束、触触发发器器、索索引引、主主键键) );n(6) (6) 添加表之间的关系和外键;添加表之间的关系和外键;n(7) (7) 创建视图创建视图( (view)view);n(8) (8) 基于数据模型生成对象
62、模型;基于数据模型生成对象模型;n(9) (9) 生成数据库;生成数据库;n(10) (10) 在更新一些元素过程中保持数据库和数据模型的同步。在更新一些元素过程中保持数据库和数据模型的同步。 n上述步骤不是都是必须的,但创建数据库和计划是必须要做的。上述步骤不是都是必须的,但创建数据库和计划是必须要做的。 57对网上招聘系统的用户进行数据建模对网上招聘系统的用户进行数据建模 58数据模型和对象模型的转换数据模型和对象模型的转换 nRational RoseRational Rose可以由一个数据模型自动生成一个对象模型,同可以由一个数据模型自动生成一个对象模型,同时也可以由一个对象模型自动生
63、成一个数据模型。时也可以由一个对象模型自动生成一个数据模型。Rational Rational RoseRose的这一特性保证了数据的一致性。的这一特性保证了数据的一致性。n由数据模型生成对象模型的一步骤如下:由数据模型生成对象模型的一步骤如下:n(1) (1) 展展开开浏浏览览器器窗窗口口中中的的逻逻辑辑视视图图,打打开开【SchemasSchemas】包包,选选定定要进行转化的数据模型所在的计划要进行转化的数据模型所在的计划( (schema)schema);n(2) (2) 单单击击鼠鼠标标右右键键,选选择择【Data Data ModelerModeler】选选项项,在在下下级级菜菜单
64、单中中选选择择【Transform Transform to to Object Object ModelModel】选选项项, ,出出现现如如图图2-522-52所所示示对对话框;话框;n(3) (3) 在在对话框中框中输入目入目标对象模型包的名字以及它的前象模型包的名字以及它的前缀; n (4) (4) 单击【单击【OKOK】按钮,生成对象模型,如图按钮,生成对象模型,如图2-532-53所示;所示;n由对象模型生成数据模型,是数据模型生成对象模型的逆过程,由对象模型生成数据模型,是数据模型生成对象模型的逆过程,请读者自行练习一下。请读者自行练习一下。 59图图2-52 2-52 数据模型
65、生成对象模型数据模型生成对象模型 60由数据模型生成数据库由数据模型生成数据库 n使使用用Rational Rational RoseRose,可可以以在在任任何何时时候候从从数数据据模模型型中中导导出出数数据据库库或或者者是是数数据据库库定定义义语语言言DDLDDL的的脚脚本本。由由数数据据模模型型生生成成数数据据库库的的一一般过程为:般过程为:n1 1展展开开浏浏览览器器窗窗口口中中的的逻逻辑辑视视图图,打打开开【SchemasSchemas】包包,选选定定要要进行转化的数据模型所在的计划进行转化的数据模型所在的计划( (schema)schema);n2 2单击鼠标右键,选择【单击鼠标右
66、键,选择【Data ModelerData Modeler】选项,在下级菜单中选项,在下级菜单中选择【选择【Forward Engineer.Forward Engineer.】选项选项, ,出现如图出现如图2-542-54所示对话框;所示对话框;n 3 3单击【单击【NextNext】按钮,进入如图按钮,进入如图2-552-55所示对话框;所示对话框; n4. 4. 在对话框中选择所需要的数据库元素;在对话框中选择所需要的数据库元素;n5. 5. 单击【单击【NextNext】按钮,进入图按钮,进入图2-562-56对话框;对话框; n6 6 单击【单击【BrowseBrowse】按钮按钮,
67、 ,保存保存DDLDDL脚本,单击【脚本,单击【NextNext】按钮,进按钮,进入如图入如图2-572-57所示对话框所示对话框( (注:如果要立即执行脚本文件,选中【注:如果要立即执行脚本文件,选中【ExecuteExecute】选项选项, ,填写所有数据库连接信息填写所有数据库连接信息) ); n7. 7. 单击【单击【FinishFinish】按钮按钮, ,保存成功。保存成功。 61从数据模型中导出数据库的窗口从数据模型中导出数据库的窗口 62Rational RoseRational Rose逆向工程逆向工程 n逆向工程逆向工程( (Reverse Engineer)Reverse
68、Engineer)是从现有系统的代码,是从现有系统的代码,逆向生成软件开发周期中原先的模型。其目的是通逆向生成软件开发周期中原先的模型。其目的是通过生成的模型,可以了解系统原来的组织和结构,过生成的模型,可以了解系统原来的组织和结构,方便团队的讨论和进一步的改进,从而实现了通过方便团队的讨论和进一步的改进,从而实现了通过Rational RoseRational Rose可以得到系统代码所对应的可以得到系统代码所对应的UMLUML框图框图( (类图、数据模型图、组件图等类图、数据模型图、组件图等) )。nRational RoseRational Rose所支持的逆向工程功能强大,它不仅所支持
69、的逆向工程功能强大,它不仅可以支持多种高级语言可以支持多种高级语言( (JavaJava、C+C+、VBVB、VCVC、CORBACORBA等等) )的逆向工程,而且还支持多种数据库的逆向工程,而且还支持多种数据库( (SQLServerSQLServer、OracleOracle、DB2DB2、SybaseSybase等等) )数据库的逆向工程。数据库的逆向工程。 63网上求网上求职招聘系招聘系统 JavaJava代码逆向工程代码逆向工程 n(1) (1) 单击菜单栏上的【单击菜单栏上的【ToolsTools】选项,选择子菜单【选项,选择子菜单【Java/J2EEJava/J2EE】, ,在
70、其子菜单中选择【在其子菜单中选择【Reverse Engineer.Reverse Engineer.】选项,弹出如图选项,弹出如图2-582-58所示的对话框;所示的对话框;n(2) (2) 单击【Edit CLASSPATH.Edit CLASSPATH.】按按钮,弹出如出如图2-592-59所示所示对话框;框;添加需要添加需要进行逆向工程的代行逆向工程的代码的路径;的路径; n(3) (3) 单击“ClasspathsClasspaths”栏上的上的“New(Insert)New(Insert)”,新建一个路径,如新建一个路径,如图2-602-60所示;所示; n(4) (4) 单击【单
71、击【】按钮,添加要进行逆向工程的代码所在的路径;】按钮,添加要进行逆向工程的代码所在的路径;n(5) (5) 路路径径添添加加完完毕毕,返返回回图图2-582-58所所示示对对话话框框,在在“ClasspathsClasspaths”区的路径中选择进行逆向工程的代码;区的路径中选择进行逆向工程的代码;n(6) (6) 点点击【Add AllAdd All】按按钮,再点,再点击【Select AllSelect All】按按钮,如,如图2-2-6161所示;所示; n(7) (7) 点击【点击【ReverseReverse】按钮,开始进行逆向工程;按钮,开始进行逆向工程;n(8) (8) 逆向工
72、程逆向工程结束,点束,点击【DoneDone】按按钮,在,在浏览器窗口中可以看器窗口中可以看到如到如图2-622-62所示的所示的树. . 64逆向工程操作窗口逆向工程操作窗口 65设置全局选项设置全局选项 n(1) (1) 设置字体设置字体n在如图在如图2-632-63所示的窗口中,单击【所示的窗口中,单击【FontFont】按钮,弹按钮,弹出如图出如图2-642-64所示对话框,可以设置字体。所示对话框,可以设置字体。 n (2) (2) 设置颜色设置颜色n在如图在如图2-632-63所示的窗口中,单击【所示的窗口中,单击【Line ColorLine Color】按按钮,设置所选对象的边框的颜色,单击【钮,设置所选对象的边框的颜色,单击【Fill Fill ColorColor】按钮,可以在图按钮,可以在图2-652-65中选择要填充的颜色。中选择要填充的颜色。 66设置全局选项的窗口设置全局选项的窗口