
- •Лабораторная работа №5
- •Основы объектной технологии
- •Объект-экземпляр
- •Объектная нотация
- •Как объекты кооперируются
- •Как объекты идентифицируют друг друга
- •Постоянная связь
- •Временная связь
- •Атрибуты
- •Тип атрибута, обозначающий класс
- •Видимость атрибутов
- •Операции
- •Видимость операций
- •Ассоциации
- •Порядок ассоциации
- •Кратность ассоциации
- •Ассоциативная связь и объем ассоциации
- •Ассоциативный класс
- •Наставление по моделированию анализа
- •Internet-магазин
- •Моделирование прецедентов
- •Субъекты
- •Прецеденты
- •Распределение требований по субъектам и прецедентам
- •Документирование прецедентов
- •Моделирование видов деятельности
- •Виды деятельности
- •Диаграмма видов деятельности
- •Моделирование классов
- •Соответствие функциональных требований и классов-сущностей (Іnternet - магазин)
- •Ассоциации
- •Агрегации
- •Обобщения
- •Диаграмма классов
- •Моделирование взаимодействий
- •Взаимодействия
- •Диаграмма последовательностей
- •Моделирование состояний
- •Состояния и переходы
- •Диаграмма состояний
Диаграмма классов
Диаграмма классов составляет, так сказать, "сердце" и "душу" объектно-ориентированной системы. В данном наставлении ставится цель только продемонстрировать возможности статического моделирования применительно к модели классов.
В классы пока что не введено ни одной новой операции. Операции принадлежат скорее к сфере проектирования, чем анализа. После того, как операции в конечном итоге вводятся в классы, модель классов в явном виде определяет поведение системы.
На рисунке 5.15 показана диаграмма классов для приложения Internet-магазин. Это еще не законченное решение, поскольку, например, для практического решения может потребоваться введение дополнительных атрибутов.
Рисунок 5.15 - Диаграмма классов для приложения Internet-магазин
Моделирование взаимодействий
Моделирование взашюдействий (interaction modeling) охватывает вопросы взаимодейст вия между объектами, необходимыми для выполнения прецедента. Модели взаимодейстоил используются на более развитых стадиях анализа требований, когда становится известной модель классов, так что ссылки на объекты опираются на модель классов.
Диаграммы взаимодействий разделяются на два вида — диаграммы последовательностей и диаграммы кооперации. Они могут использоваться как взаимозаменяемые, и, конечно, многие CASE-средства поддерживают автоматическое преобразование одной модели в другую. Разница между моделями заключается в акцентах. Модели последовательностей концентрируются на временных последовательностях событий, а в моделях кооперации основное внимание уделяется отношениям между объектами.
Взаимодействия
Взаимодействие (interaction) представляет собой набор сообщений, свойственных поведению некоторой системы, которыми обмениваются объекты в соответствии с установленными между ними связями (последние могут быть постоянными или временными. Диаграмма последовательностей представляется' двумерным графом.
Стрелки представляют каждое сообщение, направляемое от вызывающего объекта (отправителя) к операции (методу) вызываемого объекта (полрштеля). Для каждого сообщения, как минимум, указывается его имя.
Фактические аргументы могут быть входными аргументами (передаются от отправителя к получателю) или выходными аргументами (передаются от получателя назад к отправителю). Входные аргументы могут быть обозначены ключевым словом in (если ключевое слово отсутствует, то предполагается, что аргумент — входной). Выходные аргументы обозначаются ключевым словом out. Допускаются также аргументы типа inout ("входные-выходные"), однако, для об'ьектноориентированного подхода они не характерны. Сообщение getCourseName, отправленное объекту, обозначенному переменной crs_ref, имеет один выходной аргумент и ни одного входного:
crs_ref.getCourseName(out crs_name)
Показывать на диаграмме возврат управления от объекта-получателя объекту-отправителю не обязательно. Стрелка, указывающая на объект-получатель, предполагает автоматический возврат управления отправителю. Получатель знает уникальный идентификатор объекта (OID) отправителя.
Сообщение может быть отправлено коллекции (collection) объектов (коллекция может быть набором, списком, массивом объектов и т.д.)- Довольно частой является ситуация, когда вызывающий объект связан с несколькими объектами-получателями ' (поскольку кратность ассоциации указана как "один ко многим" или "многие ко многим"). Итеративный маркер— звездочка перед обозначением сообщения — указывает на процесс итерации сообщения по всей коллекции.