
Лабораторная работа №6. Создание кода классов на Microsoft Visual C++
Цель работы – изучение возможностей инструментов пакета Rational Rose, используемых для создания кода на Visual C++, а также приобретение навыков создания кода диаграммы классов на языке Visual C++.
Основные сведения
1. Возможности инструментов пакета Rational Rose, используемых для создания кода класса на Visual C++
В предыдущей лабораторной работе изучались возможности создания кода диаграммы классов на языке C++, отвлеченного от конкретного компилятора. Этот универсальный подход является более сложным, т. к. для создания необходимого кода приходится оперировать большим количеством установок. Более простой способ создания приложения с помощью пакета Rational Rose заключается в использовании возможностей библиотеки классов фирмы Microsoft “MFC”. При этом нет необходимости вручную оперировать значительным количеством установок, так как в пакет Rational Rose встроен модуль Model Assistant, который позволяет изменять все необходимые установки при помощи визуальных средств.
Класс в Rational Rose – это описание общей структуры (данных и связей) для дальнейшего создания объектов. Для того чтобы генератор Rational Rose имел возможность создавать на основе описанной модели программный код, для каждого класса необходимо определить компонент, в котором этот класс будет храниться, а также указать язык, на котором будет создаваться код. Если в качестве языка для создания кода указан VC++, то при помощи визуальных средств Model Assistant пользователь получает доступ ко всей иерархии классов библиотеки MFC.
При создании класса необходимо указать стереотип, который влияет на получаемый исходный код класса. Так, при выборе в качестве кода стереотипа "struct” или "union”, будут созданы данные, соответствующих типов.
Пакет Rational Rose поддерживает обычные для классов C++ обозначения области видимости: public, private, protected. Таким образом, каждый атрибут или операция в спецификации классов при создании заголовочного файла класса будут, соответственно, помещены в одну из секций: public, private, protected. Кроме того, имеется возможность не создавать программный код для определенных классов.
Для того чтобы стали доступны инструменты пакета Rational Rose, используемые для создания кода на языке Visual C++, необходимо подключить к пакету соответствующие средства компиляции, входящие в состав Visual Studio 6.0 (предполагается, что установка Visual Studio 6.0 была выполнена ранее). Это подключение осуществляется в результате следующих действий:
выполняется команда главного меню “Add-Ins – Add-In Manager…;
в появившемся на экране окне Add-In Manager выбирается строка VC++ и нажимается кнопка OK.
2. Структура создаваемых кодов классов на Visual C++
Для каждого класса Rational Rose создает следующую структуру кода:
директивы #include, которые создаются исходя из необходимости включения атрибутов и связей классов;
декларация класса, имя класса, тип, наследование;
переменные Data members, которые создаются по описанию атрибутов класса и его связей;
декларация методов класса и скелет этих методов для дальнейшего наполнения каждой операции, заданной в описании класса;
документация для каждого создаваемого класса, переменных, методов, заданная в описании модели;
идентификатор ID модели, который включается в код как комментарий для каждого создаваемого класса, атрибута или метода, заданных в текущей модели. Например, //##ModelID=3237F8CE0053.
3. Связывание класса с языком VC++
Для того, чтобы использовать класс в программном проекте, необходимо его связать с выбранным языком, в нашем случае с VC++. Для этого достаточно выполнить команду: "Tools – Visual C++ – Component Assigned Tools”. После этого на экране появляется окно “Component Assignment Tool”
В этом окне надо выбрать в поле Unassigned Classes и переместить на значок VC++ те классы, для которых будет генерироваться код. На вопрос, надо ли мы создать VC++-компонент и связать его с классом, следует ответить Yes. после этого становится активным окно выбора проекта VC++ (Select a VC++ Project File). В этом окне можно создать новый проект или выбрать проект из уже имеющихся проектов для помещения в него нового класса.
Класс может быть связан с любым языком, поддерживаемым генератором кода Rational Rose, и в результате будет создан код программы на том языке, с которым связан класс, причем от конкретного языка зависят некоторые свойства класса. Для того чтобы вновь создаваемые классы сразу связывать с языком VC++, надо выполнить команду “Tools – Options – Notation – Default Language=VC++”.
После связывания класса с языком программирования можно использовать команды подменю режимаVisual C++, доступ к которому открывается при выборе в главном меню пункта Tools.