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

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

PDF-файл Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование, страница 54 Объектно-ориентированный анализ и проектирование (53090): Книга - 7 семестрДж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование: Объектно-ориентированный ан2019-09-18СтудИзба

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

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

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

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

Это сообщает о том, что все вновь создаваемыеэкземпляры Order находятся в состоянии unpaid. При получении сообщения acceptPayment() (принять платеж), которое должно обозначать полную оплату, экземпляр переходит в состояние paid (оплачено). Послеэтого экземпляр DeliveryManager (менеджер по доставке) посылает сообщение deliver() (доставить). Он передает это сообщение экземпляру Order,что приводит к его переходу в состояние delivered (доставлено).Если класс Order также имеет автомат, его состояния должны соответствовать всем инвариантам состояний, присутствующим на его диаграммах последовательностей.Рисунок 12.12 иллюстрирует применение ограничений. Они записываются в фигурных скобках и размещаются на (или рядом) линияхжизни. Ограничение, обозначенное на линии жизни, указывает начтото, что должно быть истинным для экземпляров, начиная с этогомомента и далее.

Ограничения часто формулируются на естественномязыке, хотя в UML есть формальный язык ограничений (OCL), который обсуждается в главе 25.На рисунке показано ограничение продолжительности. Линия жизниобъекта :Customer имеет две метки, A и B, и ограничение {B – A <= 28 days}.sd ProcessAnOrder:OrderManager:DeliveryManager:CustomerraiseOrder()«create»:Orderинвариант состоянияметкаограничениеunpaidAacceptPayment()acceptPayment()paiddeliver(){B – A <= 28 days}delivereddeliver()BРис. 12.12. Диаграмма последовательностей прецедента ProcessAnOrder282Глава 12.

Реализация прецедентовЭто говорит о том, что промежуток времени между точками A и B недолжен превышать 28 дней. Точка A обозначает момент оплаты, а точка B – момент доставки товаров покупателю. На естественном языкеэто ограничение означает, что «заказ должен быть доставлен в течение28 дней после получения платежа».На линию жизни может быть помещен любой тип ограничения.

Широко распространены ограничения значений атрибутов экземпляров.И наконец, обратите внимание, что на рис. 12.12 не использовались ниактивации, ни возвраты сообщений. Это объясняется тем, что основное внимание данной диаграммы направлено на сроки и инвариантысостояний, и упомянутые характеристики не добавили бы сюда никакой полезной информации.12.10. Комбинированные фрагменты и операторыДиаграммы последовательностей можно разделить на области, называемые комбинированными фрагментами (combined fragments).

Рис. 12.13иллюстрирует довольно богатый синтаксис комбинированного фрагмента.Комбинированные фрагменты разделяют диаграмму последовательностей на области с различным поведением.У каждого комбинированного фрагмента есть один оператор (operator),один или более операндов (operands) и нуль или более сторожевыхусловий (guard conditions).Оператор определяет, как исполняются его операнды.Оператор определяет, как исполняются его операнды.sd OperatorSyntax:A:B:Ca( )комбинированный фрагментимя оператор [сторожевоеУсловие1]b( )[сторожевоеУсловие2]c( )операндоперандлюбые сторожевые условия должныразмещаться над первым сообщением операндаРис.

12.13. Синтаксис комбинированного фрагмента28312.10. Комбинированные фрагменты и операторыСторожевые условия определяют, будут ли исполняться эти операнды. Сторожевое условие – это логическое выражение, и операнд исполняется тогда и только тогда, когда это выражение истинно.

Одно сторожевое условие может применяться ко всем операндам или каждый операнд может иметь собственное уникальное сторожевое условие.Сторожевые условия определяют, будут ли выполняться данные операнды.Полный список операторов приведен в табл. 12.3.Таблица 12.3Оператор Полное имя СемантикаРазделoptoptionaltalternatives Выполняется тот операнд, условие которого 12.10.1истинно. Вместо логического выраженияможет использоваться ключевое слово else(как select … case).looploopЕдинственный операнд выполняется, если 12.10.1условие истинно (как if … then).Имеет специальный синтаксис:12.10.2loop min, max [condition]повторять минимальное количество раз, затем, пока условие истинно, повторять еще(max – min) число раз.breakbreakЕсли сторожевое условие истинно, выполня 12.10.2ется операнд, а не все остальное взаимодействие, в которое он входит.refreferenceКомбинированный фрагмент ссылается на 13.2другое взаимодействие.parparallelВсе операнды выполняются параллельно.criticalcriticalОперанд выполняется автоматически без 20.5.2прерывания.seqweaksequencingВсе операнды выполняются параллельно 12.10при условии выполнения следующего ограничения: последовательность поступлениясобытий на одну линию жизни от разныхоперандов такая же, как и последовательность операндов.В результате наблюдается слабая формаупорядочения; отсюда название (weak sequencing – слабое упорядочение).strictstrictsequencingОперанды выполняются в строгой последо 12.10вательности.20.5.2284Глава 12.

Реализация прецедентовТаблица 12.3 (продолжение)Оператор Полное имя СемантикаРазделnegnegativeОперанд демонстрирует неверные взаимо 12.10действия.Применяется, когда необходимо показать,что не должно произойти.ignoreignoreПеречисляет сообщения, которые намеренно 12.10исключены из взаимодействия. Разделенный запятыми список имен проигнорированных сообщений в фигурных скобках помещается после имени оператора, например {m1,m2, m3}.Например, взаимодействие может представлять тестовый пример, в котором принято решение игнорировать некоторые сообщения.considerconsiderПеречисляет сообщения, намеренно вклю 12.10ченные во взаимодействие.

Разделенный запятыми список имен сообщений в фигурныхскобках помещается после имени оператора.Например, взаимодействие может представлять тестовый пример, в который решеновключить подмножество возможных сообщений.assertassertionОперанд является единственно возможным 12.10допустимым поведением в данный моментвзаимодействия, любое другое поведение было бы ошибочным.Используется как средство обозначения того,что некоторое поведение должно иметь местов определенной точке взаимодействия.Самые важные из них: opt, alt, loop, break, ref, par и critical. Операторыopt, alt, loop и break подробно обсуждаются в следующих подразделах,а ref – в следующей главе.

Операторы par и critical имеют отношениек параллелизму, что является вопросом проектирования. Они обсуждаются в разделе 20.5 при рассмотрении параллелизма. Остальныеоператоры используются редко. В таблице предоставлен достаточныйобъем информации для их применения в случае необходимости.12.10.1. Ветвление с помощью операторов opt и altРисунок 12.14 иллюстрирует синтаксис операторов opt и alt.opt создает единственную ветвь.28512.10.

Комбинированные фрагменты и операторыsd OptAndAltSyntax:A:B:C:Dopt [условие]действие()altделать это,если условие истинно[условие1]операнд1()делать это,если условие1 истинно[условие2]операнд2()делать это,если условие 2 истинно[else]операнд3()делать это, если ни одноиз условий не является истиннымРис. 12.14. Синтаксис операторов opt и altОператор opt показывает, что его единственный операнд выполняется,если сторожевое условие истинно. В противном случае выполнениепродолжается после комбинированного фрагмента.opt эквивалентен программной конструкции:if (условие1) thenдействие1alt создает несколько ветвей.Оператор alt предоставляет выбор между рядом альтернатив.

Каждыйиз его операндов имеет собственное сторожевое условие и будет выполняться, если только условие истинно. Необязательный операнд, заданный сторожевым условием [else], выполняется, если ни одно из другихсторожевых условий не является истинным.Это означает, что выполняться может только один из операндов alt,т. е. сторожевые условия всех операндов должны быть взаимоисключающими.

Истинность более одного из сторожевых условий в любоймомент времени является условием возникновения ошибки. Спецификация UML не описывает поведение alt в этом случае.alt эквивалентен программной конструкции:if (условие1) thenоперанд 1else if (условие2) thenоперанд 2286Глава 12. Реализация прецедентовПрецедент: ManageBasketID: 2Краткое описание:Покупатель меняет количество товарных позиций в корзине.Главные актеры:CustomerВторостепенные актеры:Нет.Предусловия:1. Содержимое корзины для покупок является видимым.Основной поток:1.

Прецедент начинается, когда Customer выбирает товарную позицию в корзине.2. Если Customer выбирает «delete item»2.1. Система удаляет позицию из корзины.3. Если Покупатель вводит новое количество3.1. Система обновляет количество товаров в корзине.Постусловия:Нет.Альтернативные потоки:Нет.Рис. 12.15. Спецификация прецедента ManageBasket...else if (условиеN) thenоперанд Nelseоперанд MКак видите, оператор opt семантически эквивалентен оператору altс одним операндом.В качестве примера использования opt и alt рассмотрим прецедентна рис. 12.15. Впервые прецедент ManageBasket был показан в разделе 4.5.6.

Это часть простой системы электронной коммерции. Он описывает процесс обновления количества объектов определенной товарной позиции или полного удаления этой позиции из корзины для покупок (ShoppingBasket) покупателя (Customer).На рис. 12.16 показана диаграмма классов анализа этого прецедента.Как видите, в ShoppingBasket находится один или более Item. Каждыйиз этих Item – это quantity (количество) конкретного Product. На диаграмме классов анализа показывают только классы, атрибуты и операции,иллюстрирующие моделируемый момент.

На данной диаграмме мыпытаемся показать совместную работу ShoppingBasket, Item и Product.И наконец, на рис. 12.17 показана диаграмма последовательностей,реализующая этот прецедент. Обратите внимание, что на данной диаграмме описана стратегия, согласно которой Item уничтожается, когдаего quantity достигает нуля. Это вполне обоснованно, поскольку Item существует только для того, чтобы представлять quantity конкретного28712.10. Комбинированные фрагменты и операторыManageBasketShoppingBasket10..*getItem():Item0..*Item0..*quantity:intProductproductId:Stringname:Stringdescription:Stringprice:doublesetQuantity():intРис.

12.16. Диаграмма классов анализа прецедента ManageBasketsd ManageBasket:ShoppingBasket:Customeritem:ItemgetItem()alt[changeQuantity]setQuantity()opt[ item.quantity = 0 ]«destroy»[deleteItem]«destroy»Рис. 12.17. Диаграмма последовательностей прецедента ManageBasketProduct в ShoppingBasket. Однако можно поспорить о необходимости такого уровня детализации в анализе. Диаграмма последовательностей,явно не отображающая удаление Item, тоже была бы вполне допустимой.12.10.2. Организация итераций операторами loop и breakloop позволяет моделировать итерацию.Очень часто на диаграммах последовательностей необходимо показатьциклы. Сделать это можно с помощью операторов loop и break, как показано на рис. 12.18.288Глава 12.

Реализация прецедентовsd LoopAndBreakSyntaxповторять минимальноеколичество раз, затем,пока условие истинно,повторять (max – min)количество раз:A:Bloop min, max [условие]op1()повторять, покаусловие истинноloop [условие]op2()breakbreak долженбыть глобальнымпо отношению к loopop3()при выходеиз цикла сделать этоop4()этого не происходит,если выполняется breakРис.

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