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

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

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

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

25.20 постусловие Subject::notify() состоит в том, что Observer::update() был вызван для каждого присоединенного Observer. Наязыке OCL это может быть выражено следующим образом:context Subject::notify( )25.13. Что мы узнали579post: каждый наблюдатель должен быть уведомлен через вызов update()self.observers.forAll( observer | observer^update() )В данном постусловии происходит перебор всех observers в Set и проверка получения ими сообщения update(). Оператор ^ – это оператор «hassent». Он возвращает true, если указанное сообщение было посланооперацией.

Он может использоваться только в постусловиях.Если сообщение синхронное (вы знаете, что оно вернется), можно проверять возвращаемое значение сообщения:context Subject::notify( )post: возвращаемое значение update( ) должно быть true для каждого наблюдателяself.observers.forAll( observer |observer^update().hasReturned() impliesobserver^update().result())25.13. Что мы узналиВ этом введении в OCL мы узнали следующее:• OCL – стандартное расширение UML. Он может:• определять запросы;• определять ограничения;• определять тело операции запроса;• определять бизнесправила во время разработки модели.• OCL не язык действий для UML. Он не может:• менять значения элемента модели;• определять тело операции (кроме операций запроса);• выполнять операции (кроме операций запроса);• динамически определять бизнесправила.• OCLвыражения.• Состоят из:• контекста пакета (необязательно) – определяет пространствоимен для OCLвыражения;• контекста выражения (обязательно) – определяет экземплярконтекста для выражения;• одного или более выражений.• Контекст выражения может быть определен явно или путем размещения OCLвыражения в примечании к элементу модели.580Глава 25.

Введение в OCL••Экземпляр контекста – образец экземпляра контекста выражения:• OCLвыражения записываются в рамках экземпляра контекста.Типы OCLвыражений.• inv: – инвариант:• применяется к классификаторам;• экземпляр контекста – экземпляр классификатора;• инвариант должен быть true для всех экземпляров классификатора.• pre: – предусловие операции:• применяется к операциям;• экземпляр контекста – экземпляр классификатора, которомупринадлежит операция;• предусловие должно выполняться для обеспечения возможности выполнения операции.• post: – постусловие операции:• применяется к операциям;• экземпляр контекста – экземпляр классификатора, которомупринадлежит операция;• постусловие должно быть истинным после выполнения операции;• ключевое слово result обозначает результат операции;• feature@pre возвращает значение свойства (feature) до выполнения операции:• @pre может использоваться только в постусловиях;• OclMessage может использоваться только в постусловиях.• body: – определяет тело операции:• применяется к операциям запроса;• экземпляр контекста – экземпляр классификатора, которомупринадлежит операция.• init: – задает начальное значение:• применяется к атрибутам или концам ассоциаций;• экземпляр контекста – атрибут или конец ассоциации.• def: – добавляет атрибуты и операции в классификатор с помощью стереотипа «OclHelper»:• применяется к классификатору;• экземпляр контекста – экземпляр классификатора;• добавляет атрибуты и операции в классификатор с помощьюстереотипа «OclHelper»:• может использоваться только в OCLвыражениях.25.13.

Что мы узнали••••581let – определяет локальную переменную:• применяется к OCLвыражению;• экземпляр контекста OCLвыражения.• derive: – определяет производное значение:• применяется к атрибутам или концам ассоциаций;• экземпляр контекста – экземпляр классификатора, которомупринадлежит операция.Комментарии:• /* многострочные */•  однострочныеСтаршинство операций:• ::• @pre• .• >• not ^ ^^• */• +• if then else endif• > < <= >=• = <>• and or xor• impliesСистема типов OCL.• OclAny:• супертип всех типов OCL и типов UMLмодели.• OclType:• подкласс OclAny;• перечисление всех типов ассоциированной UMLмодели.• OclState:• подкласс OclAny;• перечисление всех состояний ассоциированной UMLмодели.• OclVoid:• тип «null» в OCL – имеет единственный экземпляр под названием OclUndefined.• OclMessage – используется для:• подтверждения отправки сообщения;582Глава 25.

Введение в OCL••••••• подтверждения возвращения сообщения;• получения возвращаемого значения сообщения;• возвращения коллекции сообщений, отправленных объекту.• Примитивные типы OCL:• Boolean;• Integer;• Real;• String.• Tuples – структурированный тип:• Tuple { имяЧасти1:типЧасти1 = значение1, имяЧасти2:типЧасти2 = значение2, ... }Инфиксные операторы – для их добавления в типы UML просто определяется операция с соответствующей сигнатурой, например=(параметр) : Boolean.Коллекции:• Set – { unordered, unique } (применяется по умолчанию)• OrderedSet – { ordered, unique }• Bag – { unordered, nonunique }• Sequence – { ordered, nonunique }Операции над коллекциями должны инициироваться с помощьюоператора –>.Итерационные операции:• коллекция–> <операцияИтератора>(<переменнаяИтератора>:<Тип> | <выражениеИтератора>);• <переменнаяИтератора> и <Тип> необязательны.Навигация в рамках экземпляра контекста:• self – организует доступ к экземпляру контекста;• оператор «точка» – организует доступ к возможностям экземпляра контекста.Навигация по ассоциациям:• self – организует доступ к экземпляру контекста;• имя роли – обозначает объект или набор объектов на конце ассоциации;• оператор «точка» – перегружен:• self.roleName:• кратность 1 – обеспечивается доступ к объекту на концеассоциации;• кратность >1 – обеспечивается доступ к коллекции на конце ассоциации;25.13.

Что мы узнали••••••••583self.roleName.feature:• кратность 1 – возвращает значение свойства (feature);• кратность > 1 – возвращает Bag значений свойств всех участвующих объектов (является сокращенной записью дляself.roleName>collect( feature )).Навигация по нескольким ассоциациям, где все кратности > 1:• self.roleName1.roleName2.feature – возвращает Bag значений этогосвойства (feature) всех участвующих объектов.OCL на диаграммах взаимодействий используется для определения:• сторожевого условия;• селектора линии жизни;• параметров сообщения.OCL на диаграммах деятельностей используется для определения:• узлов вызова действий;• сторожевых условий переходов;• объектных узлов;• операций;• состояния объекта.OCL на диаграммах состояний используется для определения:• сторожевых условий;• условий, накладываемых на состояния;• целей действий;• операций;• значений параметров.Навигация к и от классовассоциаций:• к классамассоциаций – используется имя классаассоциации;• от классовассоциаций – используются имена ролей.Навигация по квалифицированным ассоциациям:• после имени роли в квадратных скобках указывается разделенный запятыми список квалификаторов.Унаследованные ассоциации:• OCLвыражения используются для ограничения типов участников в унаследованных ассоциациях.AПример модели прецедентовA.1.

ВведениеНаш опыт свидетельствует о том, что UMLмодели не терпят бумаги.Если вам когдалибо приходилось распечатывать большую UMLмодель, включая спецификации, вам точно известно, что имеется в виду!UMLмодели лучше представлять в более гибком формате – в виде гипертекста. В настоящее время это или средство моделирования, иливебсайт.Включение полного учебного примера UML в эту книгу сделало бы еенамного толще и дороже. Мы также несли бы ответственность за намного большее количество уничтоженных деревьев.

Поэтому было решено предоставить пример для этой книги на нашем вебсайте(www.umlandtheunifiedprocess.com). Нам кажется, что ориентироваться в электронном варианте легче, чем в бумажном.Предлагаемый вашему вниманию пример охватывает ОО анализ и проектирование, необходимые для создания небольшого вебприложенияэлектронной коммерции. В этом приложении в упрощенном виде приводится несколько наиболее ярких моментов модели прецедентов, чтобы дать представление о том, что доступно на сайте!A.2. Модель прецедентовДанная модель прецедентов создана для простой системы электроннойкоммерции по продаже книг и CD.

Эта система называется ECP (ECommerce Platform – платформа электронной коммерции). На рис. А.1показан окончательный результат моделирования прецедентов.Модель прецедентов обеспечит четкое представление о том, что делаетсистема, но все подробности представлены на вебсайте.585Пример модели прецедентовЕСРLogOnUserUserCloseOrderCardProcessingCompanyAcceptPaymentByCardDispatcher«include»InventorySystemCheckoutDisplayBasketextension pointsmanageBasketextension point:manageBasket«include»«extend»AddltemToBasketCustomerManageBasketCancelOpenOrderBrowseProducts«include»ViewProductsFindProductsFindBooks«include»FindCDsViewBooksCreateNewCustomerDisplayOpenOrdersLogOnCustomerUpdateCustomerDeleteCustomerShopkeeperAddProductToCatalogDeleteProductFromCatalogCreateNewUserSystemAdministratorDeleteUserРис.

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

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

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