страница 1 страница 2
На рисунке 6.1 представлена кооперативная диаграмма, которая соответствует диаграмме взаимодействия рис.5.1
Рисунок 6.1 – Кооперативная диаграмма Register for Courses – Basic Flow
2. Практическое задание
Разработать кооперативную диаграмму по индивидуальному заданию.
Содержание отчета:
1. Краткое описание основных элементов диаграммы.
2. кооперативная диаграмма, для одного варианта использования
Вопросы для защиты
1. Цель кооперативной диаграммы.
2. Сообщения и их виды.
Лабораторная работа № 7
Разработка диаграммы классов на уровне сущностей.
Диаграммы последовательности позволяют сформировать все операции (методы ) классов. Вид классов после добавления операций представлен на рис. 7.1
Рисунок 7.1 – Диаграмма классов с операциями
Проектирование баз данных.
Разработка таблиц базы данных
Создание новой таблицы:
Нажмите на панели инструментов кнопку Table.
Щелкните мышью в том месте диаграммы, куда собираетесь поместить таблицу.
В открывшемся окне введите имя таблицы.
В окне Database выберите тип базы данных.
Для добавления колонок таблицы и редактирования их свойств:
Щелкните правой кнопкой по таблице.
В открывшемся меню выберите пункт Attributes.
В открывшемся окне введите название колонки.
В окне Data Type выберите тип данных.
В окне Initial при необходимости введите начальное значение, которое может быть использовано как значение по умолчанию для колонки.
Если колонка представляет первичный ключ для таблицы, установите флажок Primary Key.
Enterprise Architect может генерировать простые DDL скрипты для создания таблиц в вашей модели.
Генерация DDL для таблицы:
Щелкните правой кнопкой мыши по таблице, для которой генерируется DDL-скрипт.
В открывшемся меню выберите пункт Generate DDL.
В открывшемся окне выберите путь, куда будет сгенерирован скрипт.
Установите флажки, где необходимо.
Для создания DDL-скрипта нажмите кнопку Generate.
После завершения генерации откройте созданный текстовый файл и просмотрите результаты.
Добавление атрибутов:
Щелкните правой кнопкой мыши на классе Student.
В открывшемся меню выберите пункт Attributes.
Введите новый атрибут address.
Нажмите кнопку Save, для добавления нового атрибута нажмите кнопку New.
Повторите шаги 1 – 4, добавив атрибуты name и studentID.
Добавьте атрибуты к классам CourseOffering, Shedule и PrimarySchedule-OfferingInfo, как показано на рисунке 7.2.
Рисунок 7.2 – Классы с операциями и атрибутами
Связи между классами (ассоциации) определяются на основе диаграмм взаимодействия. Если два объекта взаимодействуют (обмениваются сообщениями), между ними должна существовать связь (путь взаимодействия). Для ассоциаций задаются множественность и, возможно, направление навигации. Могут использоваться множественные ассоциации, агрегации и классы ассоциаций.
Добавление связей
Добавим связи к классам, принимающим участие в варианте использования Register for Courses. Для отображения связей между классами построим три новых диаграмм классов в кооперации Register for Courses пакета Use-Case Realization – Register for Courses (рисунки 7.3…7.5).
Рисунок 7.3 Диаграмма Entity Classes (классы-сущности)
Рисунок 7.4 Диаграмма CourseOfferingInfo
Добавлены два новых класса – подклассы FulltimeStudent (студент очного отделения) и ParttimeStudent (студент вечернего отделения).
На данной диаграмме показаны классы ассоциаций, описывающие связи между классами Schedule и CourseOffering и добавлен суперкласс ScheduleOfferingInfo. Данные и операции, содержащиеся в этом классе (status – курс включен в график или отменен), относятся как к основным, так и к альтернативным курсам, в то время как оценка (grade) и окончательное включение курса в график могут иметь место только для основных курсов.
Рисунок 7.5 Полная диаграмма классов VOPC (без атрибутов и операций)
Создание ассоциаций
Ассоциации создают непосредственно на диаграмме классов. Панель инструментов диаграммы классов содержит кнопки для создания как одно, так и двунаправленных ассоциаций. Чтобы на диаграмме классов создать ассоциацию:
Нажмите на панели инструментов кнопку Association Class.
Проведите мышью линию ассоциации от одного класса к другому.
Создание агрегаций:
Нажмите кнопку Aggregate панели инструментов.
Проведите линию агрегации от класса-части к целому.
Создание обобщений. При создании обобщения может потребоваться перенести некоторые атрибуты или операции из одного класса в другой. Чтобы поместить обобщение на диаграмму классов:
Нажмите кнопку Generalize панели инструментов.
Проведите линию обобщения от подкласса к суперклассу.
Спецификации связей касаются имен ассоциаций, ролевых имена, множественности и классов ассоциаций. Чтобы задать множественность связи:
Щелкните правой кнопкой мыши на одном конце связи.
В открывшемся меню выберите пункт Multiplicity.
Укажите нужную множественность.
Повторите то же самое для другого конца связи.
Чтобы задать имя связи:
Выделите нужную связь.
Введите ее имя.
Чтобы задать связи ролевое имя:
Щелкните правой кнопкой мыши на ассоциации с нужного конца.
В открывшемся меню выберите пункт Target Role.
Введите ролевое имя.
Классы анализа преобразуются в проектные классы:
Проектирование граничных классов – зависит от возможностей среды разработки пользовательского интерфейса;
Проектирование классов-сущностей – с учетом соображений производительности (выделение в отдельные классы атрибутов с различной частотой использования);
Проектирование управляющих классов – удаление классов, реализующих простую передачу информации от граничных классов к сущностям;
Идентификация устойчивых (persistent) классов, содержащих хранимую информацию.
Обязанности классов, определенные в процессе анализа, преобразуются в операции. Каждой операции присваивается имя, характеризующее ее результат. Создается краткое описание операции, включая смысл всех ее параметров. Определяется видимость операции: public, private, protected.
Определяются (уточняются) атрибуты классов:
Кроме имени, задается тип и значение по умолчанию (необязательное);
Учитываются соглашения по именованию атрибутов, принятые в проекте и языке реализации;
Задается видимость атрибутов: public, private, protected;
При необходимости определяются производные (вычисляемые) атрибуты.
Определение атрибутов и операций для класса Student
Чтобы задать тип данных, значение по умолчанию и видимость атрибута:
Щелкните правой кнопкой мыши на классе в браузере.
В открывшемся меню выберите пункт Attributes.
Укажите тип данных в раскрывающемся списке типов или введите собственный тип данных.
В поле Initial (Первоначальное значение) введите значение атрибута по умолчанию.
В поле Scope выберите видимость атрибута: Public, Protected, Private. По умолчанию видимость всех атрибутов соответствует Private.
Рисунок 7,6 – Класс Student с полностью определенными операциями и атрибутами
Чтобы задать тип возвращаемого значения, стереотип и видимость операции:
Щелкните правой кнопкой мыши на операции в браузере.
В открывшемся меню выберите пункт Operations.
Укажите тип возвращаемого значения (Return Type) в раскрывающемся списке или введите свой тип.
Укажите стереотип в соответствующем раскрывающемся списке или введите новый.
В поле Scope укажите значение видимости операции: Public, Protected, Private. По умолчанию видимость всех операций установлена в Public.
Чтобы добавить к операции параметр:
Откройте окно спецификации операции.
Нажмите кнопку “Edit Parameters”.
Введите имя параметра.
Выберите тип данных аргумента.
Если надо, введите значение аргумента по умолчанию (Default).
Нажмите кнопку “Save” для сохранения параметра.
Разработать диаграммы классов по индивидуальному заданию.
Содержание отчета:
1. Краткое описание основных элементов диаграммы.
2. Диаграммы классов.
Вопросы для защиты
-
Цель диаграммы
-
Стереотипы классов.
-
Связи между классами.
Лабораторная работа № 8 Разработка диаграммы состояний и редактирование свойств ее элементов
Цель: Изучение технологии создания диаграммы состояний
1 Теоретический метериал
Определение состояний для классов моделируется с помощью диаграмм состояний.
Диаграммы состояний создаются для описания объектов с высоким уровнем динамического поведения.
В качестве примера рассмотрим поведение объекта класса CourseOffering. Он может находиться в открытом состоянии (возможно добавление нового студента) или в закрытом состоянии (максимальное количество студентов уже записалось на курс). Таким образом, конкретное состояние зависит от количества студентов, связанных с объектом CourseOffering. Рассматривая каждый вариант использования, можно выделить еще два состояния: инициализация (до начала регистрации студентов на курс) и отмена (курс исключается из расписания).
Рисунок 8.1 – Диаграмма состояний для класса CourseOffering
Создание диаграммы состояний для класса Course-Offering
Для создания диаграммы состояний:
Щелкните правой кнопкой мыши в браузере на нужном классе.
В открывшемся меню выберите пункт Add > Add Diagram > State Machine.
Чтобы добавить состояние:
На панели инструментов нажмите кнопку State.
Щелкните мышью на диаграмме состояний в том месте, куда хотите его поместить.
Чтобы добавить деятельность:
Щелкните правой кнопкой мыши по требуемому состоянию.
В открывшемся меню выберите пункт Operations.
В открывшемся окне в поле Name введите название деятельности.
В окне Action укажите do, чтобы сделать новое действие деятельностью.
Чтобы добавить входное действие, в окне Action укажите entry.
Чтобы добавить выходное действие, в окне Action укажите exit.
Чтобы добавить переход:
Нажмите кнопку Transition панели инструментов.
Нажмите левую клавишу мыши на состоянии, откуда осуществляется переход.
Не отпуская клавишу мыши проведите линию перехода до того состояния, где он завершается.
Чтобы добавить рефлексивный переход:
Нажмите кнопку Transition панели инструментов.
Щелкните на том состоянии, где осуществляется рефлексивный переход.
Чтобы добавить событие, ограждающее условие и действие:
Дважды щелкните на переходе, чтобы открыть окно его спецификации.
На вкладке General введите событие в поле Name.
Перейдите на вкладку Constraints.
Введите ограждающее условие в поле Guard.
Введите действие в поле Effect.
Для указания начального или конечного состояния:
На панели инструментов нажмите кнопку Initial или Final.
Щелкните мышью на диаграмме состояний в том месте, куда хотите поместить состояние.
Практическое задание
Разработать диаграмму состояний АСОИУ
Содержание отчета:
1. Краткое описание основных элементов диаграммы.
2. Диаграмма состояний АСОИУ
Вопросы для защиты
-
Цель диаграммы.
-
Понятие состояний.
-
Деятельность. Входное и выходное действие.
-
Изображение состояний и событий на диаграмме.
-
Ограждающие условия.
Лабораторная работа №9 Разработка диаграммы компонентов и редактирование свойств ее элементов
1 Теоретический материал
В Enterprise Architect диаграммы компонентов создаются в представлении компонентов системы. Отдельные компоненты можно создавать непосредственно на диаграмме, или перетаскивать их туда из браузера.
Создание диаграммы компонентов
Диаграмма компонентов показывает части программного обеспечения, встроенных контроллеров, их организация и зависимость. Диаграмма компонентов имеет более высокий уровень абстракции, чем диаграмма класса, обычно компонент осуществляется одним или более классами (или объектами) во время выполнения. Они являются структурными элементами, построенными так, что, в конечном счете, один из компонентов может охватить значительную часть системы.
Компонент является модульной частью системы, чье поведение определяется его provided и required интерфейсами; внутреннее функционирование компонента должно быть невидимым, а его использование независимым от окружающей среды.
Создание компонента:
Дважды щелкните мышью на главной диаграмме компонентов в представлении компонентов.
Нажмите на панели инструментов кнопку Component.
Щелкните мышью в том месте диаграммы, куда собираетесь поместить компонент.
В открывшемся окне введите название компонента, выберите его стереотип, язык программирования.
Практическое задание
Разработать диаграмму компонентов АСОИУ.
Содержание отчета:
1. Краткое описание основных элементов диаграммы.
2. Диаграмма компонентов АСОИУ.
Вопросы для защиты
1. Цель диаграммы.
2. Типы компонентов.
3. Связи между компонентами.
Лабораторная работа № 10 Разработка диаграммы размещения и редактирование свойств ее элементов
1. Теоретический материал
Распределенная конфигурация системы моделируется с помощью диаграммы размещения. Ее основные элементы:
узел (node) – вычислительный ресурс (процессор или другое устройство (дисковая память, контроллеры различных устройств и т. д.). Для узла можно задать выполняющиеся на нем процессы;
соединение (connection) – канал взаимодействия узлов (сеть). Пример: сетевая конфигурация системы регистрации.
Рисунок 10.1 Сетевая конфигурация системы регистрации
Распределение процессов по узлам сети производится с учетом следующих факторов:
используемые образцы распределения (трехзвенная клиент-серверная конфигурация, «толстый клиент», «тонкий клиент», равноправные узлы (peer-to-peer) и т.д.);
время отклика;
минимизация сетевого трафика;
мощность узла;
надежность оборудования и коммуникаций.
Создание диаграммы размещения системы регистрации
Чтобы открыть диаграмму размещения, надо дважды щелкнуть мышью на представлении Deployment View (представлении размещения) в браузере.
Чтобы поместить на диаграмму процессор:
На панели инструментов диаграммы нажмите кнопку Node.
Щелкните на диаграмме размещения в том месте, куда хотите его поместить.
Введите имя процессора.
В спецификациях процессора можно ввести информацию о его стереотипе, характеристиках. Стереотипы применяются для классификации процессоров.
Характеристики процессора – это его физическое описание. Оно может, в частности, включать скорость процессора и объем памяти.
Чтобы назначить процессору стереотип:
Щелкните правой кнопкой по изображению процессора.
В отрывшемся окне выберите пункт Properties.
На вкладке General выберите стереотип в поле Stereotype.
2. Практическое задание
Разработать диаграмму развертывания
Содержание отчета:
1. Краткое описание основных элементов диаграммы.
2. Диаграмма развертывания
Вопросы для защиты:
-
Цель диаграммы.
-
Изображение ее основных элементов.
Лабораторная работа № 11 Генерация кода
Цель Изучения влияния диаграммы классов на генерирования программного кода
1 Теоретический материал
Механизм генерации исходного кода предполагает формирование эквивалента исходного кода на основе классов или интерфейсов модели для последующей разработки и компиляции. Перед генерацией кода убедитесь, что свойства по умолчанию для генерации кода соответствует вашим требованиям. Свойства по умолчанию расположены в меню Tools > Options > Source Code Engineering. Настройки, которые вы можете задать по умолчанию, включают конструкторы и деструкторы, методы интерфейсов и варианты Unicode для выбранного языка.
Во время генерации кода Enterprise Architect выбирает информацию из логического и компонентного представлений модели и генерирует большой объем «скелетного» (skeletal) кода:
Классы. Генерируются все классы модели.
Атрибуты. Код включает атрибуты каждого класса, в том числе видимость, тип данных и значение по умолчанию.
Сигнатуры операций. Код содержит определения операций со всеми параметрами, типами данных параметров и типом возвращаемого значения операции.
Связи. Некоторые из связей модели вызывают создание атрибутов при генерации кода.
Компоненты. Каждый компонент реализуется в виде соответствующего файла с исходным кодом.
Например, результат генерации кода С++ класса Student:
#include "Schedule.cls"
#include "CourseOffering.cls"
class Student
{
public:
Student();
virtual ~Student();
Schedule *m_Schedule;
add_schedule(Schedule theSchedule);
delete_schedule(Semester forSemester);
Schedule get_schedule(Semester forSemester);
Double get_tuition();
Boolean has_pre_requisites(CourseOffering forCourseOffering);
private:
String address;
String name;
Integer studentID;
Date dateofBirth;
};
Для генерации кода группы классов:
Выделите группу классов на диаграмме.
Щелкните правой кнопкой мыши по элементу группы и в контекстном меню выберите Generate Code > Generate Selected elements.
В окне Batch Generation показывается процесс выполнения генерации.
Рисунок 11.1роцесс генерации кода группы классов
Практическое задание
Сгенерировать программный код
Содержание отчета:
Программный код
Вопросы для защиты:
1. Как влияет изменение свойств и операций классов на генерацию кода.
Список использованных источников
Советов, Б. Я. Информационные технологии : учебник / Б. Я. Советов, В. В. Цехановский.— 2-е изд., стер.— М. : Высш. шк., 2005.— 263 с.
Орлов, С. А. Технологии разработки программного обеспечения: Разработка сложных программных систем : учеб. пособие / С. А. Орлов.— 2-е изд. —СПб. : Питер, 2003.— 480 с.
Брайант, Р. Дэвид. Компьютерные системы: архитектура и программирование. Взгляд программиста: пер. с англ. / Р. Дэвид Брайант, О. Халларон; —СПб. : БХВ-Петербург, 2005.— 1104 с.
Орлов, С. А. Технологии разработки программного обеспечения: Разработка сложных программных систем : учебник / С. А. Орлов.— 3-е изд.— СПб. : Питер, 2004.— 527 с.
Леоненков, А. В. Самоучитель UML / А. В. Леоненков.— 2-е изд., перераб. и доп.— СПб. : БХВ-Петербург, 2004. – 432 с.
Буч, Г. UML. Классика computer science: пер. с англ. / Г. Буч, А. Якобсон, Дж. Рамбо; Под ред. С. Орлова— 2-е изд.—СПб.: Питер, 2006.— 736 с.
Буч, Г. Язык UML. Руководство пользователя: пер. с англ. / Г. Буч, Д. Рамбо, И. Якобсон; —2-е изд.—М. : ДМК Пресс, 2007. - 496с.
Рамбо, Дж. UML 2.0. Объектно-ориентированное моделирование и разработка / Дж. Рамбо, М. Блаха.— 2-е изд.— СПб. : Питер, 2007.— 544 с.
Грофф Джеймс, Р. Энциклопедия SQL / Дж. Грофф, П. Вайнберг . — 3-е изд. — СПб. : Питер, 2003. — 896 с. - эл. копия (pdf).
Ульман, Л. MySQL / Л. Ульман.— М.: ДМК Пресс; СПб. : Питер, 2004. – 352 с.
Кузин, А. В. Базы данных : учеб. пособие / А. В. Кузин, С. В. Левонисова.— М.: Академия, 2005. — 320 с.
Диго, С. М. Базы данных: проектирование и использование : учебник / С. М. Диго.— М.: Финансы и статистика, 2005.— 592 с.
Черемных, С. В. Моделирование и анализ систем: IDEF-технологии: практикум / С. В. Черемных, В. С. Ручкин, И. О. Семенов.—М.: Финансы и статистика, 2005.— 192 с.
Роб, П. Системы баз данных: проектирование, реализация и управление : пер. с англ. / П. Роб, К. Коренел.— 5-е изд., перераб. и доп.— СПб.: БХВ-Петербург, 2004. —1040 с.
страница 1 страница 2
|