




已阅读5页,还剩61页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第2章RationalRose建模实践指南 2 本章导读 RationalRose是面向对象分析与设计建模最好的工具 它的应用领域宽 应用时间长 也较为成熟 但是在国内普及面不广 当前 它是IT企业常用的CASE工具之一 计算机及软件专业方向的大学生 研究生和软件工程师必须学会它 掌握它 并用它来解决面向对象分析与设计建模的实际问题 RationalRose的理论基础是统一建模语言UML 在学习RationalRose之前 必须对UML有所了解 由于UML本身也较为复杂 所以学习RationalRose比学习PowerDesigne要困难得多 但是 天下无难事 只要肯攀登 3 本章对读者的要求 4 RationalRose概述 解决面向对象问题的核心是建模 即建立系统的Rose模型 软件系统内部的高内聚 低耦合程度以及维护成本是软件设计的所关注的问题 RationalRose是基于UML而产生的 是软件开发过程中的不可或缺的一个建模工具 5 RationalRose主要特点 支持多种语言 如Ada CORBA VisualBasic Java等 支持模型的Internet发布 可以生成简单 清晰且定制灵活的文档 双向工程保证了模型和代码高度一致 支持逆向工程 建立代码框架 支持多种关系型数据库的建模 从需求分析到测试 在整个软件生命周期中 都为团队开发提供强有力的支持 6 RationalRose的作用 整个开发团队可以使用用况图 来获得一个系统高层次的视图 并且可以协商项目的范畴 项目经理可以使用用况图和文档 把项目分解成便于管理的多个模块 系统分析员和客户在看到用况规格描述文档的时候 就可以明白系统将会提供什么样的功能 技术编写者在看到用况规格描述文档时 就可以着手编写用户手册和培训计划 系统分析员和软件开发者在看到时序图和协作图时 就可以明白整个系统的逻辑流程 对象以及对象之间的消息 7 RationalRose的作用 质量检测员可以使用用况文档 时序图 协作图获得测试脚本所需要的信息 软件开发人员使用类图和状态图 可以获得系统模块的详细视图以及模块之间的关系 部署人员在使用组件图和部署图时 就可以明白哪些是可执行文件或DLL文件 以及其他的一些组件是如何创建的 这些组件该部署在网络中哪些地方 整个团队使用Rose模型 就可以确定从需求到编码的整个过程 并且从编码到需求这个逆过程也是可以追踪的 8 安装RationalRose 1 双击RationalRose2003的安装程序 进入安装界面 如图2 1所示 2 单击 下一步 按钮 进入如图2 2所示界面 此时用户可以选择要安装的产品 一般选择 RationalRoseEnterpriseEdition 3 单击 下一步 按钮 进入如图2 3所示界面 在图2 3中选择 DesktopinstallationfromCD 选项 表示创建一个本地的应用程序而不是网络的 4 单击 下一步 按钮 进入安装向导界面 如图2 4所示 5 单击 Next 按钮 进入产品声明界面 如图2 5所示 6 单击 Next 按钮 进入协议许可界面 如图2 6所示 7 单击 Next 按钮 进入安装路径设置界面 如图2 7所示 单击 Change 按钮设置安装路径 8 单击 Next 按钮 进入安装设置界面 如图2 8所示 9 单击 Next 按钮 进入开始安装界面 如图2 9所示 10 单击 Install 按钮 开始拷贝文件到安装目录 如图2 10所示 11 安装完毕 将自动弹出如图2 11所示对话框 用户必须对该软件进行注册方能使用该软件 12 安装成功 进入RationalRose界面 如图2 12所示 9 安装界面 10 RationalRose的使用 Rose是菜单驱动式的CASE工具 可以通过工具栏使用其常用功能 如图2 13所示 Rose支持8种不同类型的UML图 用况图 UseCaseDiagram 活动图 ActivityDiagram 时序图 SequenceDiagram 协作图 CollaborationDiagram 类图 ClassDiagram 状态图 StatechartDiagram 组件图 ComponentDiagram 部署图 DeploymentDiagram 11 Rose界面简介 Rose主界面如图2 13所示 它由5个部分组成 1 Browser窗口 浏览器窗口 用于快速启动模型 2 Documentation窗口 文档窗口 用于快速访问通用命令 3 Diagram窗口 编辑区 用于显示和编辑多个UML图 4 日志窗口 用于观看错误和各种各样命令的结果报告 5 工具栏窗口 显示有关工具图标 12 图2 13Rose的主界面 13 Rose建模简介 Rose创建的模型文件后缀名为 mdl 模型的创建的一般步骤 1 创建模型点击菜单栏中 File 项 选择 New 选项 或者直接点击标准菜单栏中的 CreateNewModelorFile 按钮 弹出如图2 13所示的对话框 选择要用到的框架 单击 OK 按钮 或者 Cancel 按钮 2 保存模型保存模型是创建模型的逆过程 点击菜单栏中 File 项 选择 Save 选项 或者直接点击标准菜单栏中的 SaveModel File orScript 按钮 3 发布模型点击菜单栏中的 Tools 项 选择 WebPublisher 项 跳出如图2 14所示对话框 在图2 14中 选择要发布到web页面上的内容和HTML页面要保存的位置 单击 Publish 按钮 Rose模型就发布到web页面上 打开所保存的 html文件 就可以看到Rose模型 如图2 15所示 14 发布模型和保存 html文件的窗口 15 用RationalRose设计用况模型 用况模型 UseCaseModel 又称为用例模型 它是所有用况 参与者以及相关关系的集合 是关于系统功能和环境的模型 一个用况就是系统要实现的一项功能 即使用用况来描述系统要做什么 用况模型是软件需求分析结果的可视化表示 另外 参考文献 1 中所讲的 业务模型 功能模型 数据模型 这三个模型的建模思想与建模方法论 也可以用建模工具RationalRose来加以实现 16 理解用况模型中的元素 1 用况图 UseCaseDiagram 确定系统中所包含的参与者 用况和两者之间或其自身的关系 用况图是基于系统要实现的功能的一个可视化描述 1 参与者 Actor 2 用况 UseCase 用况是用来描述参与者使用系统 以达到某个目标时所涉及到的一系列的场景的集合 一个用况的核心并不是上述的图标 而是一个规格化的叙述型文档 它描述了参与者要实现某项功能的事件流程 展示和体现了其所描述的过程中的需求情况 用况名称一般以 做什么 即 动宾词组 形式来命名 3 用况和参与者及自身的关系泛化关系 generalization 包含关系 include 扩展关系 extend 17 理解用况模型中的元素 2 用况规约 UseCaseSpecification 所谓规约 就是业务规则的规格说明 针对每一个用况 都应该有一个用况规约文档与之相对应 以描述该用况的细节内容 每一个用况的用况规约 都应该包含以下内容 1 用况名称 UseCaseName 用况的名称一般由 动词 名词 构成 简单说明 做什么 2 简要说明 BriefDescription 简要介绍该用况的作用和目的 3 前置条件 PreviousCondition 系统在执行该用况前必须处在的状态 4 事件流 FlowofEvent 5 用况场景 UseCaseScenario 包括成功场景和失败场景 场景主要由基本流和备选流组合而成 6 特殊需求 SpecialRequirement 描述与该用况相关的非功能性需求 性能 可靠性 可用性和可扩展性等 以及涉及约束 所使用的操作系统 开发工具等 7 后置条件 PostCondition 系统在执行完该用况之后应该处在的状态 18 用况建模 1 创建用况图 1 选定浏览器窗口中的 UseCaseView 2 单击鼠标右键 在弹出的快捷菜单中选择 New 3 在菜单 New 产生的下级菜单中选择要新建的图 UseCaseDiagram 以上步骤如图2 19所示 生成的用况图 如图2 20所示 19 用况图 20 用况建模 2 设定编辑区工具栏用户可以根据自己的需要 往当前编辑区工具栏中添加按钮 用户可以根据以下两种方法打开 自定义工具栏 1 选定编辑区工具栏 单击鼠标右键 选择 Customize 即跳出如图2 21的对话框 2 选择菜单 View 单击 Toolbars 在出现的下级菜单中选择 Configure 弹出如图2 21所示对话框 3 创建参与者 用况参与者 用况 以及两者的关系 是用况图的主要组成元素 下面有两种方式创建用况图所需的元素 1 单击编辑区工具栏的图标 然后在编辑区单击鼠标左键 2 在浏览器窗口中创建所需要的元素 将浏览器中的元素拖动编辑区 21 图2 21定义工具栏 22 网上求职招聘系统用况建模案例分析1 对系统的求职者模块进行用况建模 23 2 对系统的招聘者模块进行用况建模 24 3 对系统的管理员模块进行用况建模 25 4 对系统总体功能进行建模 26 5 建立用况规约 UseCaseSpecification 下面以求职者模块中的 修改密码 用况为例 创建它的用况规约 在用况 修改密码 上单击鼠标右键 选择菜单 OpenSpecification 从而打开如图2 26所示对话框 用户可以在用况属性设置标签中对一些属性进行设置 Name 名称 设置用况的名称 Stereotype 类型 用况的类型 Rank 级别 对用况进行层次划分 在图2 26所示的用况属性设置窗口中 我们通常将用况规约写在 Documentation 对象窗口中 用况 修改密码 的用况规约如表2 3所示 27 图2 26用况属性设置窗口 28 6 创建活动图描述用况 29 用RationalRose设计领域模型 领域模型是什么 它是某行业领域内现实世界概念类的一种表示 而不是软件组件的一种表示 领域模型不是描述软件类的图集 也不是有着职责的软件对象 通俗地说 领域模型是某行业领域相关的实体的集合 是某行业领域中的任何事物或者是人的可视化的表示 它关注的是实体本身 而不在于它们的属性和操作 领域模型是概念类或者系统相关的对象的可视化表示 领域模型一般包含的元素有 概念类 概念类之间的关联 概念类的基本属性 由此可见 领域模型有点类似于概念数据模型 即有点类似于实体关系图 或E R模型 创建领域模型 实际上就是在建立类图 ClassDiagram 操作方法如下 选定浏览器窗口中的用况视图 单击鼠标右键 选择菜单 New 在下级菜单中选择 ClassDiagram 菜单项 30 使用RationalRose建立领域模型 打开新建的领域模型 即类图 在编辑区工具栏中单击 Class 按钮 在编辑区单击任何位置 如果要对类进行划分 可以在浏览器窗口中创建类所在的包 然后在包中创建相关的类 类图如图2 28所示 类之间的最为常见的关系有4种 关联 泛化 聚合 依赖 关联是描述相关的两个事物之间进行通信的一种关系 类之间的关联 Association 关系具有一些属性 用户可以根据需要 在图2 29所示的关联关系属性设置对话框中进行设置 31 领域模型窗口 32 网上求职招聘系统的领域模型案例分析1 创建求职者领域模型 33 2 添加属性 完整的求职者领域模型如图2 31所示 34 用RationalRose设计类模型和包图 建立类模型和包图 是静态角度来分析系统的 因此 类图和包图实际上都属于系统的静态模型 这一节我们将讨论如何在RationalRose的逻辑视图中 创建类以及如何将类组织成包 类图 ClassDiagram 是面向对象系统的核心 它的主要元素包括类 对象 接口以及它们之间的关系 对一个复杂的面向对象的系统进行建模 我们需要建立大量的类 接口 关联以及UML图 以达到确定系统需求以及系统设计的目的 如果将这些元素凌乱 分散地放在用况视图 UseCaseView 逻辑视图 LogicalView 组件视图 ComponentView 中 就会对维护和控制系统的需求和总体结构造成很大的麻烦 设计一些良好的包 将建模过程中的元素有效地组织起来 就可以保证高内聚和低耦合 同时通过控制包的可见性 就能有效地控制对包中的内容的访问 包图的元素包括包 包与包之间的联系 包图实际上是通过类图 ClassDiagram 来实现 35 创建类图 36 创建包图 37 网上求职招聘系统类图和包图案例分析 该类图有7个实体类 UserBean 用户实体 PersonBean 求职者实体 CompanyBean 企业实体 AdminBean 管理员实体 ApplyInfoBean 求职信息实体 NewsBean 新闻实体 JobInfoBean 招聘信息实体 图中只展示了它们之间存在的主要关系 对于PersonBean CompanyBean AdminBean而言 他们首先都是用户 因此他们与UserBean之间存在泛化关系 PersonBean与ApplyInfoBean之间存在 release 发布 关联关系 AdminBean与NewBean之间存在 manage 管理 关联关系 CompanyBean与JobInfoBean之间存在 发布 putout 关联关系 38 39 类与代码的对应关系 在RationalRose中 上述的实体类可以使用正向工程生成与之对应的代码 操作过程如下 1 选择类框图中需要生成代码的类 2 单击 Tools 菜单 选择 Java J2EE 菜单项 在其下级菜单中选择 GenerateCode 可以看到如图2 35所示对话框 3 单击 Assign 按钮 将Rose中的类部署到类路径 该路径可以通过单击 Edit 按钮来设置 4 单击 OK 按钮 生成代码框架 5 代码生成完毕 网上求职招聘系统分为三个模块 求职者模块 招聘者模块 管理员模块 每个模块的设计都是按照MVC架构设计的 边界类包集合了表现层的所有类 边界类 控制包集合了控制层的所有类 控制类 实体包集合了所有业务逻辑层和数据的类 实体类 40 图2 35生成代码 41 用RationalRose设计系统动态模型 系统的动态模型有点类似于 业务模型 它描述了系统随时间变化的行为 这些行为是用从静态模型中抽取的系统的瞬间值的变化来描述的 在UML的表现上 动态模型主要是建立系统的交互图 InteractionDiagram 和行为图 交互图包括时序图和协作图 行为图包括状态图和活动图 交互图描述了一个交互 它由一组对象和它们之间的关系组成 并且还包括在对象之间传递的消息 42 动态模型 系统的动态模型有点类似于 业务模型 它描述了系统随时间变化的行为 这些行为是用从静态模型中抽取的系统的瞬间值的变化来描述的 在UML的表现上 动态模型主要是建立系统的交互图 InteractionDiagram 和行为图 交互图包括时序图和协作图 行为图包括状态图和活动图 交互图描述了一个交互 它由一组对象和它们之间的关系组成 并且还包括在对象之间传递的消息 43 理解时序图 时序图又叫顺序图 它是强调消息时间顺序的交互图 描述了类以及类间相互交换以完成期望行为的消息 时序图一般包括如下元素 类角色 生命线 激活期和消息 1 类角色 ClassRole 类角色代表时序图中的对象在交互中所扮演的角色 类角色一般代表实际的对象 2 生命线 Lifeline 生命线代表时序图中的对象在一段时期内的存在 每个对象底部中心都有一条垂直的虚线 这就是对象的生命线 对象间的消息存在于两条虚线间 3 激活期 Actiation 激活期代表时序图中的对象执行一项操作的时期 每条生命线上的窄的矩形代表活动期 4 消息 Message 消息是定义交互和协作中交换信息的类 用于对实体间的通信内容建模 信息用于在实体间传递信息 允许实体请求其他的服务 类角色通过发送和接收信息进行通信 44 网上求职招聘系统的登录操作时序图 45 时序图建模要点 1 设置交互的语境 这些语境可以是系统 子系统 操作 类 用况和协作的一个脚本 2 通过识别对象在交互中扮演的角色 根据对象的重要性 将其从左向右的方向放在时序图中 3 设置每个对象的生命线 一般情况下 对象存在于交互的整个过程 但它也可以在交互过程中创建和撤销 4 从引发某个交互的消息开始 在生命线之间按自上而下的顺序画出随后的消息 5 设置对象的激活期 这可以可视化实际计算发生时的时间点 可视化消息的嵌套 6 如果需要设置时间或者空间的约束 可以为每个消息附上合适的时间和空间的约束 7 给某控制流的每个消息附上前置条件或者后置条件 这可以更详细地说明这个控制流 46 理解协作图 协作图只对相互间有交互作用的对象和这些对象间的关系建模 而忽略了其他对象和关联 协作图一般包括如下元素 类角色 关联角色和消息流 1 类角色 ClassRole 类角色代表协作图中对象在交互中所扮演的角色 矩形中的对象代表类角色 类角色的代表参与交互的对象 它的命名方式和对象的命名方式一样 2 关联角色 AssociationRole 关联角色代表协作图中连接在交互中所扮演的角色 连接 即连线或路径 代表关联角色 3 消息流 MessageFlow 消息流代表协作图中对象间通过连接发送的消息 47 网上求职招聘系统的登录操作协作图 48 协作图建模要点 1 设置交互的语境 语境可以是系统 子系统 操作 类 用况或用况的脚本 2 通过识别对象在交互中所扮演的角色 开始绘制协作图 把这些对象作为图的顶点放在协作图中 3 在识别了协作图对象之后 为每个对象设置初始值 如果某对象的属性值 标记值 状态或角色在交互期发生变化 则在图中放置一个复制对象 并用变化后的值更新它 然后通过构造型 或 的消息将两者连接 4 设置了对象的初始值后 根据对象间的关系开始确定对象间链接 一般先确定关联的链接 因为这是最主要的 它代表了结构的链接 5 从引起交互的消息开始 按消息的顺序 把随后的消息附到适当的链接上 这描述了对象之间消息传递 可以用带小数点的编号来表达嵌套 6 如果需要说明时间或空间的约束 可以用适当的时间或空间约束来修饰每个消息 7 在建模中 如果想更详细地描述这个控制流 可以为交互过程的每个消息附上前置条件和后置条件 49 理解状态图 状态图是UML中对系统动态方面建模的图之一 状态图是通过类对象的生命周期模型 来描述对象随时间变化的动态行为 状态图显示了一个状态机 它基本上是一个状态机中的元素的一个投影 这就意味着状态图包括状态机的所有特性 状态图和其他图的区别在于它的内容 状态图通常包括如下内容 状态 转换 1 状态状态定义对象在其生命周期中的条件或状况 在此期间 对象满足某些条件 执行某些操作或等待某些事件 状态用于对实体在其生命周期中的状况建模 2 转换转换包括事件和动作 事件是发生在时间空间上的一点值得注意的事情 动作是原子性的 它通常表示一个简短的计算处理过程 如赋值操作或算术计算 50 使用RationalRose建立用户登陆状态图 51 状态图建模要点 1 识别一个要对其生命周期进行描述的参与行为的类 2 对状态建模 即确定对象可能存在的状态 3 对事件建模 即确定对象可能存在的事件 4 对动作建模 即确定当转变被激活时 相应被执行的动作 5 对建模结果进行精化和细化 52 理解活动图 活动图 ActivityDiagram 主要描述操作 方法 实现中所完成的工作及用况实例或对象中的活动 它是状态图的一个变种 与状态图的区别是 活动图的主要目的是描述动作 执行的动作和活动 及对象改变的结果 活动图中的动作可以放在泳道中 泳道聚合一组活动 并指定负责人和所属组织 主要元素有 1 泳道 Swimlane 2 活动 Activity 3 状态转移 StateTransition 4 决定 Decision 53 用RationalRose建立求职者模块中的 搜索工作 活动图 54 活动图建模要点 在建模的过程中 我们通常通过以下步骤实现 1 识别要对其工作流进行描述的类 2 对动态状态建模 3 对动作流建模 4 对对象建模 5 对建模结果进行细化 系统的动态模型建模 有点类似于 业务模型 建模 在 功能模型 业务模式 数据模型 中 我们已经介绍了两个 剩下的数据模型建模 将在下一节中介绍 55 用RationalRose进行数据建模 RationalRose不仅支持需求阶段对系统进行功能建模 支持设计阶段对系统进行详细设计 而且还支持持久层数据库建模 即 数据模型 建模 利用RationalRose中的DataModeler 可以进行数据库建模 它允许将UML对象模型用作逻辑模型 将数据模型用作物理模型 并协助用户保持这两者之间的同步 RationalRose不仅支持需求阶段对系统进行功能建模 支持设计阶段对系统进行详细设计 而且还支持持久层数据库建模 即 数据模型 建模 利用RationalRose中的DataModeler 可以进行数据库建模 它允许将UML对象模型用作逻辑模型 将数据模型用作物理模型 并协助用户保持这两者之间的同步 56 创建数据模型的主要步骤 1 创建一个数据库 2 创建一个支持数据建模的schema 并且将该计划指派给数据库 3 创建域包和域 4 创建表 5 在表中创建一些详细的要素 约束 触发器 索引 主键 6 添加表之间的关系和外键 7 创建视图 view 8 基于数据模型生成对象模型 9 生成数据库 10 在更新一些元素过程中保持数据库和数据模型的同步 上述步骤不是都是必须的 但创建数据库和计划是必须要做的 57 对网上招聘系统的用户进行数据建模 58 数据模型和对象模型的转换 RationalRose可以由一个数据模型自动生成一个对象模型 同时也可以由一个对象模型自动生成一个数据模型 RationalRose的这一特性保证了数据的一致性 由数据模型生成对象模型的一步骤如下 1 展开浏览器窗口中的逻辑视图 打开 Schemas 包 选定要进行转化的数据模型所在的计划 schema 2 单击鼠标右键 选择 DataModeler 选项 在下级菜单中选择 TransformtoObjectModel 选项 出现如图2 52所示对话框 3 在对话框中输入目标对象模型包的名字以及它的前缀 4 单击 OK 按钮 生成对象模型 如图2 53所示 由对象模型生成数据模型 是数据模型生成对象模型的逆过程 请读者自行练习一下 59 图2 52数据模型生成对象模型 60 由数据模型生成数据库 使用RationalRose 可以在任何时候从数据模型中导出数据库或者是数据库定义语言DDL的脚本 由数据模型生成数据库的一般过程为 1 展开浏览器窗口中的逻辑视图 打开 Schemas 包 选定要进行转化的数据模型所在的计划 schema 2 单击鼠标右键 选择 DataMod
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 百年老药阿司匹林80课件
- 2023年上海市上海市徐汇区斜土路街道招聘社区工作者真题带答案详解
- 2025年江西省高速公路投资集团有限责任公司招聘笔试备考题库附答案详解(a卷)
- 2025年黑龙江省五常市辅警招聘考试试题题库及答案详解(网校专用)
- 高温伺服阀力矩马达的工作特性及散热罩优化研究
- 2025年河北省定州市辅警招聘考试试题题库完整参考答案详解
- 债券研究-固收专题报告:全球价值链分工与关税博弈-关税成本由谁承担
- 语文(深圳卷)2025年中考考前押题最后一卷
- 临床抗生素耐药性与合理用药护理要点
- ISO9000质量管理体系
- 工程五金知识培训课件
- KCA试题库完整版
- 永久性用电施工方案
- 2024年新版药品管理法培训
- 柴油发电机组降噪解决方案
- 《老年人权益保障法》课件
- 2022年高中英语学科教学计划
- DB51T 2845-2021 连续玄武岩纤维生产原料技术规范
- 2025届湖南省高考化学第一轮复习模拟选择题-化学与生活43道(附答案)
- 生物化学检验技术 课件 第七章 糖代谢紊乱检验
- 物理-2025年中考终极押题猜想(广州专用)(原卷版)
评论
0/150
提交评论