技术开发 频道

在IBM Rational中使用C++可视化


可视化编辑源代码

    通过使用选项板,Modeling Assistant,或者弹出式菜单,Rational Systems Developer 工具支持来自 Class 图的 C++ 元素的创建和编辑。

创建新的 C++ 元素

    可以通过使用 C/C++(图 19)或者一个类图的弹出式操作栏(图 20)来创建一个新的 C++ 类或者枚举。

图 19. C/C++ 选项板
图 19. C/C++ 选项板

图 20.  弹出式操作栏
图 20. 弹出式操作栏

    例如,要创建一个新的源自于 LibraryEntry的名称为 ElectronicMediaC++ 的类:

  1. 从选项板中选择 C++ Class,然后点击一个类图。
  2. 这样将会弹出 CDT New Class wizard(参见图 21)。
  3. 键入这个类的名称 ElectronicMedia。
  4. 现在,可以选择这个基类,点击Add按钮,然后从对话框中选择 LibraryEntry。
  5. 点击 Finish。

 

    您还可以在 New Class向导中更改创建的默认文档,确定这个类所属的字段名。

图 21. CDT New Class 向导
图 21. CDT New Class 向导

    接下来,创建一个代表 ElectronicMedia类型的新枚举,您将为它命名为 EMediaType:

  1. 将鼠标指针移到 Class 图的空白处。
  2. 当这个操作栏出现时,选择这个棕色的E字母。(参见图 20,如先前所显示。)
  3. 这将启动 New Enum 向导(图 22)。键入名称 EMediaType。
  4. 点击 Finish。

 

提示:
    您还可以在向导中更改创建的默认文档,确定这个类所属的字段名。

图 22. The New Enum  向导
图 22. The New Enum 向导

添加元素

    您可以通过使用这个弹出式菜单(图 23)或者弹出式操作栏(图 24),为可视化 C++ 类添加新的域和操作。

图 23. C/C++ 为 C++  类添加弹出式菜单
图 23. C/C++ 为 C++ 类添加弹出式菜单

图 24. C++ 类的弹出式操作栏
图 24. C++ 类的弹出式操作栏

    例如,添加一个类型 Publisher 的 protected 域到 ElectronicMedia类:

  1. 点击类 ElectronicMedia的弹出式操作栏中的 Add Field图标(请再次查看图 24)。
  2. 在 New C/C++ Field 向导中键入 publisher作为名称,显示在 (图 25)中。
  3. 要选择 Publisher类型,点击 Type Browse。
  4. 在 Type Selection对话框中,键入字母 P 来列出所有以 P开头的元素。
  5. 从列表中选择 Publisher,然后点击 OK。
  6. 从 Access Visibility下拉框中,选择 Protected。
  7. 点击 Finish。

    类似地,添加一个叫做 Publisher getPublisher()的新方法到 ElectronicMedia类:

  1. 右键点击这个类 ElectronicMedia,如图中所显示。
  2. 从弹出式菜单中选择 Add C/C++ > Method,如先前图 23所显示的那样。
  3. 在弹出的(紧接着是 图 26)New C/C++ Method 向导中,键入 getPublisher作为这个程序的名称。
  4. 选择 Publisher作为返回类型,点击 Return Type的 Browse按钮。
  5. 在弹出的 Type Selection对话框中,键入 P 列出所有以 P开头的元素。
  6. 从列表中选择 Publisher并点击 OK按钮。
  7. 点击 Finish。

    这些操作将分别在 Add Field 向导中显示,或者在 Add Operation 向导中显示,如图 25和图 26所示。

添加枚举文字

    您还可以添加枚举文字到显示在类图中的 enum元素,可以通过弹出式操作栏(图27)或者弹出式菜单(图 28)来实现。例如,添加一个新的文字 CD到 EMediaType:

  1. 将鼠标悬浮在可视化 EMediaType之上。
  2. 从弹出式操作栏中选择 添加枚举文字(图 27)
    在弹出的 Enumeration Literal向导(图 29)中,键入文字名称 CD。
  3. 点击 Finish。

 

图 27. 添加 Enumeration Literal  弹出式操作栏
图 27. 添加 Enumeration Literal 弹出式操作栏
 

图 28. 添加 Enumeration Literal 弹出式菜单
图 28. 添加 Enumeration Literal 弹出式菜单
 

图 29. 添加 Enumeration Literal 向导
图 29. 添加 Enumeration Literal 向导

创建 C++ 元素之间的相互关系

您可以通过使用点击-和-拖放的方法很容易地创建 C++ 元素之间地相互关系。这种关系地类型可以从 C/C++ Palette(参见图 19,先前所示)中选择。例如,要创建一个从 ElectronicMediaType到 Author的关联关系:

  1. 从 C/C++ 选项板中选择 Create Association(图 19,如先前所示)。
  2. 点击 ElectronicMediaType,并将这个元素拖放到 Author。
  3. 在弹出的向导中确定名称,可见度,以及其它具体的细节 (图 30)。
  4. 点击 Finish。

 

图 30. 创建 Association 向导
图 30. 创建 Association 向导

    如果您愿意,您可以通过使用 Modeling Assistant来代替创建它们之间的相互关系。利用这个工具,您可以创建已经存在在图中元素或者新元素之间的关系,并且现有的元素不在这个图上 。例如,要创建一个由 ElectronicMedia类继承而来,叫做 EBook的新类:

  1. 将光标悬在 ElectronicMedia之上。
  2. 点击引入的箭头,从元素拖拽到一个空图位置。这将产生一个弹出式菜单(图 31)。
  3. 选择 Create Inherits (Generalization) from > New Element: C++ Class。这将启动 New Class 向导早期在图 21中有所显示。
  4. 键入 EBook作为名称,然后点击 Finish。
  5. 接下来,您将看到 Inheritance 向导,这时您可以确定可见度为 Public。
  6. 点击 Finish。

    要在图上创建元素之间的关系,可以利用 Modeling Assistant:

  1. 在两个元素之间要么拖拽引入的要么拖拽引出的箭头。
  2. 然后选择关系的类型,比如 Author 或者 Publisher,如图 23所示。

更改成员的可视性

    通过使用元素的弹出式菜单,很容易就可以从这个图更改 C++ 类成员的可见度。例如,在 ElectronicMedia下,将 publisher域的可视性更改为 private,右键点击这个域并从弹出式菜单中选择 Visibility > Private,如图 34 所示。

图 34. 更改成员的可视性
图 34. 更改成员的可视性

更名重构

    您可以利用元素的弹出式菜单,对显示在图中的一个元素进行重命名:Refactor > Rename。例如,将 ElectronicMedia的域类型 重新命名为 mediaType:

  1. 右键点击这个域类型并选择 Refactor > Rename,如图 35所示。
  2. 键入新的名称,mediaType,它将显示在 Rename Refactor 向导中 (图 36)。
  3. 选择Preview 来预览您的更改,然后点击 OK。

 

图 35. Rename 弹出式菜单
图 35. Rename 弹出式菜单
 
图 36. Rename Refactor 向导

图 36. Rename Refactor 向导

从一个图中直接编辑

    另一种对元素重命名的方法是直接从图中进行编辑。您还可以利用这种方法来更改域类型和操作。例如,在 Library类下,更改 entries: int域的名称和类型为 totalEntries:long,按照以下这些步骤:

  1. 选择 Entries域。
  2. 点击这个图使图文本为可编辑类型 (图 37)。
  3. 键入新名称和输入格式为 totalEntries: long,然后按下 Enter键。

重点:
    这是确定名称和类型的 UML 方法。不要使用确定这个信息的 C++ 类型。

  1. 当您看到 Edit Preview对话框(图 38)时,在那个对话框屏幕中点击 OK。

    在图中直接重命名可以是一个简单的重命名或者重构。您需要在 C++ 建模 Preferences页面上设置这个选项。

  1. 选择 Window > Preferences。
  2. 从这个树中(图 39)选择 Modeling > C++ Modeling。
    • 当您选择Simple rename 时,只有表示位置在这个图中的名称才可以更改。
    • 当您选择 Refactor rename时,所有这个名称的参考都会更改。

 

图 39. C++ Modeling Preference 页面
图 39. C++ Modeling Preference 页面

提示:
    最好是利用 Preview选项来检查这些更改。这是因为实际的源代码和变量绑定可以更改,这是建立在环境或者构建宏预处理程序指令的时间定义的基础上的。

0
相关文章