- •Вступление
- •Задачи курса.
- •Описание пособия
- •Тема 1. Основные принципы объектно-ориентированного проектирования. История развития языка uml. Программный продуктRationRose. Процедурно-ориентированная методология
- •Объектно-ориентированная методология
- •Особенности унифицированного языка моделирования (uml)
- •Основные диаграммы языка uml:
- •Программный продукт RationalRose
- •Основные возможности RationalRose:
- •Вопросы:
- •Тема 2 Диаграмма прецедентов (Use Case Diagram) Назначение диаграммы прецедентов
- •Основные элементы диаграммы
- •Типы отношений на диаграмме прецедентов
- •Вопросы:
- •Тема 3. Диаграмма последовательности (SequenceDiagram)
- •Вопросы:
- •Тема 4. Диаграмма классов (ClassDiagram) Основные понятия
- •Типы отношений на диаграмме классов
- •Выявление классов (одна из основных задач проектирования системы- определить классы и отношения между ними)
- •Вопросы
- •Тема 5. Диаграмма кооперации (Collaboration Diagram)
- •Вопросы:
- •Тема 6. Диаграмма состояний (Statechart Diagram)
- •Рассмотрим примеры:
- •Спецификация состояний
- •Переход (transition) из одного состоянияв другое (из предыдущего в последующее)
- •Вопросы:
- •Тема 7. Диаграмма компонентов (Component Diagram) Основные понятия
- •Типы компонентов
- •Подготовка к генерации программного кода:
- •Проверка модели на корректность
- •Установка свойств генерации кода
- •Генерация программного кода
- •Полиморфизм
- •Инкапсуляция
- •Абстрагирование
- •Отношение агрегации и композиции
- •Задания для знакомства с RationRose. Создание пакетов.
- •Задача для лабораторных работ
- •Лабораторная работа № 2. Создание диаграммы прецедентов.
- •Этапы выполнения работы Создать основных Прецедентов и Актёров
- •Добавить ассоциации
- •Создать уточняющих прецедентов и актёров
- •Указать абстрактных актёров
- •Указать связи обобщения между актёрами
- •Добавить связи расширения, включения, ассоциации
- •Добавить интерфейсы
- •Прикрепление файла с документацией к прецеденту
- •Лабораторная работа № 3. Создание диаграмм последовательностей
- •Этапы выполнения работы Настройка
- •Создание диаграммы последовательности
- •Добавление на диаграмму актёровиобъектов
- •Добавление сообщенийна диаграмму
- •Добавление на диаграмму примечаний(нотаций).
- •Добавление нового объектаисообщений
- •Указание типов сообщений
- •Построенная диаграмма должна выглядеть как на рис. 3l.2.
- •Лабораторная работа № 4. Диаграмма классов.
- •Этапы выполнения работы Настройка
- •Создание пакетов
- •Создание Главной диаграммы классов
- •Создание диаграммы классов для сервиса (прецедента) «Наполнить виртуальную корзину»
- •Добавление стереотипов к классам
- •Объединение классов в пакеты
- •Соотнесение объектов с классами
- •Добавление атрибутов и методов для классов
- •Структурирование классов
- •Лабораторная работа № 5. Определение связей между классами.
- •Добавление связей обобщения
- •Построение недостающих связей (с указанием свойств)
- •Построение связей между пакетами
- •Построение диаграммы кооперации
- •Лабораторная работа № 6.Создание диаграмм компонентов. Генерация программного кода. Проверка построенной модели
- •Этапы создания диаграммы компонентов Создание пакетов компонентов
- •Добавление пакетов и связей на Главную диаграмму компонентов
- •Добавление компонентов к пакетам и рисование зависимостей
- •Создание диаграммы компонентов для сервиса «наполнить виртуальную корзину»
- •Размещение компонентов на диаграмме компонентов «наполнить виртуальную корзину»
- •Соотнесение классов с компонентами
- •Добавление зависимостейна диаграмму компонентовTo_fill_Virtual_Basket
- •Ввод тел пакетов на диаграмму Компонентов To_fill_Virtual_Basket
- •Заключение
- •Новые термины
- •Источники
Типы отношений на диаграмме классов
При построении диаграмме классов могут быть использованы следующие отношения:
Отношение зависимости (dependency relationship).
Отношение ассоциации (association relationship).
Отношение обобщения (generalization relationship).
Отношение реализации (realization relationship).
Отношение зависимости является наиболее общей формой отношения между классами. На диаграмме данное отношение изображается пунктирной линией со стрелкой, направленной от зависимого класса к источнику зависимости. Отношение зависимости используется в ситуации, когда изменения одного класса могут потребовать изменения другого зависимого от него класса. На рис. 4.4 представлена следующая ситуация - свойства объектов класса Заказ автомобиля зависят от свойств объектов класса Автомобиль.
|
Рис. 4.4. Пример отношения зависимостимежду двумяклассами. |
Для отношения ассоциации используется понятие арности - количество классов, участвующих в данном отношении. Бинарная ассоциация (в отношении участвуют два класса) является частным случаем N-арной ассоциации.
Специальной формой отношения ассоциации является отношение агрегации, которое также может быть любой арности. Отношение агрегации используется в том случае, когда один класс (класс-целое) может быть представлен декомпозицией других классов (класс-часть) см. рис.4.5.
|
Рис. 4.5. Пример отношения агрегациимежду классами |
Рис. 4.6. Пример отношения композиции (частный случай отношения агрегации) между классами. |
Отношение обобщения является отношением между более общим классом (классом-родителем) и более частным классом (классом-потомком). При этом предполагается, что класс-потомок обладает всеми свойствами и поведением класса-потомка, а также может иметь свои собственные свойства и поведение, которые отсутствуют у класса-родителя см. рис. 4.7 (классы Голкипер, Защитник, Играющий тренер наследуют свойства и поведение родительского класса Футболист, класс Играющий тренер наследует свойства и поведения класса Тренер). Наследуются потомками не все свойства класса-родителя (атрибуты и методы), а только с областью видимости общей и закрытой (public, protect).
-
Рис. 4.7. Пример отношения обобщения между классами.
Выявление классов (одна из основных задач проектирования системы- определить классы и отношения между ними)
Для выявления классов следует рассмотреть документацию к дисграммам прецедентов. Имена существительные, которые участвуют в этом описании, позволят определить классы. Имена существительные могут стать: актёрами, классами (и как следствием объектом этого класса для построения диаграммы последовательности) или атрибутами классов.
Вторым способом является анализ диаграмм последовательностей. Но этих диаграмма следует найти схожие объекты, т.е. те объекты, которые обладают одинаковыми данными и поведением. Пример. На диаграммах последовательности участвуют два объекта Счет Мистера Иванова и Cчет Миссис Петровой. Оба счета обладают такими свойствами как баланс и пароль, оба счета можно пополнять, проверять пароль и т.д. Тогда следует создать класс Счёт.
Но не все классы можно получить из анализа диаграммы последовательности или документации с описанием сценариев поведения прецедентов. После выявления классов указанными способами следует еще проанализировать систему по трем направлениям:
классы, необходимые для описания основных сущностей (стереотип <<Entity>>);
Классы-сущности присутствуют на каждой диаграмме классов. Они описывают основные понятия системы.
классы, необходимые для управления системой и её элементами (стереотип <<Control>>);
Управляющие классы отвечают за координацию действий других классов. Представителями могут быть следующие классы: Менеджер, Менеджер безопасности, Менеджер взаимодействия и т.д.
классы, необходимые для связи с внешним миром (стереотип <<Boundary>>).
Пограничные классы расположены на границе системы со всем остальным миром. Они включают в себя формы, отчёты, интерфейсы с аппаратурой (принтеры, сканеры), интерфейсы с другими системами. Для выявления пограничных классов следует проанализировать диаграмму прецедентов. Для каждого актера связанного с прецедентом, должен быть пограничный класс, который позволяет данному актёру (внешней сущности) взаимодействовать с системой, чтобы получить соответствующий сервис. Для нескольких актёров можно построить один "пограничный" класс.