1.5.(см. решение в §11) Интерфейс доступа к коллекции элементов Collection обобщает интерфейс работы со списками List . Абстрактный класс BaseCollection реализует интерфейс Collection , абстрактный класс BaseList является потомком BaseCollection и реализует интерфейс List , оставляя операции по хранению данных дочерним классам.
а. Используя наследование, добавьте в модель класс ArrayList , реализующий операции со списками с помощью массива.
б. Пусть интерфейс List содержит операцию get получения элемента списка по заданной позиции k . Укажите, в каких классах должна быть объявлена данная операция, чтобы модель была согласованной. Ответ поясните.
в. Пусть интерфейс Collection содержит операцию add добавления элемента obj . Укажите, в пространстве имен каких классов может присутствовать поведение, реализующее операцию add . Ответ поясните.
1.6.Класс Collections содержит общедоступную статическую операцию addAll с возвращаемым значением типа boolean . Первый параметр операции называется coll и имеет тип Collection , второй параметр называется elements и имеет тип Object и кратность больше нуля.
а. Добавьте в класс Collections статический атрибут empty типа Collection, предназначенный только для чтения.
б. Реализуйте в классе Collections операцию addAll с помощью нечеткого поведения (метода), используя операцию добавления элемента insert (e: Object) класса Collection . Указание . Алгоритм реализации можно показать как псевдокод в комментарии в формате {method = {} } .
1.7.Узел дерева Node может иметь несколько дочерних child узлов того же класса Node .
а. Приведите пример бинарного дерева, состоящего из семи узлов Node .
б. Постройте модель дерева, в котором каждый узел имеет от двух до четырех дочерних узлов.
в. Разработайте модель дерева, узлы которого могут быть двух видов: узел Red и узел Black . Указание. Вид узла может изменяться, при этом следует считать, что поведение узла не изменяется при смене типа.
1.8.У абстрактного класса заказа Reservation имеется два потомка: одиночный Single и подписка Subscription . Single связан с одним билетом Ticket ассоциацией бронирован reserved , Ticket может быть связан той же ассоциацией не более чем с одним Single .
а. Свяжите подписку с билетами в количестве от трех до шести включительно. Билет не обязательно связан с подпиской.
б. Как с помощью ограничений указать, что билет не может быть одновременно связан и с подпиской, и с одиночным заказом?
в. Пусть одиночная подписка наследует свойства одиночного заказа и подписки. С каким максимальным количеством билетов она может быть связана? Ответ поясните.
1.9.Умный дачный домик SmartHouse состоит из четырех стен Wall и крыши Roof . Домик реагирует на штормовые предупреждения stormWarning и укрепляет крышу harden , закрывает окна closeWindows в стенах. Используемые стройматериалы Material характеризуются ценой price и удельным весом unitWeight .
а. Добавьте стройматериалы для постройки домика: красный и белый кирпич Brick , доски Plank из сосны и дуба.
б. Укажите, что кирпич является материалом material стен. Используя ассоциации, покажите, что каркас крыши Frame сделан из не более чем сорока досок и может быть одного из видов FrameKind : мансарда, плоский или треугольный.
в. Каркас можно покрыть стройматериалом черепица Tiling , отразите это в модели.
г. Допустим, изобретен универсальный стройматериал, заменяющий доски, кирпичи и черепицу. Постройте из него дачный домик. Сколько экземпляров материала понадобится? Ответ поясните.
§2. СЦЕНАРИИ И ВАРИАНТЫ ИСПОЛЬЗОВАНИЯ
Актором (actor)называется классификатор, который моделирует пользователя или систему, внешнего по отношению к моделируемой системе или компоненту. Акторов, которые используют систему для достижения собственных целей, называют основными. Акторов, которых система использует для достижения целей других акторов, называют второстепенными.
Вариантом использования (use case)называют классификатор, который описывает совокупность сценариев взаимодействия акторов с системой или компонентом для достижения какой-либо цели, значимой для акторов. Варианты использования могут различаться по уровню цели, достижение которой они обеспечивают: высокоуровневые цели, пользовательские цели и отдельные функции системы.
Читать дальше
Конец ознакомительного отрывка
Купить книгу