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

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

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

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

Наконец, диаграммы состояний нужно проверить по моделям классов и взаимолействия. Построение модели состояний приложения осуществляется в несколько этапов. 1. Выделить классы приложения, обладающие состояниями (раздел 13.3.1). 2. Найти события (раздел 13.3.2). значения геаггу (готов), гтраггеИ (ограниченный режим — кончилась бумага или наличные, но некоторые операции все равно могут быть выполнены) и !гонт (отказ, например, линии связи). Система ведет журнал объектов Солгго1/егРгоЫет (НеполадкауправляюшихОбъектов) с указанием типов неполадок (отказ устройства считывания карт, кончилась бумага, кончились наличные, отказ линий связи и т. д.).

13.3. Модель состояний приложения 273 3. Построить диаграммы состояний (раздел 13.3.3). 4. Проверить по другим диаграммам состояний (раздел 13.3А). 5. Проверить по модели классов (раздел 13.3.5). 6. Проверить по модели взаимодействия (раздел 13.3.6). 13.3.1.

Выделение классов приложения Модель классов приложения состоит из «компьютерных» классов, видимых пользователям и важных для работы приложения. Вы должны рассмотреть каждый из этих классов и определить, обладает ли он несколькими разными состояниями, Чаше всего состояниями обладают классы пользовательского интерфейса и управляющих объектов. Пограничные классы, напротив, обычно являются статическими и осуществляют импорт и экспорт данных. Пример с банкоматом.

Классы пользовательского интерфейса не обладают состояниями. Возможно, это связано с тем, что наше понимание работы интерфейса недостаточно на данном этапе разработки. Пограничные классы также лишены состояний. Зато управляющие объекты характеризуются важными состояниями, которые мы рассмотрим ниже. 13.3.2. Поиск событий Ранее вы подготовили набор сценариев для описания модели взаимодействия приложения.

Теперь вы должны изучить зти сценарии и выделить из них события. Хотя эти сценарии не обязательно покрывают все возможные ситуации, они не дадут вам пропустить наиболее типичные взаимодействия и в них подчеркиваются наиболее важные события. Обратите внимание на разницу между последовательностью этапов построения моделей состояний для предметной области и для приложения.

В первом случае мы начинали с поиска состояний, после чего выделяли события. Дело в том, что модель предметной области концентрируется на данных. Данные группируются в состояния, которые подвержены влиянию событий. В модели приложения мы начинаем с поиска событий, а затем выделяем состояния. Для модели приложения важно прежде всего поведение, и поэтому варианты использования раскрываются сценариями, которые содержат события. Пример с банкоматом.

Вернемся к сценариям из модели взаимодействия приложения. Там мы обнаружим события; тзеж саЫ (вставка карты), епгетразяаотИ (ввод пароля), епЫ зехпои (окончание сеанса) и Гаье сап1 (извлечение карты). 13.3.3. Построение диаграмм состояний Следующий этап состоит в построении диаграммы состояний для каждого класса приложения, обладающего существенно зависящим от времени поведением. Выберите один из этих классов и возьмите его диаграмму последовательности. Расставьте события, в которых участвует класс, в виде графа, над дугами которого 274 Глава 13 ° Анализ приложения напишите названия событий.

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

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

Изучая диаграммы последовательности, вы можете обнаружить дополнительные возможные события, которые могут осуществляться в каждом состоянии. Добавьте на диаграмму и их. Самое сложное — определить, в какой точке альтернативный маршрут воссоединяется с уже представленными на диаграмме состояний.

Два маршрута соединяются в одном состоянии, если обьект «забывает»о по какому из них он пришел в это состояние. Во многих случаях из знаний о приложении с очевидностью следует, что два состояния идентичны друг другу. Например, бросить две монеты по пять центов в торговый автомат — все равно, что бросить одну монету в десять центов. Будьте аккуратны с маршрутами, которые кажутся идентичными, но при некоторых обстоятельствах могут отличаться. Например, некоторые системы повторяют последовательность ввода данных, если пользователь допускает ошибку, но через несколько попыток они прекращают повторять ввод. Повторяются одни и те же события, за тем исключением, что система помнит о прошлых ошибках. Эту разницу можно отразить при помощи параметра (например, литЬег ооа1!игез— число ошибок), в котором будет храниться соответствующая информация.

По крайней мере один переход должен зависеть от этого параметра. Благоразумное использование параметров и условных переходов может значительно упростить диаграммы состояний за счет смешивания информации о состояниях с данными. Диаграммы состояний, слишком сильно зависящие от данных, могут сбивать с толку и противоречить здравому смыслу. Другая альтернатива состоит в делении диаграммы состояний на две параллельные диаграммы, используя одну из них для основной последовательности, а другую — для 13.3. Модель состояний приложения 275 управляющей информации.

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

Обработка ошибок часто усложняет структуру программы, которая в противном случае была бы ясной и компактной, но без иее программы создавать нельзя. Диаграмма состояний может считаться законченной, если она покрывает все сценарии и учитывает все события, которые могут повлиять на состояния. Вы можете использовать диаграмму состояний для рассмотрения новых сценариев, исследуя влияние событий, обработка которых еше не предусмотрена, на различные состояния. Вопросы типа «что если?» представляют хороший метод проверки полноты модели и ее способности корректно обрабатывать ошибки.

Для описания сложных взаимодействий с независимыми входными данными вы можете использовать вложенные диаграммы состояний (см. главу 6). В противном случае достаточно плоской структуры диаграммы. Описанную выше процедуру построения диаграмм состояния необходимо повторить для каждого класса, поведение которого зависит от времени. Пример с банкоматом. На рис. 13.9 показана диаграмма состояний для управляющего объекта 5еЫопСоппоИег (УправляющийобъектСеанса). Центр диаграммы описывает основную часть поведения, связанную с обработкой введенной карты и пароля.

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

На рис. 13.10 и 13.11 показана диаграмма состояний для объекта ТгапзаспопСопггоИег (Управляющийобъекттранзакции), который порождается эеыопСоппойег. (Прочие поддиаграммы рис. 13.10 описаны в упражнениях.) Мы разделили Тгапзасг(опсопггоИег и Безз(опСоппоИег, потому что они имеют существенно разное назначение. Зезз!опСопггоИег занимается проверкой пользователей, тогда как ТгапзасвопСопггоИег обслуживает запросы по счетам и изменения баланса. 13.3.4.

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

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

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