技术开发 频道

在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 TypeBrowse按钮。
  5. 在弹出的 Type Selection对话框中,键入 P 列出所有以 P开头的元素。
  6. 从列表中选择 Publisher并点击 OK按钮。
  7. 点击 Finish

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

添加枚举文字

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

  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
相关文章