Главная » Просмотр файлов » Дж. Рамбо, М. Блаха - UML 2.0 - Объектно-ориентированное моделирование и разработка

Дж. Рамбо, М. Блаха - UML 2.0 - Объектно-ориентированное моделирование и разработка (1158633), страница 32

Файл №1158633 Дж. Рамбо, М. Блаха - UML 2.0 - Объектно-ориентированное моделирование и разработка (Дж. Рамбо, М. Блаха - UML 2.0 - Объектно-ориентированное моделирование и разработка) 32 страницаДж. Рамбо, М. Блаха - UML 2.0 - Объектно-ориентированное моделирование и разработка (1158633) страница 322019-09-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Часть иерархической схемы сигналов, поступающих с клавиатуры 6.4. Параллелизм Модель состояний неявным образом поддерживает параллелизм разных объектов. Вообще говоря, объекты являются автономными сущностями, которые могут действовать и изменяться независимо друг от друга. Однако полная независимость объектов на практике не выполняется. На них могут быть наложены общие ограничения, вызывающие некоторую корреляцию между изменением состояний объектов. б.4.1. Параллелизм в агрегации Диаграмма состояний агрегата является совокупностью диаграмм состояний (по одной на каждую составляющую часть агрегата).

Состояние агрегата соответствует комбинации состояний всех его частей. Агрегация является отношением И. Состояние агрегата — зто одно состояние с первой диаграммы И одно состояние со второй диаграммы И одно состояние с третьей диаграммы и т. д. В наиболее интересных моделях состояния частей взаимодействуют друг с другом. Переходы одного объекта могут зависеть от того, в каком состоянии находится другой объект. Это обеспечивает взаимодействие между диаграммами состояний при сохранении их модульной структуры. На рис. 6.7 показано состояние объекта Саг (Автомобиль), которое представляет собой агрегацию состояний частей: 1яп1г1оп (Зажигание), ТгапзтЬз1оп (Передача), Ассе1егагог (Газ), Вга1ге (Тормоз) и других, не указанных на диаграмме объектов.

Состояние автомобиля включает одно состояние от каждой из частей. Каждая часть совершает переходы из состояния в состояние параллельно с другими частями. Диаграммы состояний частей являются почти независимыми, 144 Глава 6 ° Углубленное моделирование состояний но не совсем: автомобиль не заведется, если коробку передач не поставить на нейтраль. Это показывает сторожевое условие ТгапзтЫ1ол ьл №игга( (Коробка передач на нейтрали) на переходе от фтйоп-ОД (Зажигание-Выключено) к фл1г1опУГагт1пй (Зажигание-Стартер). Рис.

6.7. Агрегация и диаграммы параллельных состояний 6.4.2. Параллелизм в объекте Некоторые объекты можно разбить на подмножества атрибутов или связей, каждое из которых характеризуется своей собственной диаграммой. Состояние объекта включает одно состояние с каждой из поддиаграмм. Эти диаграммы не обязательно должны быть независимыми: одно и то же событие может вызывать переходы на нескольких диаграммах. Параллельность внутри объекта обозначается в ()МЕ разбиением композитного состояния на области при помогпи пунктирных линий. Название композитного состояния должно быть указано в отдельной закладке, которая не должна быть похожа на одну из областей. На рис. 6.8 показана диаграмма состояний одного роббера при игре в бридж.

Когда сторона выигрывает гейм, она становится «уязвима». Первая сторона, бЯ. Параллелизм 145 выигрывающая два гейма, выигрывает и роббер. Состояние роббера включает в себя одно состояние с каждой из вложенных диаграмм. При входе в композитное состояние Р!ау(лд глЬЬег (Играется роббер) обе области находятся в начальных состояниях №г ои!легаЫе (Неуязвимы).

Каждая область независимо от другой может перейти в состояние РЫлегаЫе (Уязвимы), когда соответствующая сторона выиграет гейм. Когда сторона выиграет второй гейм, произойдет переход в состояние ЬЪы гиЬЬег (Выиграли роббер). Этот переход завершает выполнение обеих параллельных областей, потому что они являются частями одного и того же композитного состояния Р(ау(лК пгЬЬег и активными могут быть только тогда, когда активно это композитное состояние.

Рис. 6.8. Диаграмма игры в бридж с параллельными состояниями Большинство языков программирования не имеют внутренней поддержки параллелизма. Для реализации этой концепции вы можете использовать библиотеки, примитивы операционной системы или СУБД. В процессе анализа все объекты должны рассматриваться как действующие параллельно. В процессе проектирования следует выбрать оптимальный вариант. Многие реализации не требуют параллельности, им оказывается вполне достаточно одного потока управления. 6.4.3. Синхронизация параллельной деятельности Иногда один объект должен участвовать в двух и более видах деятельности параллельно.

Объект не синхронизирует внутренние этапы этих видов деятельности, но должен завершить оба вида деятельности перед тем, как он перейдет в следующее состояние. Например, банкомат должен выдать и наличные, и карту пользователя после завершения транзакции. Банкомат не должен возвращаться в состояние бездействия до тех пор, пока пользователь не заберет карту и деньги, причем пользователь может взять их в произвольном порядке или даже одновременно. Порядок не имеет значения, важно только завершение обоих видов деятельности. Это пример разделения управления на параллельные потоки с последующим слиянием.

На рис. 6.9 показана диаграмма состояний для параллельной деятельности. Количество состояний, которые могут быть активными одновременно, зависит от 146 Глава б ° Углубленное моделирование состояний конкретных событий и в нашем примере может меняться от одного до двух.

В языке ()МЕ параллельные виды деятельности в рамках одного состояния обозначаются разделением этого состояния на области при помощи пунктирных линий. Каждая область — это вложенная диаграмма, описывающая один из параллельных видов деятельности в рамках композитной деятельности. Композитная деятельность включает ровно одно состояние из каждой поддиаграммы.

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

Любой переход в состояние с параллельными областями активирует каждую из них. Если для какого-либо перехода не указано целевое состояние в одной из параллельных областей, эта область начинает выполняться с начального состояния по умолчанию. Поэтому в нашем примере развилку можно было и не рисовать: достаточно было нарисовать переход в состояние Елнгг1нд (Выдача), и параллельные области начали бы выполняться с начальных состояний. Слияние управления обозначается в 0МЕ явным образом при помощи перехода с одной исходящей и несколькими входящими стрелками, соединенными с небольшой жирной полосой (на рис.

6.9 ее нет). Переключающее событие и необязательное сторожевое условие ставятся около этой полосы. Обратите внимание, что переход запускается одним событием (а не несколькими, по числу стрелок). Если некоторые области композитного состояния не участвуют в слиянии, они автоматически завершаются, как только запускается переход со слиянием. Поэтому переход из одного из параллельных подсостояний в состояние за пределами композитного вызывает завершение всех остальных параллельных состояний.

Можно рассматривать это как вырожденное слияние с единственным потоком управления. Переход по завершении из внешнего композитного состояния в другое состояние неявным образом подразумевает слияние параллельных потоков управления (см. рис. 6.9). Переход по завершении запускается, когда заканчивается деятельность исходного состояния. Композитное состояние с параллельными областями 6.5. Пример модели состояний 147 считается закончившим деятельность, когда заканчивают свою деятельность все его области, то есть когда каждая из них достигает своего конечного состояния.

Все подсостояния должны завершиться прежде, чем переход по завершении будет запущен. В нашем примере завершение обоих видов деятельности приводит к тому, что оба подсостояния достигают своих конечных состояний, в результате чего запускается переход со слиянием, и активным становится состояние ЯеаЫу Го гезет (Готовность к перезапуску). Если бы мы нарисовали отдельный переход из каждого подсостояния в конечное состояние, это имело бы другой смысл: любой переход приводил бы к завершению выполнения второго подсостояния до его реального окончания. Запуск перехода со слиянием приводит к выполнению деятельности при выходе для всех областей, как для явных, так и для неявных слияний. 6.5.

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

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

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