- Rose简介
Rose是美国的Rational公司的面向对象建模工具,利用这个工具,可以建立用UML描述的软件系统的模型,而且可以自动生成和维护C++、Java、VB和Oracle等语言和系统的代码。
- Rational Rose在建模方面具有以下特点:
1.保证模型和代码高度一致。
Rose可以实现真正意义上的正向、逆向和双向工程。
2.支持多种语言。
Rose本身能够支持的语言包括C++、Visual C++、Java、Visual Basic、PowerBuilder等,还可为数据库应用产生数据库描述语言(DDL)。
3.为团队开发提供强有力的支持。
Rose提供了两种方式来支持团队开发:一种是采用SCM(软件配置管理)的团队开发方式;另一种是没有SCM情况下的团队开发方式。这两种方式为用户提供了极大的灵活性,用户可以根据开发的规模和开发人员数目以及资金情况等选择一种方式进行团队开发。
4.支持模型的Internet发布。
Rose的Internet Web Publisher能够创建一个基于Web的Rose模型的HTML版本,使得其他人员能够通过标准的浏览器,如IE来浏览该模型。
5.生成使用简单且定制灵活的文档。
Rose本身提供了直接产生模型文档的功能。
6.支持关系型数据库的建模。
利用Rose能够进行数据库的建模。Rose能够为ANSI、Oracle、SQL Server等支持标准DDL的数据库自动生成数据描述语言。
- Rational Rose 基本使用
Rational Rose主界面如下图所示::
Rose的工作区分为4个部分:浏览器、文档区、编辑区和日志区。
1.浏览器——用来浏览、创建、删除和修改模型中的模型元素。
浏览器是层次结构,组成树形视图样式,用于在Rose模型中迅速定位。浏览器可以显示模型中的所有元素,包括用例、关系、类和组件等,每个模型元素可能又包含其他元素。利用浏览器可以增加模型元素(参与者、用例、类、组件、图等);浏览现有的模型元素;浏览现有的模型元素之间的关系;移动模型元素;更名模型元素;将模型元素添加到图中;将文件或者URL链接到模型元素上;将模型元素组成包;访问模型元素的详细规范;打开图。
浏览器中有4个视图:Use Case View(用例视图)、Logical View(逻辑视图)、Component View(组件视图)、Deployment View(配置视图)。
2.文档区——用来显示和书写各个模型元素的文档注释。
文档区用于为Rose模型元素建立文档,例如对浏览器中的每一个参与者写一个简要定义,只要在文档区输入这个定义即可。
3.编辑区——用来显示和创作模型的各种图。
在编辑区中,可以打开模型中的任意一张图,并利用左边的工具栏对图进行浏览和修改。修改图中的模型元素时,Rose会自动更新浏览器。同样,通过浏览器改变元素时,Rose也会自动更新相应的图。这样就可以保证模型的一致性。
4.日志区——用来记录对模型所做的所有重要动作。
- Rational Rose的视图
Rose模型中有4个视图:Use Case View(用例视图)、Logical View(逻辑视图)、 Component View(组件视图)、Deployment View(配置视图)。每个视图针对不同的对象,具有不同的作用。
- Use Case View(用例视图)
用例视图包括系统中的所有参与者、用例和用例图,还可能包括一些时序图或协作图。用例视图是系统中与实现无关的视图,它只关注系统功能的高层形状,而不关注系统的具体实现方法。
通常在项目开始时要先确定,之后不轻易修改。
- Logical View(逻辑视图)
逻辑视图关注系统如何实现用例中提出的功能,提供系统的详细图形,描述组件之间如何关联。另外,逻辑视图还包括需要的特定类、类图和状态图。利用这些细节元素,开发人员可以构造系统的详细信息。
从逻辑视图中可以看到系统的逻辑结构。
- Component View(组件视图)
组件视图显示代码模块之间的关系。组件视图包含模型代码库、可执行文件、运行库和其他组件的信息。组件是代码的实际模块。在Rose中,组件和组件图在组件视图中显示。
从组件视图中可以看出系统实现的物理结构。
- Deployment View(配置视图)
配置视图关注系统的实际配置,可能与系统的逻辑结构有所不同。例如,系统可能使用三层逻辑结构,但配置可能是两层的。配置视图还要处理其他问题,如容错、网络带宽、故障恢复和响应时间等。
一个项目只有一个配置视图。
- 使用Rational Rose建模
1.创建模型
Rose模型文件的扩展名是.mdl,要创建模型,需要完成下列步骤:
- 从菜单栏选择“File→New”,或单击标准工具栏中的“New”按钮;
- 弹出如图2-14所示的对话框,选择要用到的框架,单击“OK”按钮。如果不使用模板,单击“Cancel”按钮。
如果选择使用模板,Rose会自动装入此模板的默认包、类和组件。模板提供了每个包中的类和接口,各有相应的属性和操作。通过创建模板,可以收集类与组件,便于作为基础设计和建立多个系统。如果单击“Cancel”按钮,表示创建一个空项目,用户需要从头开始创建模型。
2.保存模型
Rational Rose的保存,类似于其他应用程序。可以通过菜单或者工具栏来实现。
- 保存模型:通过选择菜单“File→Save”或者工具栏的“Save”按钮,来保存系统建模。
- 保存日志:激活日志窗口(见图2-30),通过菜单“File→Save Log As”来保存,或者右键单击日志窗口,在弹出的菜单中选择“Save Log As”命令来保存。
3.设置全局选项
全局选项可以通过菜单Tools→Options进行设置。
- 设置字体
在Options对话框中,可以设置文档窗口字体、日志窗口字体和默认字体,点击不同的Front按钮,就可以分别设置字体。
- 设置颜色
Rose中可以单独修改对象的颜色。点击Options对话框中的Line Color和Fill Color按钮,用户可以分别设置对象的线颜色和填充颜色。
二、UML中的模型元素
UML中的模型元素包括事物和事物之间的联系。事物是UML中重要的组成部分,它代表任何可以定义的东西。事物之间的关系能够把事物联系在一起,组成有意义的结构模型。每一个模型元素都有一个与之相对应的图形元素。模型元素的图形表示使UML的模型图形化,而图形语言的简明和直观使其成为人们建立问题模型的有力工具。
- 事物
UML模型中的事物可分为结构事物、动作事物、分组事物和注释事物4类。这些事物是UML模型中面向对象的基本的建筑块,他们在模型中属于静态部分,代表物理上或概念上的元素。
1. 结构事物
UML模型中最基本的结构化事物共有7种,类、接口、协作、用例、活动类、组件和节点。
(1)类(如图1-1所示)
- 对具有相同属性、方法、关系和语义的对象的抽象。
(2)接口(如图1-2所示)
- 类或组件提供特定服务的一组操作的集合。
- 描述了类或组件的对外可见的动作。
(3)协作(如图1-3所示)
- 定义了交互操作。
- 代表构成系统的模式的实现。
(4)用例(如图1-4所示)
- 描述系统对一个特定角色执行的一系列动作。
- 组织动作事物。
(5)主动类
- 类对象有一个或多个进程或线程的类。
(6)组件
- 实现了一个接口集合的物理上可替换的系统部分。
(7)节点
- 在运行时存在的一个物理元素。
- 代表一个可计算的资源。
- 通常占用一些内存和具有处理能力。
2. 动作事物
动作事物是UML模型中的动态部分,它们是模型的动词,代表时间和空间上的动作。交互和状态机是UML模型中最基本的两个动态事物元素,它们通常和其他的结构元素、主要的类、对象连接在一起。
(1)交互
一组对象在特定上下文中,为达到某种特定的目的而进行的一系列消息交换组成的动作。 在UML中消息表示为带箭头的直线,直线上标注操作名字,如图1-8所示。
(2)状态机
由一系列对象的状态组成。在UML中状态的图形表示如图1-9所示。
3. 分组事物
- 分组事物是UML模型中组织的部分。
- 分组事物只有一种,称为包。
- 包是一种将有组织的元素分组的机制。
- 包只存在于开发阶段。
4. 注释事物
UML模型的解释部分。在UML中注释事物的图形表示如图1-11所示。
- UML中的关系
UML中包括如下几种常用关系。
1.关联关系。关联关系连接元素和链接实例,它用连接两个模型元素的实线表示。如图1-12所示
2.依赖关系。依赖关系描述一个元素对另一个元素的依附。依赖关系用源模型指向目标模型的带箭头的虚线表示,如图1-13所示。
3.泛化关系。泛化关系也称为继承关系,这种关系意味着一个元素是另一个元素的特例。泛化用一条带空心三角箭头的实线表示,他从表示特殊性事物的模型元素指向表示一般性事物的模型元素,如图1-14所示。
4.实现关系。实现关系描述一个元素实现另一个元素。实现关系用一条带空心三角箭头的虚线表示,箭头从源模型指向目标模型,表示源模型元素实现目标元素模型,如图1-15所示。
5.聚合关系。聚合关系描述元素之间部分与整体的关系,即一个表示整体的模型元素可能由几个表示部分的模型元素聚合而成。聚合关系用一端带有空心小菱形的直线表示,小菱形端连接表示整体事物的模型元素,另一端连接表示部分事物的模型元素,如图1-16所示。
三、实例——图书馆管理系统的用例图
1.确定系统涉及的总体信息
-
- 读者:
- 借书
- 还书
- 书籍预定
- 图书馆管理员:
- 书籍借出处理
- 书籍归还处理
- 预定信息处理
- 系统管理员:
- 增加书目
- 删除或更新书目
- 增加书籍
- 减少书籍
- 增加读者账户信息
- 删除或更新读者账户信息
- 书籍信息查询
- 读者信息查询
2.确定系统的参与者
图书馆管理系统的参与者:
- 读者(借阅者)
- 图书馆管理员
- 图书馆管理系统维护者
3.确定系统的用例
- 借阅者请求服务的用例
-
- 登录系统
- 查询自己的借阅信息
- 查询书籍信息
- 预定书籍
- 借阅书籍
- 归还书籍
-
- 图书馆管理员处理借书、还书的用例
-
- 处理书籍借阅
- 处理书籍归还
- 删除预定信息
-
- 系统管理员进行系统维护的用例
-
- 查询借阅者信息
- 查询书籍信息
- 增加书目
- 删除或更新书目
- 增加书籍
- 删除书籍
- 添加借阅者账户
- 删除或更新借阅者账户
-
4.使用Rose绘制用例图的步骤
- 创建用例图
在浏览器窗口中,在“Use Case View”的图标上单击鼠标右键,在弹出的菜单中选择New →Use Case Diagram。此时,在“Use Case View”树形结构下多了一个名为“New Diagram”的图标,这个图标就是新建的用例图的图标。右键单击此图标,在弹出的菜单中选择Rename菜单项,可以为用例图重命名。
双击用例图图标,出现用例图的编辑区和编辑工具栏。
- 工具栏的定制
用户可以根据需要自行定制和添加工具栏中的图标按钮,操作方法为:右键单击工具栏的空白处,在弹出的菜单中选择Customize菜单项,出现“自定义工具栏”对话框,在此对话框中可以添加工具栏中的图标按钮。
- 添加参与者与用例
-
- 绘制参与者与用例。参与者和用例的绘制方法相同,首先点击工具栏中的图标按钮,然后在编辑区要绘制的地方单击鼠标左键。
- 设置用例的属性。在用例上双击,弹出用例属性设置对话框。也可以在选中的用例上单击右键,在弹出的菜单中选择“Open Specification...”,打开属性设置对话框。
- 设置参与者的属性。双击参与者图标,打开参与者属性设置对话框。也可以在选中的参与者上单击右键,在弹出的菜单中选择“Open Specification...”,打开属性设置对话框。
-
- 添加参与者与用例之间的关系
首先点击工具栏上表示关系的按钮,然后在参与者与用例之间拖动鼠标。此外,还可以修改关系的属性,具体方法可参照参与者与用例的属性设置方法。
- 添加用例之间的关系
用例之间的关系有关联关系(Association)、包含关系(Include)、扩展关系(Extend)和泛化关系(generalization)4种。关联关系的图标按钮为
,包含关系与扩展关系的图标按钮为
,泛化关系的图标按钮为
。
添加用例之间关系,其操作方法参照④。
5.图书馆管理系统中的用例图
- 借阅者请求服务的用例图(如图1-17所示)
[用例图说明]
-
-
- Search for book: 书籍查询用例。
- Reserve the book: 书籍预定用例。
- Logon the system: 登陆系统。
- Query Info: 查询借阅信息。
- Borrow the book: 借阅书籍。
- Return the book: 归还书籍。
- Return With Fine: 还书时缴纳罚金。
-
图1-17 借阅者请求服务的用例图
- 图书馆管理员处理借书、还书的用例图 (如图1-18所示)
[用例图说明]
- Get book: 书籍归还处理。
- Lend book: 书籍借阅处理。
-
Remove Reservation: 删除书籍预定信息。
图1-18 图书馆管理员处理借书、还书的用例图
- Get With Fine: 还书时收取罚金。
- Check user count: 检查用户借阅凭证的合法性。
-
系统管理员进行系统维护的用例图 (如图1-19所示)
图1-19系统管理员进行系统维护的用例图
[用例图说明]
- Query Borrower Info: 查询读者信息。
- Query Book Info: 查询书籍信息。
- Add Title: 增加书目。
- Remove or Update Title: 删除或更新书目。
- Add Book: 增加书籍。
- Remove Book: 删除书籍。
- Add Borrower: 添加借阅者账户。
- Remove or Update Borrower: 删除或更新借阅者账户信息。