使用Rational进行C++转换的技巧

时间:2010-04-22 16:14:02  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:一种技巧。您可以根据需要选读,而不必遵循特定的次序。  应用 C++ Transformation 概要文件以实现 C++ 结构的建模  在统一建模语言 UML 和某特定领域之间建立联系的标准方法是使用 UML Profile(UML 概要文件)。UML 概要文件可以为已有 UML 元素定义附加语义和特性,例如类、操作等。建模 C++ 特定元素的时候,如 结构体、联合体、名字空间 等,需要...
  正文:UML 是一个通用的语言。使用 IBM? Rational Software Architect 和 IBM Rational Systems Developer,您可以实现由 UML 模型向 C++ 的转换。这篇文章讨论了如何更好地控制由 UML 向 C++ 转换而生成的 C++ 代码。文章分成几个章节,各部分相对独立,分别介绍了一种技巧。您可以根据需要选读,而不必遵循特定的次序。

  应用 C++ Transformation 概要文件以实现 C++ 结构的建模

  在统一建模语言 UML 和某特定领域之间建立联系的标准方法是使用 UML Profile(UML 概要文件)。UML 概要文件可以为已有 UML 元素定义附加语义和特性,例如类、操作等。建模 C++ 特定元素的时候,如 结构体、联合体、名字空间 等,需要用到 UML 概要文件。在 Rational Software Architect 和 Rational Systems Developer 使用 C++ Transformation profile 实现 UML 向 C++ 的转换,这个概要文件在 UML 模型中的应用如下所示。

  在 Project Explorer 中选择概要文件将要应用的 UML 模型。

  在 Project Explorer 保持模型是选中状态,转换到 Properties View,单击 Profiles 选项卡。

  如图1所示,单击 Add Profile 按钮。

  图1. 将 UML 运用到 C++ Transformation 概要文件

  Applying the UML to C++ Transformation profile

  如图2所示,从 Deployed Profile 下拉列表框中选择 C++ Transformation。

  图2. 选择 C++ Transformation

  Sample UML2 Model

  导入 C++ 类型库

  UML 提供了一组已定义好的类型,有 Boolean, Integer, String 和 UnlimitedNatural。而大多数的编程语言,包括C++,提供了更为丰富的基础类型。在 C++ 中建模的时候,您可能经常需要使用 C++ 预定义的原始类型(比如,将一个类型赋给某个属性、参数、操作返回类型,等)。To import the C++ model library that is shipped with the C++ Transform,在 Project Explorer 中右键单击UML模型,然后选择 Import Model Library,如下图3所示。

  图3. 导入 C++ 类型库

  Importing the C++ Type Library using the pop-up menu

  如图4所示,从 Deployed Library 列表中选择 C++ Types。

  图4. 导入 C++ Type Library

  Importing the C++ Type Library

 

   在模型中创建 C++ 名字空间

  本章节讲述如何在 UML 模型中为 C++ 名字空间建模。在 C++ 中创建一个名字空间时,需要将 cpp_namespace 原型应用在 UML 包。在 UML 向 C++ 转换的过程中,一个 UML 包默认被映射成一个文件夹。如果想要将 UML 包映射成名字空间,而不是文件夹,那么,您需要应用 cpp_namespace 原型,然后设置 NamespaceName 的属性,使其与指定的名字空间相关联。这个 stereotyped UML 包下所有的 类、结构、枚举 (以及其它)生成代码之后,都将包括在这个名字空间中。

  您可能想知道为什么名字空间不能直接采用 stereotyped 包的名称。这是为了支持 C++ 匿名的名字空间建模。所以,如果您将 NamespaceName 属性设置为空,那么,该名字空间就会被认为是匿名的。

  建模 C++ typedefs

  要建模 C++ typedef,需要创建一个 UML 类并在其上应用 cpp_typdef 原型。该原型提供了以下属性/值:

  arrayDimensions

  ImplementationType

  qualifier

  想要创建一个类型定义,比如 typedef int const IntMatrix100_20_t [10][20];,首先创建一个 UML 类 IntMatrix100_20_t,然后应用 cpp_typedef 原型。如图5所示,设置该原型的属性。

  图5. 建立一个 C++ 类型定义

  C++ Typedef properties

  在将 typedef 定义与概要文件中提供的属性相关联的过程中,您可能会考虑到以下方式: typedef

  创建多维数组属性

  在本节中,您将会学到如何为一个大小为[10][20][30]的三维数组定义属性。在 Project Explorer 中选择需要赋给多维数组的属性。在 Properties 视图中,单击 Stereotypes 选项卡,然后单击 Apply Stereotypes 按钮,并选择 cpp_type 原型。这个原型提供了以下属性/值: 《使用Rational进行C++转换的技巧》由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Language/VC/2010-04-22/13746.html


关键字:

关于《使用Rational进行C++转换的技巧》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td