Обзор возможностей Borland Developer Studio 2006 для разработки MDA-приложения
1) После запуска BDS 2006 на экране открывается главное окно среды разработки (см. Рисунок 8.1). Проект Delphi представляет собой группу файлов, содержащих исходный текст программы и вспомогательные данные. Все они объединены тематикой решаемой задачи.
Рисунок 8.1 – Начало работы в среде BDS
2) Создадим пустую заготовку приложения ЕСО командой File>New>Other. Выберем значок ECO WinForms Application во вкладке Delphi for .NET Projects (см. Рисунок 8.2).
3) В диалоговом окне введем имя проекта (например, projDeanOffice) и его местоположение (каталог). Нажмите кнопку ОК.
4) Среда Delphi сформирует пустую заготовку приложения ECO и откроет окно Проектировщика. В нем расположена начальная пустая форма приложения. Структура автоматически созданной модели (пустой заготовки) доступна в окне просмотра модели, открываемом командой View>Model View либо выбором вкладки Model View в правом верхнем окне (см. Рисунок 8.3). В этом окне в дополнение к самому проекту (projDeanOffice) и главной форме (WinForm) можно увидеть еще несколько автоматически добавленных элементов. Среди них имеются следующие:
– элемент projDeanOfficeEcoSpace представляет объектное пространство ЕСО. Это основное хранилище, в котором располагаются экземпляры классов создаваемой модели во время работы программы. Это пространство также ответственно за хранение объектов ЕСО, например в базе данных или файле XML;
– элемент Package_1 представляет пакет классов UML, которые мы будем создавать.
Рисунок 8.2 – Создание заготовки проекта ECO
Переименуем элемент Package_1 в удобное для нас название packModel.
Рисунок 8.3 – Окно просмотра модели
Создание модели UML
5) Для создания модели дважды щелкнем мышью на строке packModel в окне просмотра модели. Откроется окно packModel [diagram] диаграммы классов ЕСО. Это окно напоминает окно построения обычных диаграмм классов UML. Только при работе с ним применяются элементы, специфичные именно для технологии ЕСО.
6) Разместим на диаграмме первый класс, отражающий сущность Деканат. Для этого выберем на палитре инструментов Tool Palette инструмент ECO Class в категории UML ECO Class Diagram и щелкнем в подходящей точке пространства моделирования. В ней появится графический элемент, изображающий класс.
7) Назовем класс clChair (Кафедра). Пробелы в имени класса ЕСО не допускаются.
8) Добавим атрибуты класса командой контекстного меню Add>Attribute. Создадим таким образом три атрибута Название кафедры, ФИО заведующего кафедрой, ФИО секретаря кафедры – ChairName, ChairHeadSNP и ChairSecrSNP соответственно (см. Рисунок 8.4). Для задания типа атрибута выделим нужный атрибут и в окне Properties установим необходимое значение поля Type в категории General. В данном случае все три атрибута имеют тип String.
Рисунок 8.4 – Добавление класса clChair с его атрибутами
9) Переименуем названия класса и атрибутов в понятные названия на русском языке. Для этого в свойстве Alias (категория General) класса и его атрибутов введем русскоязычные названия.
10) По аналогии добавим к модели еще один класс clLecturer (Преподаватель) с атрибутами LecturerSNP (ФИО преподавателя) и LectAcadDegree (Ученая степень) типа String. Переименуем элементы нового класса на диаграмме, изменив значения свойства Alias.
11) Настроим связи между созданными классами. Эта связь будет представлять отношение ассоциации. Выберем на палитре инструментов инструмент Generalization/Implementation. Щелкнем мышью на представлении класса Кафедра, протянем связь к классу Преподаватель и снова щелкнем мышью. В результате между двумя классами сформируется ассоциативное отношение.
12) Настроим мощность ассоциативного отношения. В нашем случае одному экземпляру класса Кафедра соответствует множество экземпляров класса Преподаватель (от 1 и более). Для этого в окне Properties выделенной связи выберем категорию End1, соответствующую классу Кафедра, и в поле Multiplicity установим значение 1, а в категории End2 (для класса Преподаватель) этому же полю — значение 1..*. Теперь дадим сторонам связи названия. В свойство Name для сторон End1 и End2 введем roleChair и roleLecturers соответственно (см. Рисунок 8.5). То есть мы назвали роли каждого класса в ассоциативной связи. Эти имена пригодятся нам при кодировании на языке OCL.
Рисунок 8.5 – Настройка связи между классами
На этом этапе создание простейшей модели закончено. Теперь надо создать базу данных и подключить ее к проекту.