Установка свойств генерации программного кода


Для каждого языка в 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; просмотров: 341;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.008 сек.