好文档 - 专业文书写作范文服务资料分享网站

IBM Rational Rose 操作指南(下)

天下 分享 时间: 加入收藏 我要投稿 点赞

第八章 关系

介绍类之间的关系。关系是类之间的词法连接,使一个类了解另一个类的属性、操作和关系。 寻找关系的方法

1. 检查Sequence框图和Collaboration框图。如果类A向类B发出消息,则它们必然有关系。通过这种方法找到的一般是关联和依赖型关系。

2. 检查类的整体/部分关系。然和由其它类组成的类都参与聚集。 3. 检查类的泛化关系。

关系类型 关联

关联是类之间的词法连接,使一个类知道另一个类的公共属性和操作。

关联可以是双向的,但尽量调整为单向,这样可以保证被使用的类可以复用。 关联中被使用的类(即被指向的类)一般是作为另一个的类属性。 依赖

依赖显示一个类引用另一个类。依赖并不对关系的类增加属性,这是跟关联的主要区别。

再依赖中,因为一个类不是另一个的属性,所以实现中有三种方法。一是使用全局变量,二是使用本地变量,三是使用函数参数。

包之间也,可以存在依赖性。包A到包B的依赖性表示A中的某些类与B中的某些类有单向关系。 聚集

聚集是强关联。聚集是整体与部分的关系。 实现

显示类与接口、包与接口、组件与接口和用例与用例实现(协作)之间的关系。 泛化

表示两个模型元素(类、角色、用例和包)之间的继承关系。 设置关系规范 基数

表示某个时刻一个类的几个实例和另一个类的一个实例相关联。 角色

表示该类在关联关系中的作用 输出控制

在关联关系中,因为被关联类是关联类的一个属性,所以使用Public、Private、Protected、Package或implementation来设置该属性的可见性。 静态关系

类似输出控制,表示属性是否静态变量 朋友关系

表示Client类能访问Supplier类的非公共属性和操作。 包容

确定聚集关系生成的属性按值还是按引用包容。

限定符

用来缩小关联范围(???)

链接元素

产生一个类,与关联相关。用来设置关联属性。

使用Rose管理关系的技巧

1. 设置关系基数的方法:对关联(包括聚集)关系在规范窗口中Role Detail标签中设置;对其它关系,在规范窗口的general标签中设置。

2. 设置朋友关系的方法:对关联(包括聚集)关系在规范的Role Detail标签中设置;对其它关系,在规范窗口的general标签中设置。

3. 设置链接元素的方法:规范->Detail->Link Element。然后使用工具栏中的Association Class来关联连接元素和连接。 第九章 对象行为

本章介绍Statement框图。Statement框图显示了一个对象从创建到删除的生命周期。它可以建模类的动态行为。

Statement框图 状态

状态是对象存在的可能性条件。可以从两个地方确定对象状态:属性值和与其它对象的关系。在UML中用圆角矩形表示。 状态细节

一个状态可以加入五种信息:活动、进入操作、退出操作、事件、状态历史。

1. 活动:是对象在特定状态时进行的行为。活动是可中断的行为,可以在对象处于该状态时运行完毕,也可以在对象转入另一个状态时中断。活动在状态内显示,前面加do/。 2. 进入操作:时对象进入某个状态时发生的行为。进入操作时不可中断的,这是与活动的重要区别。前面加上entry/

3. 退出操作:与进入操作类似,但在退出某个状态时发生。也是不可中断的。前面加exit/。

4. 活动、进入操作、退出操作中的行为可以包括相另一对象发送事件。前面加^。例如:Do/ ^Target.Event(Arguments)。

5. 活动可以在收到某个事件之后发生。 转换

是从一个状态变成另一个状态。每个转换画成从原状态到新状态的箭头。可以自反。 转换细节

每个转换可以指定多个规范,包括事件、变元、保证条件、活动和发送事件。

1. 事件:导致对象从一种状态变成另一种状态。大多数转换都有事件,导致对象从一个状态转换到另一个状态。但也可以没有事件而自动过渡。对于自动过渡,对象在发生了所有进入操作、活动和退出操作后自动从一种状态转换到另一种状态。 2. 保证条件:控制转换何时发生和不发生。

3. 活动:转换中发生的不可中断的行为。进入和退出操作在状态内显示,定义每次对象进入或退出状态时的行为。但大多数活动时在过渡线上画出的,因为不是在每次对象进入或退出状态时发生。

开始状态

对象创建时的状态。

停止状态

对象删除时的状态。 使用嵌套状态与状态历史

可以在一个状态中嵌套一个或几个状态。嵌套状态称为子状态,而大状态称为父状态。如果两个或几个状态有相同的转换,可以组成父状态。然后不是对每个状态维护两个相同的转换,而是把转换移到父状态中。 父状态中可以有一个开始状态。开始状态表示父状态中的默认起点。对象首次进入父状态时,处于这种开始状态。

状态可以设置状态历史来记住对象状态。如果设置历史选项,则对象可以离开父状态,然后返回到正确状态。

使用Rose处理状态框图

1. 使用状态历史的方法:规范窗口->设置State/Activity History框。 第十章 Component视图

在Component视图中,我们着重考虑系统的实际结构。

组件是代码的物理模块。组件w包括代码库和运行文件。组件间唯一的关系类型是依赖。依赖要求一个类在另一个类之前编译。 组件类型

1. 组件(狭义):具有良好定义接口的软件模块,可以用stereotype字段指定组件类型(如ActiveX、Applet、Application、Dll和Executables等等)。

2. 子程序规范:子程序一般是一组子函数(roution)的集合。规范是显示规范。子程序中没有类定义。

3. 子程序体。子程序的实现体。

4. 主程序。主程序是包含程序根的文件。 5. 包规范:包是类的实现方法。包规范是头文件,包含类的函数原型信息。对应c++,包规范为h文件。

6. 包体:包含类操作代码。在c++中是cpp文件。 7. 任务规范和任务体:表示具有独立控制线程的包。 8. 数据库。

使用Rose管理Component框图 第十一章 Deployment视图

该视图考虑应用程序的物理部署。显示网络上的所有节点、节点间的连接和每个节点上运行的进程。

Deployment框图的组成 处理器

处理器是任何具有处理功能的机器。 可以设置其版型(按处理器进行分类)、特性(速度、内存等)、调度方法。 调度方法记录处理器使用的进程调度方法,包括 1. Preemptive 2. Noe-Preemptive 3. Cyclic

4. Executive 5. Manual

进程是一个处理器其上运行的但线程执行过程。 设备

没有处理功能的机器或硬件。 连接

处理器、设备之间的实际链接。通常,连接表示网络节点之间的物理网络连接。 第十二章 用Rational Rose生成代码和逆向转出工程代码简介 正向工程步骤 检查模型

检查模型的一致性。常见错误包括Sequence框图或Collaboration框图中的消息与操作不映射,以及对象和类不映射等。

创建组件

生成代码之前,必须现将类映射到相应的源代码文件。所以必须先创建组件。

将类映射到组件 设置代码生成属性

控制代码如何生成。可以参考下一章关于ANSI C++和Visual C++的说明。

选择类、组件、包

生成代码时,可以一次生成一个类、一个组件或一个包。

生成代码

代码生成的元素如下: 1. 类 2. 属性 3. 操作签名 4. 关系 5. 组件 6. 文档。

逆向工程

逆向工程使用源代码中的信息创建或更新Rose模型。Rose从代码读取组件、包、类、关系、属性和操作。

Rose进行正向工程和逆向工程的方法

1. 检查模型一致性的方法:Tools->Check Model。

2. 发现访问问题的方法:Report->Show Access Violations。

3. 浏览代码生成属性的方法:Tools->Options,然后选择具体的语言页签。在Type中选择设置的元素。

4. 在设置代码生成属性之前,最好先生成一个自己的备份。修改自己的备份。

第十三章 C++与Visual C++代码生成和逆向转出工程代码 C++生成代码的步骤

ANSI C++生成代码步骤 1. 创建组件 2. 将类赋予组件 3. 选择代码生成属性

4. 选择Class或Component框图中要生成的类和组件 5. 选择Tools->ANSI C++->Generate Code生成代码

6. 选择Tools->ANSI C++->Browse Header或Browse Body浏览生成的代码。 Visual C++生成代码步骤

1. 启动向导。Tools->Visual C++->Update Code

2. Rose显示Select Components和Classes窗口。在用Visual C++生成代码之前,必须将类赋予组件。

3. 如果没有将类赋予组件,选择Ctrl+R创建。 4. 改变组件和类的代码生成属性。 ANSI C++代码生成属性

方法:Tools->Options->ANSI C++页签。在Type中选择要修改的属性。 类属性

类属性时适用于类的ANSI C++代码生成属性,这些属性可以改变类名、确定是否生成类的构造器与逆向转出工程代码并设置该类的其它类特定属性。

除了使用前面方法设置所有类属性之外,还可以通过在一个类的规范窗口中选择 除去上述属性,还可以设置每个类的默认成员函数,以及是否对属性产生get/set操作。方法是:选择一个或几个类,然后右击选择ANSI C++->Class Customization。

属性的属性

前面的方法可以设置所有属性的属性。要设置某个特定属性的属性,方法是:在属性规范窗口中的ANSI C++标签中设置。

操作属性

前面的方法可以设置所有操作的属性。要设置某个特定操作的属性,方法是:在操作规范窗口中的ANSI C++标签中设置。

包属性

可以设置名字控件名和指定包是否具有名字空间。

前面的方法可以设置所有包的属性。要设置某个特定包的属性,方法是:在包规范窗口中的ANSI C++标签中设置。

组件属性

组件属性是与Rose所生成和逆向转出工程代码的.cpp和.h文件相关的属性。

前面的方法可以设置所有组件的属性。要设置某个特定组件的属性,方法是:在组件规范窗口中的ANSI C++标签中设置。还有种方法设置特定组件的属性:右击组件,ANSI C++->Open ANSIC++ Specification。

IBM Rational Rose 操作指南(下)

第八章关系介绍类之间的关系。关系是类之间的词法连接,使一个类了解另一个类的属性、操作和关系。寻找关系的方法1.检查Sequence框图和Collaboration框图。如果类A向类B发出消息,则它们必然有关系。通过这种方法找到的一般是关联和依赖型关系。2.检查类的整体/部分关系。然和由其它类组成的类都参与聚集。
推荐度:
点击下载文档文档为doc格式
9nomt5kg8a83uyx9681999g5n13tny00ups
领取福利

微信扫码领取福利

微信扫码分享