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

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

Файл №1158625 Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование (Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование) 56 страницаДж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование (1158625) страница 562019-09-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 56)

12.24 показан пример ветвления в нашей системе регистрациикурсов. Эта коммуникационная диаграмма реализует прецедент RegisterStudentForCourse (зарегистрировать студента на курс). В этой системерегистрация является трехэтапным процессом:294Глава 12. Реализация прецедентовsd RegisterStudentForCourse1: register ( "Jim", "UML" )1.1: student = findStudent( "Jim" )1.2: course = findCourse( "UML" ):RegistrationManager1.4 [!found] : error():Registrar1.3 [found] : register( student )сторожевое условиеfound = (student != null) & (course != null)course:CourseРис. 12.24.

Коммуникационная диаграмма с ветвлением•••найти запись студента – нельзя зарегистрировать студента на курс,если его нет в системе;найти необходимый курс;зарегистрировать студента на курс.На рис. 12.24 широко представлены условия, чтобы продемонстрировать варианты их применения в коммуникационных диаграммах. Условия не имеют формального синтаксиса, но обычно являются выражениями, в которых используются временные переменные областидействия текущего фокуса управления или атрибуты классов, участвующих во взаимодействии. На рис. 12.24 результаты операций findStudent(…) и findCourse(…) записываются в две временные переменные:student (студент) и course (курс).

Затем значения этих переменных используются для вычисления значения временной булевой переменнойfound (найден). found применяется для образования ветви в шаге 1.3.Кроме того, found используется для принятия решения о формировании ошибки для :Registrar на шаге 1.4.Рассмотрим пошаговую интерпретацию рис. 12.24.1. registerStudent( "Jim", "UML" ) – актер :Registrar посылает сообщение registerStudent( "Jim", "UML" ) объекту :RegistrationManager.1.1. findStudent( "Jim" ) – :RegistrationManager сам себе посылает сообщение findStudent( “Jim” ). Возвращаемое в результате этой операции значение сохраняется в переменной student. В случае неудачного поиска значение равно null.1.2. findCourse( "UML" ) – :RegistrationManager сам себе посылает сообщение findCourse( "UML" ).

Возвращаемое в результате этой операции значение сохраняется в переменной course. В случае неудачного поиска значение равно null.1.3. [found] register( student ) – :RegistrationManager посылает сообщение register( student ) объекту course. Это сообщение защищеноусловием и будет послано, если и student, и course неnull. Иначе12.12.

Что мы узнали295говоря, попытка зарегистрировать student на course делаетсятолько в случае успешного обнаружения обоих объектов, student и course.1.4. [!found] : error() – если found имеет значение false, вызываетсяоперация error() объекта :Registrar.На коммуникационных диаграммах довольно сложно отчетливо показать ветвления – создается впечатление, что условия разбросаны повсей диаграмме; диаграмма очень быстро становится достаточно сложной.

Основная рекомендация: показывайте на этих диаграммах только очень простое ветвление. Для представления сложных ветвленийбольше подходят диаграммы последовательностей.12.12. Что мы узналиРеализация прецедентов – важнейшая часть процесса анализа. Онапозволяет сравнить теорию с практикой, явно демонстрируя, как могут взаимодействовать объекты классов для обеспечения заданного поведения системы.

Диаграммы взаимодействий показывают, как классы и объекты реализуют требования, определенные в прецеденте.Мы изучили следующее:•Реализации прецедентов создаются в деятельности UP Анализ прецедента; эта деятельность формирует часть динамического представления системы.•Реализации прецедентов показывают, как взаимодействуют экземпляры классов анализа для реализации функциональных требований, определенных прецедентом.••Каждая реализация прецедента реализует только один прецедент.•Реализации прецедентов состоят из:•диаграмм классов анализа – они должны «рассказывать историю» об одном (или более) прецеденте;•диаграммы взаимодействий – должны демонстрировать, каквзаимодействуют объекты для реализации поведения прецедента;•особых требований – во время реализации прецедента всегдавыясняются новые требования и их необходимо фиксировать;•уточнений прецедента – вероятно, понадобится изменять прецедент во время его реализации.Взаимодействия – это единицы поведения контекстного классификатора.•Взаимодействия могут использовать любые возможности контекстного классификатора.296Глава 12.

Реализация прецедентов•••••В реализации прецедента контекстный классификатор – это прецедент.• Общая форма диаграммы взаимодействий показывает взаимодействия между ролями, которые могут исполнять в этом взаимодействии экземпляры классификатора.• Форма экземпляров диаграммы взаимодействий показываетвзаимодействия между конкретными экземплярами классификатора:• для линий жизни используется обычная нотация экземпляра.Линия жизни представляет участника взаимодействия – то, как экземпляр классификатора участвует во взаимодействии.• Каждая линия жизни имеет необязательное имя, тип и необязательный селектор.• Все линии жизни обозначаются той же пиктограммой, что и ихтип.• Экземпляры обозначаются путем подчеркивания имени, типаи селектора.Сообщение представляет конкретный тип соединения между двумявзаимодействующими линиями жизни.• Синхронное сообщение (сплошная стрелка).• Асинхронное сообщение (открытая стрелка).• Возврат (открытая стрелка, пунктирная линия).• Сообщение создания (открытая стрелка, сплошная линия, стереотип «create»).• Сообщение уничтожения (открытая стрелка, сплошная линия,стереотип «destroy»).• Найденное сообщение (открытая стрелка, исходящая из заштрихованного кружка).• Потерянное сообщение (открытая стрелка, заканчивающаясяв заштрихованном кружке).Диаграммы взаимодействий.• Диаграммы последовательностей – акцентируют внимание на временной упорядоченности сообщений.• Коммуникационные диаграммы – акцентируют внимание наструктурных отношениях между объектами.• Диаграммы обзора взаимодействий – акцентируют вниманиена отношениях между взаимодействиями.• Временные диаграммы – акцентируют внимание на реальномвремени взаимодействий.Диаграммы последовательностей.• Ход времени происходит сверху вниз.12.12.

Что мы узнали•••297Линии жизни выполняются слева направо:• у линий жизни есть вертикальные пунктирные «хвосты», отражающие продолжительность существования линии жизни;• линии жизни могут иметь активации для обозначения того,что фокус управления находится на этой линии жизни;• линии жизни должны быть хорошо организованы, чтобы свести к минимуму количество пересекающихся линий.• Поясняющие сценарии необходимо размещать на диаграмме последовательностей внизу слева.• Инварианты состояний – символы состояний размещаются в соответствующих точках линии жизни.• Ограничения заключаются в {} и размещаются на или рядомс линиями жизни.Комбинированные фрагменты – области разного поведения на диаграммах последовательностей.• Оператор определяет, как исполняются его операнды.• Сторожевое условие определяет, будут ли исполняться операнды.• Операнд заключает в себе поведение.Операторы.• opt – существует единственный операнд, который исполняетсяв случае истинности условия (как if … then).• alt – выполняется тот операнд, условие которого истинно.• loop – loop min, max [условие]:• loop или loop * – повторяется бесконечно;• loop n, m – повторяется (m n) раз;• loop [ booleanExpression ] – повторяется, пока booleanExpression истинно;• loop 1, * [ booleanExpression ] – выполняется один раз, затем повторяется, пока booleanExpression истинно;• loop [ for each object in collectionOfObjects ] – тело цикла выполняется один раз для каждого объекта коллекции;• loop [ for each object in className ] – тело цикла выполняетсяодин раз для каждого объекта класса.• break – если сторожевое условие истинно, выполняется операнд,а не остальная часть взаимодействия, в которую включен оператор.• ref – комбинированный фрагмент ссылается на другое взаимодействие.• par – все операнды исполняются параллельно.• critical – операнд исполняется атомарно без прерывания.298Глава 12.

Реализация прецедентов••••seq – операнды исполняются параллельно при условии выполнения следующего ограничения: последовательность поступлениясобытий на одну линию жизни от разных операндов совпадаетс последовательностью операндов.• strict – операнды исполняются в строгой последовательности.• neg – операнд показывает неверные взаимодействия.• ignore – перечисляет сообщения, намеренно исключенные из взаимодействия.• consider – перечисляет сообщения, намеренно включенные во взаимодействие.• assert – данный операнд является единственным действительнымповедением в данный момент взаимодействия.Коммуникационные диаграммы – акцентируют внимание на структурных аспектах взаимодействия:• линии жизни соединены связями;• сообщения имеют порядковый номер – иерархическая нумерация соответствует вложенности фокуса управления.Итерация – в сообщении используются спецификатор итерации (*)и необязательный блок итерации.• Блок итерации определяет число повторений.• В блоке итерации может использоваться естественный язык,псевдокод, исходный код или нотация цикла (оператора loop)диаграммы последовательностей.• Итерацию по коллекции объектов можно обозначить, указав нацелевом конце связи имя роли и кратность (>1) и предварив сообщение спецификатором итерации (*).

Сообщение посылаетсявсем объектам по очереди.• Спецификатор параллельной итерации *// применяется для обозначения параллельного выполнения сообщений.Ветвление – сообщение предваряется сторожевыми условиями. Сообщение исполняется, если сторожевое условие истинно.• Могут возникнуть сложности с четким представлением ветвления на коммуникационных диаграммах – для сложного ветвления используются диаграммы последовательностей.13Дополнительные аспектыреализации прецедентов13.1. План главыВ этой главе представлены некоторые дополнительные возможностидиаграмм взаимодействия, помогающие справляться с запутанностьюдиаграмм, обусловленной природой разрабатываемых систем.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6455
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее