Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование

Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование, страница 51

Описание файла

PDF-файл из архива "Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование", который расположен в категории "книги и методические указания". Всё это находится в предмете "объектно-ориентированный анализ и проектирование" из седьмого семестра, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 51 страницы из PDF

Что такое реализации прецедентов?После нахождения классов анализа ключевым моментом в анализе является поиск реализаций прецедентов. Они включают наборы классов,реализующих поведение, определенное в прецеденте. Пусть, к приме26712.3. Что такое реализации прецедентов?реализация прецедентапрецедентPlace Order1«trace»1«use case realization»Place OrderзависимостьРис. 12.3. Синтаксис реализации прецедентару, есть прецедент BorrowBook (взять книгу на время) и идентифицированы классы анализа Book (книга), Ticket (формуляр), Borrower (пользователь библиотеки) и актер Librarian (библиотекарь).

Необходимо создать реализацию прецедента, демонстрирующую взаимодействие этихклассов и их объектов, которое направлено на реализацию поведения,определенного в BorrowBook. Таким образом, прецедент, который является описанием функциональных требований, превращается в диаграммы классов и взаимодействий, а это уже высокоуровневое описание системы.Реализации прецедентов показывают, как взаимодействуют классы,чтобы реализовать функциональность системы.Хотя UML предлагает символ для реализаций прецедентов (рис. 12.3),они редко представляются в моделях явно. Причина состоит в том, чтоу каждого прецедента только одна реализация.

Таким образом, создание диаграммы реализаций прецедентов не привнесет никакой дополнительной информации. Соответствующие элементы (табл. 12.1) просто добавляются в инструмент моделирования, и реализации прецедентов становятся неявной частью базы (задним планом) модели.Реализации прецедентов – это неявная часть базы модели; обычно онине отображаются на диаграммах.Таблица 12.1ЭлементНазначениеДиаграммыПоказывают классы анализа, взаимодействующие для реаклассов анализа лизации прецедента.ДиаграммыПоказывают взаимодействия определенных экземпляров,взаимодействий реализующих прецедент; это «моментальные снимки» работающей системы.ОсобыетребованияПроцесс реализации прецедентов может выявить новые характерные для прецедента требования; они должны бытьзафиксированы.УточнениепрецедентовВо время реализации может быть обнаружена новая информация, т.

е. происходит обновление исходного прецедента.268Глава 12. Реализация прецедентов12.4. Реализация прецедента – элементыРеализации прецедентов включают элементы, показанные в табл. 12.1.По сути, реализация прецедента – это процесс уточнения. Вы выбираете один из аспектов поведения системы, зафиксированный в прецеденте и любых ассоциированных с ним требованиях, и моделируете то,как это все может быть реализовано через взаимодействия экземпляров классов анализа, которые были найдены.

Тем самым вы проходитепуть от общей спецификации требуемого поведения до довольно подробного описания взаимодействий между классами и объектами, которые сделают это поведение реальным.Диаграммы классов анализа «рассказывают историю» об одном или более прецедентах.Диаграммы классов анализа – жизненно важная часть реализациипрецедента.

Они должны «рассказывать истории» о системе: о том,как должны быть взаимосвязаны классы, чтобы их экземпляры могливзаимодействовать для реализации поведения, определенного в одномили более прецедентах.Диаграммы взаимодействий показывают, как взаимодействуют экземпляры классификаторов для реализации поведения системы.Кроме диаграмм классов можно создать диаграммы, демонстрирующиесовместную работу и взаимодействие экземпляров этих классов анализа, направленные на реализацию части или всего поведения прецедента.Эти диаграммы называют диаграммами взаимодействий. Существуетчетыре типа таких диаграмм: диаграммы последовательностей, коммуникационные диаграммы, диаграммы обзора взаимодействий и временные диаграммы.

Диаграммы последовательностей и коммуникационные обсуждаются в этой главе, диаграммы обзора взаимодействий –в разделе 15.12, а временные диаграммы – в разделе 20.7.ОО моделирование – итеративный процесс. Поэтому не надо удивляться, если при более глубоком моделировании будут выявлены новыетребования или понадобится изменить существующие прецеденты.

Всеэто – часть реализации прецедентов. Существующие документы должны соответствовать самой последней информации о системе. Необходимо обновлять модель прецедентов, модель требований и классы анализа, чтобы все они были согласованными.12.5. ВзаимодействияВзаимодействия – это просто единицы поведения классификатора.Этот классификатор, который называют контекстным классифика+тором (context classifier), предоставляет контекст взаимодействия.26912.6.

Линии жизниВзаимодействие – это единица поведения контекстного классификатора.Взаимодействие может использовать любую из возможностей своегоконтекстного классификатора или любые возможности, к которымклассификатор имеет доступ (например, временные или глобальныепеременные).В реализации прецедента контекстным классификатором являетсяпрецедент.

Создается одно или более взаимодействий, чтобы показать,как экземпляры классификаторов (в данном случае классов анализа),обмениваясь сообщениями, могут реализовать определенное прецедентом поведение.В ходе работы над диаграммами взаимодействий обнаруживается всебольше и больше операций и атрибутов классов анализа. Как частьпроцесса реализации прецедента должно осуществляться обновлениедиаграмм классов анализа этой информацией.Ключевые элементы диаграмм взаимодействий – линии жизни и сообщения. Они подробно рассматриваются в следующих двух разделах.12.6.

Линии жизниЛиния жизни – участник взаимодействия.Линия жизни (lifeline) представляет одного участника взаимодействия, т. е. она представляет, как экземпляр конкретного классификатора участвует во взаимодействии. Синтаксис линии жизни приведенна рис. 12.4.У каждой линии жизни есть необязательное имя, тип и необязательный селектор.• Имя используется для обращения к линии жизни во взаимодействии.• Тип – имя классификатора, экземпляр которого представляет линия жизни.• Селектор – логическое условие, которое может использоваться длявыбора единственного экземпляра, удовлетворяющего этому условию. Если селектора нет, линия жизни ссылается на произвольныйэкземпляр классификатора.

Селекторы действительны, только есjimsAccount [ id = "1234" ] : AccountимяселектортипРис. 12.4. Синтаксис линии жизни270Глава 12. Реализация прецедентовли кратность типа больше единицы, т. е. существует множество экземпляров, из которых можно выбирать. На рис.

12.4 селектор выбирает экземпляр класса Account, id которого – «1234».Линии жизни изображаются той же пиктограммой, что и их тип, и имеют вертикальный пунктирный «хвост», когда используются в диаграммах последовательностей. Некоторые примеры линий жизни приведены на рис. 12.5.Линии жизни представляют, как экземпляр классификатора участвуетво взаимодействии.Линию жизни объекта можно рассматривать как элемент, которыйпредставляет, как экземпляр классификатора может участвовать вовзаимодействии. Однако она не представляет никакого конкретногоэкземпляра классификатора. Это едва различимое, но важное отличие. Взаимодействие описывает, как экземпляры классификатора взаимодействуют в общем, а не выделяет какоето одно конкретное взаимодействие между рядом конкретных экземпляров.

Поэтому можносчитать, что линия жизни объекта представляет роль, которую можетиграть во взаимодействии экземпляр классификатора.Реальные экземпляры можно показать прямо на диаграмме взаимодействий. Используется обычная нотация для экземпляров: символклассификатора с именем экземпляра, селектор (если таковой имеется), двоеточие и имя классификатора; все подчеркивается.Различие между линиями жизни и экземплярами послужило причинойпоявления двух разных форм диаграмм взаимодействий.

Общая форма(generic form) диаграммы взаимодействий показывает взаимодействиемежду линиями жизни, представляющими произвольные экземпляры. Форма экземпляров (instance form) диаграммы взаимодействийпоказывает взаимодействие между конкретными экземплярами. Общая форма диаграммы является более удобной и часто используемой.Чтобы взаимодействие было полным, должны быть определены сообщения, посылаемые между линиями жизни.

Сообщения рассматриваются в следующем разделе.jim:Personимя:OrderProcessingOrders.jarклассификаторРис. 12.5. Примеры пиктограмм линии жизни27112.7. Сообщения12.7. СообщенияСообщение – это особый вид коммуникации между линиями жизни.Сообщение представляет особый тип коммуникации между двумя линиями жизни. Такое взаимодействие может включать:•вызов операции – сообщение вызова;•создание или уничтожение экземпляра – сообщение создания илиуничтожения;•отправку сигнала.Cообщение вызова, получаемое линией жизни, является запросом навызов операции, имеющей аналогичную сообщению сигнатуру.

Такимобразом, для каждого поступающего на линию жизни сообщения вызова в классификаторе этой линии жизни должна существовать соответствующая операция. UML допускает несовпадение (рассинхронизацию) сообщений и операций на диаграммах взаимодействий, что обеспечивает возможность динамической и гибкой работы с моделью. Однако в ходе дальнейшего анализа сообщения и операции должны бытьсинхронизированы.Когда линия жизни посылает сообщение, в ней находится фокус управ+ления (focus of control), или активация (activation). По мере развитиявзаимодействия во времени активация перемещается между линиямижизни.

Это движение называют потоком управления (flow of control).Сообщения отображаются в виде стрелок между линиями жизни. Еслилиния жизни имеет пунктирный «хвост» (как на диаграммах последовательностей), сообщения обычно размещают между пунктирнымилиниями. В противном случае сообщения выстраиваются между пиктограммами линий жизни. В данной книге приводится множествопримеров изображения сообщений. Существует семь типов сообщений(табл. 12.2).Таблица 12.2СинтаксисИмяСемантикаaMessage(aParameter)СинхронноесообщениеОтправитель ожидает завершения выполнения сообщения получателем.aMessage(aParameter)Асинхронное Отправитель посылает сообщение и продолсообщениежает исполнение – он не ожидает возвратаот получателя.«create» aMessage():AВозвратПолучатель сообщения возвращает фокусуправления отправителю этого сообщения.СозданиеобъектаОтправитель создает экземпляр классификатора, определенного получателем.272Глава 12. Реализация прецедентовТаблица 12.2 (продолжение)Синтаксис«destroy»ИмяСемантикаУничтожение объектаОтправитель уничтожает получателя.Если у линии жизни есть «хвост», он завершается символом X.НайденноесообщениеОтправитель сообщения находится вне области видимости взаимодействия.Используется, когда необходимо показатьполучение сообщения без указания его источника.ПотерянноесообщениеСообщение никогда не достигает точкисвоего назначения.Может использоваться для обозначениясостояний ошибки, при которых пропадают сообщения.12.7.1.

Свежие статьи
Популярно сейчас