Объектно-ориентированный анализ и дизайн Copyright © Мухортов В. В., Няньчук-Татарский Н. А., Copyright © ООО «Интекс»,
Классы Class – набор объектов с общей структурой и поведением Interface – базовый класс, задающий только поведение, имеет стереотип > Abstract class – базовый класс, не имеющий экземпляров Parameterized class – параметризованный класс, шаблон Instantiated class – депараметризованный шаблон
Примеры классов
Атрибуты классов Attribute – атрибут (поле) Class attribute – атрибут класса (static) Derived attribute – производный ( вычислимый) атрибут Export control – доступ (public, protected, private) Containment – способ включения (value, reference) Syntax: :
Атрибуты классов name, birth_date – аттрибуты age – производный аттрибут (вычисляется через birth_date)
Атрибуты классов name, birth_date и age - атрибуты класса
Методы(операции) Method (operation) – метод Class method – метод класса (static) Export control – public, protected, private Syntax: name( ) : Parameter: parameter_name : type
Диаграмма классов - определяет типы объектов системы и статические связи между ними
Отношения между классами Зависимость Ассоциация Агрегация (отношение часть-целое) Композиция (отношение часть-целое c контролем жизненного цикла) Генерализация (наследование) Реализация (выполнение контракта)
Ассоциация (Association) Ассоциация - отношение взаимодействия Обладает 2-мя ролями Роль обладает множественностью (1, n, *, 0..n, 1..n, 1..*) Пример: сотрудник может занимать несколько должностей, на одной должности находится не более одного сотрудника
Ассоциация Ассоциация может иметь выделенное направление Должность связана базовым тарифом оплаты Тариф оплаты никак не связан с конкретной должностью
Агрегация (Aggregation) Агрегация – отношение часть-целое
Композиция (Composition) Композиция – частный случай агрегации Жизненный цикл частей и целого совпадают Отделы не существуют без компании Часть принадлежит только одному целому
Зависимость (Dependency)
Генерализация (Generalization) Генерализация (наследование, обобщение) – отношение частное-общее
Реализация (Realization) Реализация – отношение выполнения соглашения Треугольник и квадрат реализуют алгоритм вращения, специфицированный абстрактной сущностью «Фигура»
Диаграммы пакетов Package – пакет. Общий механизм организации элементов модели в группы Имеет имя Определяет пространство имен Может быть импортирован другим пакетом
Пример: постановка задачи Исходные данные: Есть класс Service с некоторым полезным методом do (): ResultSet Цель: Обеспечить удаленному клиенту прозрачный доступ к этому методу
Диаграмма пакетов
пакет: service
пакет: service::local
пакет: service::server
пакет: service::agent
стереотипы пакетов system – вся система subsystem – подсистема facade – представление другого пакета Например, пакет внешних интерфейсов подсистемы framework – набор шаблонов stub – заместитель другого пакета Созданный, например, для тестирования
Диаграммы взаимодействия Последовательностей - Sequence diagrams Коопераций (Коллабораций) - Collaboration diagrams Отражают динамические аспекты поведения объектов Семантически эквивалентны Содержат: Объекты Связи Сообщения Потоки данных
Диаграмма последовательностей
Диаграмма коопераций
Цели фазы анализа и дизайна Задачи: Трансформировать требования собранные на предыдущем этапе в дизайн системы Проработать архитектуру системы Адаптировать дизайн к среде исполнения Модели: Аналитическая модель (Analysis model) Design model
Аналитическая модель Абстрактная модель системы, описывающая ее в терминах use-case realization. Язык реализации классов не фиксируется. Обычно не сопровождается. Элементы analysis model: Use-case realization – реализация use-case, набор activity, state, collaboration и class диаграмм Boundary class – класс, разграничивающий actor-ов и систему Control – класс, управляющий другими классами Entity – класс, моделирующий информацию, используемую в системе
Boundary class -Класс, разграничивающий (под-)систему и окружение. UML: class со стереотипом > Примеры: классы пользовательского интерфейса, классы интерфейсов систем и устройств 3 представления boundary class в Rational Rose
Control -Класс, управляющий другими классами. Можно сказать, что control исполняет use-case UML: class со стереотипом > 3 представления control class в Rational Rose
Entity -Класс, моделирующий информацию, используемую в системе UML: class со стереотипом > 3 представления entity class в Rational Rose
Проверка контрактов
Диаграмма классов
Заключение контракта
Диаграмма классов
Диаграмма взаимодействия
Ограничения на связи From\To (navigability) BoundaryEntityControl Boundary communicate subscribe communicate Entity communicate subscribe Control communicate subscribe communicate