37972

Генерация кода С++

Лабораторная работа

Информатика, кибернетика и программирование

Изучение фаз процесса генерации кода: создания наборов свойств определения спецификаций компонентов выбора языка С для компонентов отнесения классов к компонентам связывания наборов свойств с элементами модели генерации кода анализа ошибок. Создание наборов свойств. Связывание наборов свойств с элементами модели. Генерация кода Создание наборов свойств При генерации кода учитываются свойства проекта в целом а также свойства уровней классов ролей атрибутов и операций.

Русский

2013-09-25

3.1 MB

5 чел.

Лабораторная работа №8

Генерация кода С++

Цель работы. Изучение фаз процесса генерации кода: создания наборов свойств, определения спецификаций компонентов, выбора языка С++ для компонентов, отнесения классов к компонентам, связывания наборов свойств с элементами модели, генерации кода, анализа ошибок. Приобретение практических навыков генерации кода в среде Rational Rose.

Краткие теоретические сведения

Руководство по генерации кода на языке программирования С++ средствами Racional Rose.

Соответствующий генератор кода не включается по умолчанию, – следует выбрать элемент меню Add-Ins         Add In Manager, в одноименном диалоговом окне установить флажок Rose C++ и закрыть окно щелчком на кнопке ОК.

Ниже перечислены фазы процессов генерации кода .

  1.  Создание наборов свойств.
  2.  Определение спецификаций компонентов.
  3.  Выбор языка С++ для компонентов.
  4.  Отнесение классов к компонентам.
  5.  Связывание наборов свойств с элементами модели.
  6.  Генерация кода.
  7.  Анализ ошибок.

Генерация кода

  1.  Создание наборов свойств

При генерации кода учитываются свойства проекта в целом, а также свойства уровней классов, ролей, атрибутов и операций. К свойствам, регламентирующим характеристики проекта как такового, относятся имя файла проекта, названия контейнерных классов, используемых по умолчанию, и местоположение генерируемого кода. Свойства уровня класса обусловливают необходимость и способы создания конструкторов, деструкторов, конструкторов копии, операторов сравнения и методов get/set. Набор свойств роли определяет потребность в использовании методов get/set, признаки видимости методов и варианты применения того или иного контейнерного класса. Свойства операции позволяют отнести последнюю к одной из разновидностей (common – общая, virtual -  виртуальная, abstract – абстрактная, static – статическая, frient – «дружественная») и /или придать ей статус «постоянной» (constant). Ratinal Rose предоставляет возможность создания любого количества наборов свойств, отвечающих существу проекта, и их редактирования. Для каждого класса генерируются два файла – файл заголовка(.h) и файл спецификации (.cpp).

При работе над типичным проектом обязанности по формированию наборов свойств генерируемого кода распределяются между несколькими сотрудниками, а результаты используются всеми участниками группы. Вот некоторые примеры часто создаваемых наборов свойств: «виртуальный деструктор», «виртуальная операция», «абстрактная операция», «статическая операция».

Как создать набор свойств

1. Выбрать элемент меню Tool          Options.

2. Перейти на вкладку С++ диалогового окна Options.

3. В раскрывающемся списке Type установить требуемый тип набора свойств.

4. Щелкнуть на кнопке Clone, чтобы открыть диалоговое окно Clone Property Set.

5. Ввести наименование нового набора свойств и закрыть окно щелчком на кнопке ОК.

6. В списке Model Properties выбрать свойство, подлежащее модификации, и щелкнуть в пределах столбца Value.

7. Ввести новое значение свойства, либо выбрать таковое с помощью раскрывающе-гося списка.

  1.  Повторить действия, перечисленные в п.п. 6, 7, для каждого свойства, которое должно быть изменено.
  2.  Щелкнуть на кнопке Apply, чтобы сохранить информацию.
  3.  Повторить действия, перечисленные в п.п. 3-9, с целью создания остальных наборов свойств.
  4.  Закрыть диалоговое окно Options щелчком на кнопке ОК.

Процесс создания набора свойств «виртуальный деструктор» проиллюстрирован на рис. А.1.

Рис. А.1. Создание набора свойств

  1.  Определение спецификаций компонентов

Rational Rose генерирует код, принимая во внимание номенклатуру созданных компонентов в совокупности с их стереотипами. Для каждого компонента без стереотипа система генерирует файл .h, содержащий информацию объявления и определения соответствующего класса. Если компонент снабжен стереотипом Package Specification, генерируется файл .h с объявлением класса. Если же при этом существует надлежащий компонент со стереотипом Package Body, генерируется и файл .cpp с определением класса.

Как определить или  создать  стереотип компонента

  1.  Двойным щелчком на элементе дерева в окне Browser, представляющем диаграмму компонентов, открыть окно диаграммы.
  2.  Расположить курсор мыши над элементом диаграммы, отвечающим требуемому компоненту, и щелкнуть правой кнопкой, чтобы активизировать контекстное меню.
  3.  Выбрать элемент меню Open Specification.
  4.  Перейти на вкладку General диалогового окна Component Specification.
  5.  В поле Stereotype ввести значение стереотипа, либо выбрать таковое с помощью раскрывающегося списка.
  6.  Закрыть диалоговое окно щелчком на кнопке ОК.

Диалоговое окно Component Specification изображено на рис. А.2.

Рис. А.2. Спецификация компонента

Как создать заголовок и тело компонента

  1.  Двойным щелчком на элементе дерева в окне Browser, представляющем диаграмму компонентов, открыть окно диаграммы.
  2.  Расположить курсор мыши над элементом диаграммы, отвечающим требуемому компоненту, и щелкнуть правой кнопкой, чтобы активизировать контекстное меню.
  3.  Выбрать элемент меню Open Specification.
  4.  Перейти на вкладку General диалогового окна Component Specification.
  5.  В раскрывающемся списке Stereotype выбрать значение стереотипа Package Specification для файла заголовка компонента, либо значение Package Body – для файла, содержащего тело кода компонента.
  6.  Закрыть диалоговое окно щелчком на кнопке ОК.

Пример диаграммы компонентов, элементы которой отвечают файлам .h и .cpp, приведен на рисунке А.3.

Рис. А.3. Уточненная диаграмма компонентов

  1.  Выбор языка С++ для компонентов

Как только компоненты, представляющие файлы .h и .cpp, созданы, им должен быть поставлен в соответствие язык программирования (С++). (Если языком, предлагаемым по умолчанию, является С++, - обратитесь к раскрывающемуся списку Default Language на вкладке Notation диалогового окна Options, активизируемого командой меню Tools      Options,  -  система автоматически выбирает опцию С++ для каждого компонента модели.)

Как выбрать язык программирования для компонента

  1.  Щелчком правой кнопки мыши указать компонент в дереве окна Browser либо на диаграмме компонентов и активизировать контекстное меню.
  2.  Выбрать элемент меню Open Specification.
  3.  Перейти на вкладку General диалогового окна Component Specification.
  4.  В раскрывающемся списке Language выбрать требуемую опцию (в данном случае – С++).
  5.  Закрыть диалоговое окно щелчком на кнопке ОК.

Окно спецификации компонента «курс» показано на рис. А.4.

Рис. А4. Выбор языка программирования  для компонента

4. Отнесение классов к компонентам

После создания компонентов, представляющих файлы .h, с ними следует сопоставить те или иные классы модели.

Как отнести класс к компоненту

  1.  Двойным щелчком на элементе дерева в окне Browser, представляющем диаграмму с компонентами файлов .h и .срр, открыть окно диаграммы.
  2.  Выбрать класс в дереве окна Browser, перетащить в окно диаграммы и опустить на компонент, соответствующий требуемому файлу .h.
  3.  Связывание наборов свойств с элементами модели

Каждый элемент модели (например, класс, атрибут или роль) анализируется системой с целью выявления свойств, которыми должен обладать генерируемый код. Если элемент должен обладать свойствами, отличными от тех, которые предусмотрены в наборе, предлагаемом по умолчанию, с элементом связывается тот или иной созданный набор свойств.

Как связать набор свойств с элементом модели

  1.  Щелчком правой кнопки мыши указать элемент модели в дереве окна Browser либо на диаграмме и активизировать контекстное меню.
  2.  Выбрать элемент меню Open Specification.
  3.  Перейти на вкладку С++ диалогового окна спецификации элемента.
  4.  В раскрывающемся списке Set выбрать требуемый набор свойств.
  5.  Закрыть диалоговое окно щелчком на кнопке ОК.

Окно спецификации класса «пользователь» изображено на рис. А.5.

Поскольку адекватного набора свойств, подходящего для каждой комбинации элементов, заведомо не существует, при рассмотрении определенного  элемента то или иное свойство можно переопределить – даже в том случае, если свойство входит в набор свойств, предлагаемый по умолчанию.

Как переопределить свойство элемента модели

  1.  Щелчком правой кнопки мыши указать элемент модели в дереве окна Browser либо на диаграмме и активизировать контекстное меню.
  2.  Выбрать элемент меню Open Specification.
  3.  Перейти на вкладку С++ диалогового окна спецификации элемента.
  4.  В раскрывающемся списке Set  выбрать требуемый набор свойств.
  5.  В списке Model Properties указать свойство, подлежащее модификации, и щелкнуть в пределах столбца Value.
  6.  Ввести новое значение свойства либо выбрать таковое с помощью раскрывающегося списка.
  7.  Повторить действия, перечисленные в пп. 5, 6, для каждого свойства, которое должно быть изменено.
  8.  Щелкнуть на кнопке Override.
  9.  Закрыть диалоговое окно щелчком на кнопке ОК.
  10.  Генерация кода

Код может быть сгенерирован для пакета в целом, для отдельного компонента либо группы компонентов. В качестве имени файла, в который помещается код, выбирается наименование пакета или компонента. Файл располагается в структуре каталогов, соответствующей поддереву Component View дерева Browser.

Как сгенерировать код

  1.  Щелчком выбрать пакет, компонент или группу компонентов в дереве окна Browser либо на диаграмме.
  2.  Выбрать элемент меню Tools  C++  Code Generation.
  3.  Система осуществит генерацию кода и воспроизведет информацию о результатах в диалоговом окне Code Generation Status.

Окно Code Generation Status с данными об итогах генерации приведено на рис. А.6 (символы кириллицы в названиях элементов модели отображаются посредством восьмеричных кодов.).

Порядок выполнения работы.

  1.  Загрузить Rational Rose  и объектную модель (диаграммы) системы учета университетских курсов (см. лабораторные работы #1-7).
  2.  Создать набор свойств (стр. 156-157, рис.А.11).
  3.  Определить или создать стереотип компонента Курс (стр.157-158, рис.А.2).
  4.  Создать заголовок и тело компонентов (уточненную диаграмму компонентов) (стр. 158-159, рис. А.3).
  5.  Выбрать язык программирования для компонента Курс (стр. 158-159, рис.А.4).
  6.  Отнести классы к компонентам (стрю159-160).
  7.  Связать набор свойств с элементом модели (160-161, рис. А.5).
  8.  Сгенерировать код для пакета, для отдельного компонента либо группы компонентов (стр. 161). В качестве имени файла, в который помещается код, выбирается наименование пакета или компонента. Файл располагается в структуре каталогов, соответствующей поддереву Component View дерева Browser.

Список используемой литературы

1. Кватрани Е. Rational Rose 2000 и UML. Визуальное моделирование. 2001. 176с.

2. Г. Буч Объектно-ориентированный анализ и проектирование с примерами приложений на С++. 1998/2000, 560с.

3. Конспект лекций.


 

А также другие работы, которые могут Вас заинтересовать

39268. Разработка конструкции печатного узла регулируемого двухполярного блока питания 950.5 KB
  1 Выбор типа печатной платы односторонняя двухсторонняя; 15 16 4.2 Выбор материала печатной платы; 16 18 4.3 Выбор метода изготовления печатной платы; 18 19 4.6 Расчет размеров печатной платы узла; 23 24 4.
39269. Технико-экономический расчет и проектирование участка изготовления печатных плат для сборки изделия: Реле времени с годовой программой 115000 штук 1.12 MB
  1 Расчет количества оборудования коэффициента загрузки. Технические данные оборудования 2.7 Расходы по содержанию и эксплуатации оборудования 2. По мере развития и совершенствования интегральных схем происходит увеличение сложности и стоимости оборудования для их производства и контроля качества.
39270. Рабочее место электромонтажника 134 KB
  В современных производственных условиях рабочие монтажники радиоэлектронной аппаратуры должны уметь пользоваться сборочномонтажными чертежами читать электрические схемы знать слесарносборочные монтажные и регулировочные операции маркировку современных электрорадиоэлементов обнаруживать и устранять неисправности в собираемых изделиях знать правила безопасности труда. 4 Перечень НТД по охране труда безопасности работы руководящим должностным и производственным инструкциям № № инструкций Наименование инструкций 1 489 По охране...
39271. Устройство защиты аппаратуры от аномальных напряжений сети 284.32 KB
  Котова Устройство защиты аппаратуры от аварийного напряжения сети Радио 2008 № 8 с. Из сетевого напряжения ограничительным диодом VD2 формируется переменное близкое к прямоугольному напряжение амплитудой около 18 В. Варистор RU1 защищает симистор VS1 от бросков напряжения при коммутации нагрузки индуктивного характера. Контроль величины сетевого напряжения осуществляет встроенный АЦП микроконтроллера DD1.
39272. Машиностроительный комплекс 425.17 KB
  Изменение структуры занятости по отраслям хозяйственного комплекса и сферам приложения труда свидетельствует о развитии рыночных структур в экономике. Повышение специализации производства требует использования высокопроизводительного оборудования; внедрения новых методов технологии механизации и автоматизации производственных процессов; повышения уровня квалификации персонала и увеличения производительности труда это снижает себестоимость при одновременном улучшении качества что приводит к увеличению реализации росту прибыли и...
39273. Социология труда и менеджмента. (Ф. Тейлор, Э. Мейо) 17.07 KB
  Социология труда (в развитых государствах Запада чаще она именуется индустриальной социологией) начала развиваться в 20-30-х гг. XX века. Исследуя проблемы, связанные с социальной сущностью труда, индустриальная социология важным объектом анализа ставит социально-трудовые отношения.
39274. АНАЛІЗ АСОРТИМЕНТУ, СПОЖИВНИХ ВЛАСТИВОСТЕЙ І КОКУРЕНТОСПРОМОЖНОСТІ КОМП’ЮТЕРІВ, ЯКІ РЕАЛІЗУЮТЬСЯ В ТОВ «САВ-ДІСТРИБ’ЮШН» В М. ДОНЕЦЬК 727 KB
  Основні тенденції розвитку світового і вітчизняного ринку компютерів Фактори які формують асортимент і якість комп'ютерів Аналіз ринку компютерів в Україні та світі Нові технології в розвитку асортименту компютерів Обґрунтування та удосконалення класифікації компютерів РОЗДІЛ 2. Практичні аспекти реалізації оцінки якості компютерів 2. Споживні параметри компютерів та методи їх оцінки 2.
39275. Изыскание путей повышения эффективности производства на НПК «Динкома» на основе оценки товарной политики предприятия 698.5 KB
  Инновационная политика разработка новой продукции ее торговой марки и упаковки основа эффективности предпринимательской деятельности в рыночных условиях гарантия высоких конкурентных позиций фирмы. Планы поступательного развития компании в средне и долгосрочной перспективе должны основываться на реалистичной и хорошо продуманной стратегической программе обновления ассортимента продукции. В интересах сохранения объемов сбыта или достигаемого уровня рентабельности предприятию необходимо быть готовым к немедленной замене вырабатываемой...
39276. Разработка автоматизированной системы измерений параметров взаимодействия жидких кристаллов с поверхностью подложки 7.52 MB
  Для них характерна относительная свобода пространственного порядка молекул в одном или более измерениях. Наиболее распространены нематические ЖК у которых длинные оси молекулы вытянуты приблизительно параллельно друг другу. Схема выключенной монохромной ячейки Если к ячейке приложено электрическое поле оси молекул поворачиваются перпендикулярно электродам и структура перестаёт вращать плоскость поляризации падающего света который при этом поглощается вторым поляризатором и устройство выглядит темным. Схема установки с вращением ячейки по...