Проектирование на UML. Сборник задач - Антон Хританков
Шрифт:
Интервал:
Закладка:
а. Перечислите основных и вспомогательных акторов системы ATM. Какие из них взаимодействуют с системой в варианте использования PerformOperation?
б. Отразите в модели вариантов использования, что клиенты могут только выполнять операции по получению наличных, в то время как клиенты BankCustomers банка, владеющего банкоматом, могут также оплачивать услуги из списка, предоставляемого банком Bank. При этом сценарии оплаты услуг и получения наличных отличаются между собой, но следуют общему сценарию выполнения операций.
в. Добавьте возможность получения наличных как в валюте счета, так и в другой валюте. При этом в обоих случаях банкомат запрашивает у клиента Client подтверждение на списание средств в валюте счета по курсу банка Bank.
2.8. Во время подготовки данных для морфологического модуля лингвист Linguist взаимодействует с системой подготовки данных MorphoDPS с целью изменения данных ModifyData. Кроме того, для проверки целостности модифицируемых данных лингвисты могут компилировать данные Compile. Компиляция также включает в себя экспорт данных ExportData в формат, понимаемый компилятором. Каждую ночь сервер сборки приложения BuildServer компилирует данные Compile.
а. Добавьте в систему программиста Programmer, которому доступны те же возможности, что и лингвисту. Кроме того, он может экспортировать данные ExportData для отладки подсистемы компиляции данных.
б. Укажите, что для повторного использования словаря, который хранится на сервере данных морфологии, модуль семантики Semantics может взаимодействовать с системой подготовки данных морфологии в варианте использования ExportWordList.
в. Добавьте функции изменения данных: добавление, изменение и удаление слова.
г. Добавьте в модель возможность при изменении данных в некоторых случаях проверять целостность данных перед сохранением в систему.
д. Будет ли проверяться целостность данных при удалении слова? Ответ поясните.
2.9. Инкассатор Cashier и заправщик Loader занимаются обслуживанием автомата с газировкой. В обязанности инкассатора входит сбор денег CollectCash, а заправщик загружает в автомат баллоны с водой ChangeWater и газом ChangeGas.
а. Выделите в модели общий сценарий обслуживания, который включает авторизацию в системе обслуживания автомата и завершение сессии обслуживания.
б. Укажите, что автомат также может быть заправлен сиропом.
в. В каком случае инкассатор может загрузить в автомат баллон с водой? Ответ поясните.
г. Отразите в модели, что инкассатор может наблюдать за автоматом через Интернет с помощью встроенной видеокамеры с включением по сигналу датчика присутствия здания. Решение поясните.
2.10. Первоначальная модель загрузки CreateDocument и проверки документов ReviewDocument преподавателем Professor учебного заведения приведена на рис. 5.
а. Добавьте преподавателю возможность создавать курсы, как по шаблону, так и повторяя курс прошлого года.
б. Покажите на диаграмме, что у преподавателя есть три возможности проверки документа: с помощью мастера GuidedReview, совместно со студентом JointReview, и простое ревью BasicReview. При этом студенты сами могут загружать документы Upload и регистрироваться Enroll на курс.
в. Добавьте в модель ассистента преподавателя TA так, чтобы он обладал всеми обозначенными выше возможностями преподавателя, но не мог создавать курсы. При этом студент может быть ассистентом, но не преподавателем.
§3. КООПЕРАЦИИ И ВЗАИМОДЕЙСТВИЯ КЛАССОВ
ОСНОВНЫЕ ПОНЯТИЯ
Структурированным классификатором (structured classifier) называется классификатор, который может включать соединители, связывающие содержащиеся в классификаторе свойства. Структурированные классификаторы определяют контекст для соединителей и позволяют описать связи между экземплярами, возникающие во время выполнения системы.
Соединители (connector) – это черты структурированного классификатора, имеющие тип и связывающие два или более свойств классификатора. В то время как связи (links) являются экземплярами ассоциаций, соединители ограничивают возможные связи между экземплярами в зависимости от контекстного классификатора, которому принадлежат эти экземпляры.
Частью (part) классификатора называется свойство, с которым классификатор связан отношением композиции.
Кооперация (collaboration) является структурированным классификатором, обладающим поведением, и определяет роли составляющих ее частей и взаимодействия между ними в контексте кооперации. Кооперации используются для определения взаимодействий, обеспечивающих достижение какой-либо цели или реализации функции системы.
Вхождение кооперации (collaboration use) связывает элементы модели с ролями, определенными в кооперации.
Ролями (role) в кооперации называют части кооперации, параметры поведения или локальные переменные в поведении кооперации.
Состоянием (state) экземпляра классификатора называют условие или ситуацию, во время которой его свойства удовлетворяют некоторому условию, он выполняет определенное собственное поведение или ожидает какого-либо события.
Поведение (behavior) классификатора описывает изменение состояния классификатора с течением времени в ответ на внешние события и внутренние вычисления. Поведение может быть исполняемым (executable) и производным (emergent). Исполняемое поведение является описанием процесса исполнения некоторого алгоритма экземпляром классификатора путем выполнения действий. Производное поведение возникает в результате взаимодействия нескольких экземпляров.
Суть овеществления (reification) заключается в представлении происходящего поведения в виде экземпляра класса поведения. Таким образом, выполнение поведения экземплярами классов отождествляется с созданием и уничтожением экземпляра класса этого поведения.
Событием (event) называется описание группы изменений, которые могут привести к модификации значений свойств экземпляров в модели или выполнению поведения.
Сигнал (signal) является специальным видом классификатора, который описывает асинхронные запросы, направляемые экземплярам классификаторов. Черта приема определенного типа сигнала (reception) указывает, что экземпляры принимающего активного класса обрабатывают направленные им сигналы данного типа.
Траекторией (trace) называется частично упорядоченная последовательность возникновений событий (occurrence specification).
Взаимодействием (interaction) называется производное поведение участников, указывающее разрешенные и запрещенные траектории. Участникам сопоставлены линии жизни (lifeline), на которых откладываются возникающие на траекториях события. Когда взаимодействие происходит в контексте динамического структурированного классификатора, линии жизни соответствуют ролям в этом классификаторе, локальным переменным данного взаимодействия или параметрам вызываемых операций и отправляемых сигналов. Если кратность участвующего во взаимодействии свойства, переменной или параметра больше единицы, то для соотнесения линии жизни с определенным значением из нескольких используются селекторы (selector).
Сообщения (message), передаваемые в процессе взаимодействия, могут быть нескольких сортов: синхронный и асинхронный вызов операции, асинхронная отправка сигнала, создание и уничтожение экземпляра, и ответные (reply) сообщения. Передача сообщения между линиями жизни отмечается возникновением событий отправки и получения сообщения. Если отправитель или получатель находится вне взаимодействия, вместо него подставляется шлюз (gate).
Фрагмент взаимодействия (interaction fragment) является частью взаимодействия и включает множества разрешенных и запрещенных подпоследовательностей возникновений событий для всех или некоторых линий жизни.
Операторы взаимодействия (interaction operator) используются для изменения траекторий комбинированного фрагмента взаимодействия, состоящего из нескольких фрагментов. Определены операторы альтернативного выбора (alt), цикла (loop), параллельного возникновения событий фрагментов (par), условного выполнения (opt) и другие.
Спецификация исполнения (execution specification), отложенная на линии жизни, указывает на выполнение экземпляром классификатора соответствующего данной линии некоторого исполняемого поведения.