Дж. Рамбо, М. Блаха - UML 2.0 - Объектно-ориентированное моделирование и разработка (1158633), страница 65
Текст из файла (страница 65)
Напротив, модель приложения отражает наиболее важные артефакты приложения, видимые пользователям и требующие их одобрения. Для приложения важнее всего модель взаимодействия, однако нельзя сбрасывать со счетов модели классов и состояний. Литература 281 нец, варианты использования следует проверить по модели классов предметной области на предмет несоответствий между ними. Затем следует дополнить классы предметной области классами приложения.
К классам приложения относятся классы интерфейса пользователя, пограничные классы и управляющие объекты. Для их выделения необходимо тщательно изучить варианты использования и сценарии. На последнем этапе анализа приложения строится модель состояний. Эта модель обычно оказывается богаче модели состояний предметной области и описывает более разнообразное поведение. Сначала нужно выявить классы приложения, обладающие несколькими состояниями, и изучить сценарии взаимодействия на предмет наличия событий, относящихся к этим классам. Самый сложный аспект— объединить сценарии вместе, найти перекрытия и замкнутые циклы. Завершив разработку модели состояний, проверьте согласованность диаграмм состояний друг с другом, а также с моделями классов и взаимодействия.
Мы подчеркиваем необходимость абстрагирования в процессе анализа предметной области. Столь же важно абстрагирование и для анализа приложения. Конструируя свои модели, старайтесь мыслить экспансивно, с расчетом на расширение. Не подчиняйте свое приложение существующим методикам бизнеса, которые со временем могут измениться.
Вместо этого старайтесь делать приложение гибким, способным воспринимать и учитывать грядушие изменения. Таблица 13.1. Ключевые понятия главы управляющий объект сценарий диаграмма последовательности операция по списку граница системы диаграмма деятельности действующее лицо анализ приложения пограничный класс вариант использования пользовательский интерфейс Библиографические замечания Литература !Меуег-97] Вегггапг! Меуег.
ОЬ!ест-Ойеп1ед ЯоЪваге СопзтгцсВоп, Бесопд ЕЙ11оп. Уррег БасЫ!е Ычег, Щ: Ргепйсе На!!, 1997. Бертран Мейер !Меуег-97! дает много полезных сведений о принципах, на которых должен основываться хороший проект. Он рекомендует использовать проектирование снизу вверх, ориентированное на структуру данных, применять выделение «операций по списку», а также утверждает, что в системе не должно быть «главной программыь.
Для спецификации операций он рекомендует использовать утверждения, пред- и постусловия. 282 Глава 13 ° Анализ приложения Упражнения 13.1. (4) Подготовьте сценарии нетипичных и исключительных ситуаций из раз- дела 13.1.6. 13.2. (6) Постройте поддиаграммы Оврояс (Депозит), мгйлг(гагва( (Снятие) и пиесу (Опрос) с рис.
13.10. 13.3. (4) На рис. 13.1 показана диаграмма классов для упражнения 11.6. 5еиИег (Отправитель) и Лесе1оег (Получатель) — это единственные классы, имеющие существенное поведение, зависящее от времени. Постройте диаграмму последовательности для следующего сценария: Отправитель пытается установить соединение с получателем, отправляя пакет, инициирующий транзакцию.
Получатель успешно считывает пакет и отвечает подтверждением приема. После этого отправитель передает пакет, сообщающий о начале файла, который также подтверждается. Затем передается содержимое файла в виде трех пакетов, прием которых подтверждается получателем, после чего следуют пакеты, указывающие на достижение конца файла и конца транзакции, которые, как и все остальные, подтверждаются получателем. Рис. У13.1.
Диаграмма классов для системы передачи файлов 13А. (3) Подготовьте дополнительные диаграммы последовательности для предыдущего примера, учитывающие ошибки, вызванные шумами. Ошибки могут возникать в пакетах любого типа. После этого проверьте свой ответ в предыдущей задаче. 13.5. (5) Подготовьте диаграмму состояний системы передачи файлов по диа- граммам последовательности, разработанным в упражнениях 13.3 и 13А.
13.6. (8) Составьте диаграмму состояний счетчика пройденного пути для вело- сипеда, исходя из приведенных ниже сценариев. Упражнения 283 о Пользователь включает счетчик на едущем велосипеде. Счетчик отображает текущее время. Пользователь нажимает кнопку РЕЖИМ. Счетчик отображает пройденное за текущий день расстояние. Пользователь нажимает кнопку РЕЖИМ. Счетчик отображает максимальную скорость с момента сброса.
Пользователь нажимает кнопку РЕЖИМ. Счетчик отображает длительность катания с момента сброса. Пользователь нажимает кнопку РЕЖИМ. Счетчик отображает пройденное расстояние с момента сброса. Пользователь нажимает кнопку РЕЖИМ. Счетчик отображает среднюю скорость с момента сброса. Пользователь нажимает кнопку РЕЖИМ. Счетчик отображает текущее время... о Пользователь включает счетчик на неподвижном велосипеде.
Счетчик отображает текущее время. Пользователь нажимает кнопку РЕЖИМ. Счетчик отображает суммарное пройденное расстояние. Пользователь нажимает кнопку РЕЖИМ. Счетчик отображает суммарную продолжительность катания. Пользователь нажимает кнопку РЕЖИМ. Счетчик отображает пройденное сегодня расстояние. Пользователь нажимает кнопку РЕЖИМ. Счетчик отображает максимальную скорость с момента сброса. Пользователь нажимает кнопку РЕЖИМ.
Счетчик отображает длительность катания с момента сброса. Пользователь нажимает кнопку РЕЖИМ. Счетчик отображает пройденное расстояние с момента сброса. Пользователь нажимает кнопку РЕЖИМ. Счетчик отображает среднюю скорость с момента сброса. Пользователь нажимает кнопку РЕЖИМ. Счетчик отображает текущее время... а Счетчик отображает пройденное за лень расстояние. Часы показывают полночь.
Начинается новый день. Счетчик устанавливает пройденное за день расстояние равным нулю. о Пользователь прекращает движение. Проходит четыре минуты. Дисплей счетчика меркнет. Пользователь нажимает кнопку РЕЖИМ. Дисплей зажигается. 284 Глава 13 ° Анализ приложения Рассмотрим простой редактор диаграмм из упражнений 12.3 — 12.8. 13.7. (2) Обозначьте границу системы для этого приложения в нескольких предложениях. 13.8. Рассмотрим автоматизированную систему подсчета очков из упражнений 12.9 — 12.13. 13.14. 13.9.
13.10. 13.11. 13.12. 13.13. 13.15. 13.16. 13.17. 13.18. о Пользователь нажимает кнопку РЕЖИМ и не отпускает ее. Счетчик обнуляет все переменные, вычисленные с момента сброса. (2) Укажите два действующих лица, взаимодействующих с данным прило- жением. (4) Приведите по крайней мере четыре варианта использования. Опреде- лите каждый из них одним или двумя предложениями. Постройте диаграм- му вариантов использования.
(6) Структурируйте варианты использования, имеющие общие элементы, при помощи отношений. Вы можете создавать новые варианты использо- вания. (Замечание для преподавателя: вы должны дать студентам ответ к предыдущему упражнению.) (4) Подготовьте типичный сценарий построения рис. У12.1. Укажите по крайней мере десять операций с редактором из описания задачи, приведен- ного в главе 12. Об ошибочных ситуациях пока не беспокойтесь. (3) Подготовьте три сценария ошибочных действий, отталкиваясь от пре- дыдущего упражнения. (4) Подготовьте диаграммы последовательностей для сценариев, написан- ных в предыдущем упражнении.
(2) Обозначьте границу системы для этого приложения в нескольких пред- ложениях. (2) Укажите четыре действующих лица, взаимодействующих с данным приложением. (5) Вот несколько вариантов использования системы: регистрация участника, планирование соревнований, планирование сезона, подсчет очков за упражнение, судейство упражнения, вычисление статистики. Определите каждый из этих вариантов одним-двумя предложениями. Постройте диаграмму вариантов использования. (3) Подготовьте сценарий настройки системы подсчета очков в начале сезона. Необходимо ввести данные о командах, участниках и судьях. Подготовьте расписание соревнований в сезоне и выберите упражнения для каждого из них. Укажите коэффициенты сложности для разных упражнений. Вы должны ввести по меньшей мере 2 команды, 6 участников, 3 судьи, 3 соревнования и 12 упражнений.
Об ошибочных ситуациях пока не беспокойтесь. (3) Подготовьте три сценария ошибочных действий, отталкиваясь от предыдущего упражнения. упражнения 285 13.19. (3) Подготовьте сценарий распечатки и обработки форм предварительной регистрации для системы подсчета очков.
В этом сценарии два спортсмена должны поменять свои адреса, а другие два — указать, что они не могут принять участие в соревнованиях. Каждому участнику должен быть присвоен номер. 13.20. (6) Подготовьте диаграмму деятельности для следующего расчета. На диаграмме приведите плавательные дорожки для участника соревнований, оператора компьютера, судьи и секретаря. Оператор компьютера произносит вслух номер участника, появляющийся на дисплее. Участник проверяет свой номер и выполняет упражнение.
Трое судей поднимают таблички со своими оценками. Секретарь читает их вслух. Оператор компьютера вводит произносимые секретарем оценки в компьютер. 13.21. (3) Укажите «операции по списку» для системы подсчета очков и разместите их на диаграмме классов. 13.22. (5) Для каждого из перечисленных в предыдущем упражнении методов укажите, что именно он должен делать. Проектирование системы Выполнив анализ задачи, вы должны решить, каким образом следует подойти к проектированию. Проектирование системы (зузгеш дез1дп) — это выбор высокоуровневой стратегии решения задачи. Такая стратегия называется архитекгвурой системы (зузгет агспйесгцге).
На этом этапе принимаются решения о разбиении системы на подсистемы, об аппаратной или программной реализации этих подсистем, а также формулируются политики, служащие основой для проектирования классов. В этой главе вы узнаете о том, какие моменты следует учитывать в процессе формулирования проекта системы. Мы опишем несколько распространенных архитектурных стилей, которые могут использоваться в качестве отправной точки.