Установка свойств генерации программного кода
Для каждого языка в StarUML предусмотрен ряд определенных свойств генерации программного кода. Можно установить несколько параметров генерации программного кода для классов, атрибутов, компонентов и других элементов модели. Этими свойствами определяется способ генерации программ. В StarUML предлагаются общепринятые параметры по умолчанию.
Настройка свойств C++
Для того чтобы пользоваться возможностями C++, необходимо описать назначение этих свойств, список которых доступен во вкладке C++ окна Options (Tools-Option). (см. рис. 3)
Рисунок 3 – Окно свойств генерации кода на С++
Перед генерацией программного кода рекомендуется анализировать эти свойства и вносить необходимые изменения.
Назначение свойств:
1) CodeName - устанавливает имя класса в создаваемом коде. Данное свойство необходимо устанавливать только в том случае, если имя класса должно быть отлично от имени заданного в модели RationalRose. Данное свойство необходимо использовать для создания работоспособного кода C++, если для классов в модели используются русские имена.
2) ImplementationType - позволяет использовать простые типы вместо определения класса, устанавливаемого RationalRose по умолчанию. При задании этого параметра создается директива typedef.
3) ClassKey - используется для задания типа класса, такого как class, struct, или union. Если тип не указан, то создается класс.
4) GenerateEmptyRegion - свойство указывает, как будет создаваться пустой раздел protected: None - пустой раздел не будут создан; Preserved - пустой раздел будет создан, если будет установлено свойство «preserve=yes»; Unpreserved — пустой раздел будет создан, если будет установлено свойство «preserve=no»; All — всегда будет создаваться.
5) PutBodiesInSpec - если установлено как true, то в заголовочный файл попадет и описание тела класса. Используется для компиляторов, которым необходимо определение шаблона класса в каждом компилируемом файле.
6) GenerateDefaultConstructor - позволяет установить, необходимо ли создавать конструктор для класса по умолчанию. Может принимать следующие значения: DeclareAndDefine - создается определение для конструктора и скелет конструктора в теле класса; DeclareOnly - создается только определение; DoNotDeclare - не создается ни определения, ни скелета конструктора.
7) DefaultConstructorVisibility - устанавливает раздел, в котором будет определен конструктор по умолчанию: public, protected, private, implementation.
8) InlineDefaultConstructor - устанавливает, будет ли конструктор по умолчанию создаваться как inline подстановка. Если конструктора по умолчанию нет, то данное свойство не оказывает на код никакого эффекта.
9) ExplicitDefaultConstructor - устанавливает конструктор по умолчанию как explicit (явно заданный).
10) InlineRelationalOperations - определяет, будут ли функции операторов сравнения создаваться как inline подстановка.
11) GenerateStorageMgmtOperations - определяет, будут ли переопределяться операторы new и delete в классе.
12) StorageMgmtVisibility - определяет раздел, в который будут помещены операторы new и delete.
13) InlineStorageMgmtOperations - определяет, будут ли операторы new и delete определены как inline подстановка.
14) GenerateSubscriptOperation - определяет, будет ли переопределен оператор [].
15) SubscriptVisibilityопределяет - раздел, в который будет помещен оператор [].
16) SubscriptKind - определяет вид функций оператора []: Common - обычная, Virtual - виртуальная, Abstract - абстрактная.
17) SubscriptResultType - определяет тип возвращаемого выражения для
оператора [].
18) InlineSubscriptOperation - определяет, будет ли оператор [] определен как inline подстановка.
19) GenerateDereferenceOperation - определяет, будет ли переопределен оператор *.
20) DereferenceVisibility - определяет раздел, в который будет помещен оператор *.
21) DereferenceKind - определяет вид функций оператора *: Common - обычная, Virtual - виртуальная, Abstract - абстрактная.
22) DereferenceResultType - определяет тип возвращаемого выражения для оператора *.
23) InlineDereferenceOperation - определяет, будет ли оператор * определен, как inline подстановка.
24) GeneratelndirectionOperation - определяет, будет ли переопределен оператор ->.
25) IndirectionVisibility - определяет раздел, в который будет помещен оператор ->.
26) IndirectionKind - определяет вид функций оператора ->: Common - обычная, Virtual - виртуальная, Abstract - абстрактная.
27) IndirectionResultType - определяет тип возвращаемого выражения для оператора ->.
28) InlinelndirectionOperation - определяет, будет ли оператор -> определен как inline подстановка.
29) GenerateStreamOperations - определяет, будут ли переопределены операторы потоков (« и »).
Дата добавления: 2021-07-22; просмотров: 412;