Слайд 1Объектно-ориентированный анализ и дизайн
Copyright © Мухортов В. В., Няньчук-Татарский Н. А.,
2001-2004
Copyright © ООО «Интекс», 2003-2004
Слайд 2Классы
Class – набор объектов с общей структурой и поведением
Interface – базовый
класс, задающий только поведение, имеет стереотип <>
Abstract class – базовый класс, не имеющий экземпляров
Parameterized class – параметризованный класс, шаблон
Instantiated class – депараметризованный шаблон
Слайд 4 Атрибуты классов
Attribute – атрибут (поле)
Class attribute – атрибут класса (static)
Derived attribute
– производный (вычислимый) атрибут
Export control – доступ (public, protected, private)
Containment – способ включения (value, reference)
Syntax: :<=default_value>
Слайд 5 Атрибуты классов
name, birth_date – аттрибуты
age – производный аттрибут (вычисляется через birth_date)
Слайд 6 Атрибуты классов
name, birth_date и age - атрибуты класса
Слайд 7 Методы(операции)
Method (operation) – метод
Class method – метод класса (static)
Export control –
public, protected, private
Syntax:
name() :
Parameter: parameter_name : type
Слайд 8Диаграмма классов
- определяет типы объектов системы и статические связи между ними
Слайд 9Отношения между классами
Зависимость
Ассоциация
Агрегация (отношение часть-целое)
Композиция (отношение часть-целое c контролем жизненного цикла)
Генерализация
(наследование)
Реализация (выполнение контракта)
Слайд 10Ассоциация (Association)
Ассоциация - отношение взаимодействия
Обладает 2-мя ролями
Роль обладает множественностью (1,
n, *, 0..n, 1..n, 1..*)
Пример: сотрудник может занимать несколько должностей, на одной должности находится не более одного сотрудника
Слайд 11Ассоциация
Ассоциация может иметь выделенное направление
Должность связана базовым тарифом оплаты
Тариф оплаты никак не связан с конкретной должностью
Слайд 12Агрегация (Aggregation)
Агрегация – отношение часть-целое
Слайд 13Композиция (Composition)
Композиция – частный случай агрегации
Жизненный цикл частей и целого совпадают
Отделы
не существуют без компании
Часть принадлежит только одному целому
Слайд 15Генерализация (Generalization)
Генерализация (наследование, обобщение) – отношение частное-общее
Слайд 16Реализация (Realization)
Реализация – отношение выполнения соглашения
Треугольник и квадрат реализуют алгоритм вращения,
специфицированный абстрактной сущностью «Фигура»
Слайд 17Диаграммы пакетов
Package – пакет. Общий механизм организации элементов модели в группы
Имеет
имя
Определяет пространство имен
Может быть импортирован другим пакетом
Слайд 18Пример: постановка задачи
Исходные данные:
Есть класс Service с некоторым полезным методом do
(): ResultSet
Цель:
Обеспечить удаленному клиенту прозрачный доступ к этому методу
Слайд 25 стереотипы пакетов
system – вся система
subsystem – подсистема
facade – представление другого
пакета
Например, пакет внешних интерфейсов подсистемы
framework – набор шаблонов
stub – заместитель другого пакета
Созданный, например, для тестирования
Слайд 26Диаграммы взаимодействия
Последовательностей - Sequence diagrams
Коопераций (Коллабораций) - Collaboration diagrams
Отражают динамические аспекты поведения объектов
Семантически эквивалентны
Содержат:
Объекты
Связи
Сообщения
Потоки данных
Слайд 29Цели фазы анализа и дизайна
Задачи:
Трансформировать требования собранные на предыдущем
этапе в дизайн системы
Проработать архитектуру системы
Адаптировать дизайн к среде исполнения
Модели:
Аналитическая модель (Analysis model)
Design model
Слайд 30Аналитическая модель
Абстрактная модель системы, описывающая ее в терминах use-case realization.
Язык реализации классов не фиксируется. Обычно не сопровождается.
Элементы analysis model:
Use-case realization – реализация use-case, набор activity, state, collaboration и class диаграмм
Boundary class – класс, разграничивающий actor-ов и систему
Control – класс, управляющий другими классами
Entity – класс, моделирующий информацию, используемую в системе
Слайд 31 Boundary class
Класс, разграничивающий (под-)систему и окружение.
UML: class со стереотипом
Примеры:
классы пользовательского интерфейса, классы интерфейсов систем и устройств
3 представления boundary class в Rational Rose
Слайд 32 Control
Класс, управляющий другими классами. Можно сказать, что control “исполняет” use-case
UML: class
со стереотипом <
>
3 представления control class в Rational Rose
Слайд 33 Entity
Класс, моделирующий информацию, используемую в системе
UML: class со стереотипом
3
представления entity class в Rational Rose