Антон Хританков - Проектирование на UML. Сборник задач

Тут можно читать онлайн Антон Хританков - Проектирование на UML. Сборник задач - бесплатно ознакомительный отрывок. Жанр: Прочая научная литература, издательство Литагент Ридеро. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

Антон Хританков - Проектирование на UML. Сборник задач краткое содержание

Проектирование на UML. Сборник задач - описание и краткое содержание, автор Антон Хританков, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
В данном сборнике представлены задачи по проектированию ПО с использованием унифицированного языка моделирования UML 2, принципов и паттернов проектирования. Сборник содержит более 120 задач с несколькими заданиями в каждой по разным разделам UML и проектирования ПО. Для каждого раздела приводятся основные понятия, для задач даны ответы и пояснения по решению. http://www.objectoriented.ru

Проектирование на UML. Сборник задач - читать онлайн бесплатно ознакомительный отрывок

Проектирование на UML. Сборник задач - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Антон Хританков
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

3.6.Пассажир Person заходит в лифт и нажимает кнопку pressButton лифта Lift с указанием целочисленного номера этажа floor . Лифт закрывает двери и начинает движение синхронным вызовом операции startMoving . После этого сообщает пассажиру номера проезжаемых лифтом этажей сообщением floorReached с указанием номера этажа. Затем лифт вызывает операцию stopMoving и останавливается. Пассажир нажимает кнопку pressDoors лифта для открытия дверей.

а. Как можно уточнить модель взаимодействия, если известно, что лифт обслуживает с первого по пятый этажи?

б. Уточните взаимодействие пассажира с лифтом. Укажите, что до нажатия кнопки этажа, пассажир обязан закрыть двери кнопкой pressDoors .

в. Используя фрагменты, покажите, что пассажир не может нажать кнопку открытия и закрытия дверей в процессе движения лифта.

г. (*) Укажите, что лифт проезжает один этаж за три секунды.

3.7.Менеджер подключаемых модулей pluginsManager класса PluginsManager получает сообщение loadPlugins – указание на необходимость загрузки доступных модулей. Он синхронно запрашивает у объекта settings класса PluginManagerSettings пути к директориям с модулями и получает от settings значение свойства pluginsDirs . После чего в цикле для каждой директории и каждой библиотеки *.dll загружает модули вызовом собственной операции loadPlugins , передавая путь к библиотеке в параметрах.

а. Реализуйте операцию loadPlugins класса PluginsManager . Взаимодействие начинается с создания нового экземпляра PluginsDll , затем идет получение количества подключаемых модулей в библиотеке getPluginsCount и получение всех модулей через вызовы getPlugin с параметром – номером модуля. После этого происходит инициализация каждого полученного модуля IPlugin вызовом метода initPlugin класса PluginsManager .

б. Добавьте в модель описание действий по инициализации модуля. Метод initPlugin проверяет, обрабатывает ли модуль события графического интерфейса вызовом isUIHandled . Если обрабатывает, то регистрирует модуль в качестве слушателя событий addListener в классе PlayerUIPresenter .

3.8.Взаимодействие выбора этажа SelectFloor содержит линию жизни кабины, представленной экземпляром активного класса Cabin , линию жизни floor экземпляра класса кнопки этажа FloorButton с селектором «1» , и линию жизни класса Algorithm . Взаимодействие начинается с синхронного вызова кабиной операции нажатия кнопки isPressed на линии floor . Операция возвращает логическое значение «истина», если кнопка нажата. Затем экземпляр класса Cabin вызывает операцию selectFloor у алгоритма на линии в данном взаимодействии.

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

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

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

г. (*) Приведите по одному примеру разрешенной и неразрешенной траекторий в данном взаимодействии.

3.9.Пользовательский интерфейс мультимедиа проигрывателя PlayerView сообщает ev контроллеру UIPresenter о начале проигрывания элемента списка воспроизведения playEntry . Контроллер: 1) рассылает это сообщение всем своим слушателям собственной операцией raiseEvent ; 2) получает от управляющего компонента Engine тип контента по имени name выбранного элемента item события ev вызовом getContentType ; 3) по типу контента получает медиапоток вызовами getAudioStream или getVideoStream ; 4) переводит интерфейс в состояние проигрывания либо видео, либо аудио вызовом setPlaybackMode и указывает медиапоток операцией setMediaStream ; 5) запускает воспроизведение операцией play контроллера.

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

б. Уточните взаимодействие при обработке события запуска проигрывания песни модулем lyricsPlugin , зарегистрированным в качестве слушателя событий UIPresenter . Модуль определяет тип контента элемента, передаваемый в сообщении о запуске. Для аудиоконтента создает запрос о тексте песни, вызывая собственный метод makeRequest . Затем модуль асинхронно вызывает операцию dispatchRequest класса NetController , передавая в параметрах запрос и себя как обработчика ответа. Получив ответ от сервера, NetController передает processResponse его обработчику. Модуль вызывает displayPage у UIPresenter и передает полученную HTML-страницу с текстом песни

310 При решении основных задач морфологический модуль ищет запрашиваемое - фото 8

3.10.(*) При решении основных задач, морфологический модуль ищет запрашиваемое слово в словаре языка. Таким образом, многие задачи в модуле зависят от реализации функции поиска слова в словаре. См. диаграмму на рис. 8. Для уменьшения объема, который занимает словарь, используется тип данных префиксное дерево 2 2 Префиксное дерево, «Trie», http://en.wikipedia.org/wiki/Trie. . Каждый узел дерева содержит ассоциативный массив буква – следующий узел. Таким образом, если слово есть в словаре, то в дереве есть путь, начинающийся в корне и проходящий по вершинам, соответствующим буквам слова.

а. Постройте модель кооперации поиска слова в словаре, используя роли класса Dictionary и узла дерева Node . Для моделирования префиксного дерева используйте квалифицированные соединители и булевый атрибут leaf , указывающий на конечный узел слова.

б. Добавьте в модель поведение кооперации. Актор парсер строки StringParser вызывает операцию hasWord класса Dictionary с параметром word типа String . Метод hasWord , реализующий операцию hasWord , получает корневой узел с помощью операции getRoot класса Dictionary . Получив экземпляр класса Node , метод в цикле для каждой следующей буквы слова word вызывает у этого экземпляра операцию getNextLetter с параметром c типа char – текущей буквы слова. Данная операция возвращает дочерний узел дерева. Когда буквы слова word закончились, нужно вернуть актору значение операции isLeaf последнего полученного узла Node .

в. Модифицируйте поведение. Если в какой-то момент вызов getNextLetter прерван по исключению NoSuchLetter , операция hasWord должна вернуть false.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Антон Хританков читать все книги автора по порядку

Антон Хританков - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Проектирование на UML. Сборник задач отзывы


Отзывы читателей о книге Проектирование на UML. Сборник задач, автор: Антон Хританков. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x