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

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

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

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

Подготовьте диаграммы классов по каждому из приведенных ниже описаний. На диаграммах следует изобразить классы и ассоциации. Атрибуты и операции можно не обозначать. 1) Башня состоит из трех стержней. На каждом стержне надето несколько дисков в определенном порядке. 2) Башня состоит из трех стержней. Диски на стержнях объединены в подмножества, называемые стопками. Стопка — это упорядоченное множество дисков. Каждый диск принадлежит ровно одной стопке. На одном стержне может быть несколько стопок, расположенных в определенном порядке. 3) Башня состоит из трех стержней.

Диски на стержнях объединены в подмножества, называемые стопками, как в п. 2. На одном стержне может находиться несколько стопок. Стопка обладает рекурсивной структурой. Стопка состоит из одного диска, находящегося в самом ее низу, и не более чем одной вложенной стопки (в зависимости от высоты данной стопки). 4) Аналогично п. 3, но с тем отличием, что на стержне находится ровно одна стопка, а все остальные являются вложенными по отношению к ней. 3.30. (8) Рекурсивный алгоритм для получения последовательности ходов ре- щения задачи, описанной в предыдущем упражнении, работает со стопками дисков.

Чтобы переместить на другой стержень стопку высоты У, где Ж>1, сначала нужно переместить стопку высоты У-1 на свободный стержень при помощи рекурсивного вызова. Затем нижний диск перекладывается на нужный стержень. Затем стопка переносится с временного стержня на конечный. Рекурсия заведомо завершается, поскольку перемещение стопки высоты 1 является тривиальной операцией.

Какая из подготовленных в предыдущем упражнении диаграмм классов лучше всего подходит Упражнения 85 для реализации данного алгоритма? Объясните, почему. Добавьте на диаграмму атрибуты и операции. Укажите аргументы операций. Опишите, что каждая из операций должна делать с тем классом, в котором она определена. 3.31. (6) Напишите выражение ОСЕ для вычисления множества названий авиакомпаний, услугами которых воспользовался клиент в некотором году (рис.

У3.6). Предположите, что имеется функция йеСУеаг(Ыасе), определяющая год по заданной дате. (Замечание для преподавателя; наш ответ к упражнению 3.10 следует дать студентам в качестве отправной точки для решения этого задания.) 3.32. (6) Напишите вырюкение ОСЕ для отбора беспосадочных рейсов из города аС1гу1 в город аС(гу2 (рис. У3.6). (Замечание для преподавателя: наш ответ к упражнению 3.10 следует дать студентам в качестве отправной точки для решения этого задания.) 3.33.

(6) Напишите выражение ОС1. для определения суммарного результата участника по оценкам одного конкретного судьи. (Замечание для преподавателя: наш ответ к упражнению 3.18 следует дать студентам в качестве отправной точки для решения этого задания.) 3.34. (6) Сравните модели классов, изображенные на рис. У3.13.

В левой модели 5ибзслргюп представляет собой класс ассоциации, в правой — обычный класс. Человек может быть подписан на несколько журналов. На один журнал может быть подписано множество человек. Для каждой подписки необходимо отслеживать дату и размер каждого платежа, а также текущий срок окончания подписки. в б Рис. У3.13. Диаграммы классов для подписки на журналы Углубленное моделирование классов Глава 4 продолжает обсуждение концепций моделирования классон и переходит к более сложным темам. Здесь рассматриваются тонкости, требующиеся для создания сложных моделей. При первом чтении зту главу можно пропустить. 4.1.

Расширенные концепции классов и объектов 4.1.1. Перечисление Тип данных — зто описание возможных значений. К типам данных относятся числа, строки и перечисления. Перечисление (еппшегаг1оп) — зто тнп данных, имеющий конечное множество значений. Например, атрибут ассезхреттпехюп (разрешениеДоступа) на рис. 3.17 представляет собой перечисление с возможными значениями тепаи (чтение) и геев-ептге (чтение и запись).

На рис. 3.25 также присутствуют перечисления, которые вынесены на рис. 4.1. БяигерепТуре (Фигура.типКисти) — перечисление, включающее возможные значения зо!Ы (сплошная), пахйес1 (штриховая) и стоггегт (пунктирная). Тгеаоппепяопа1.11ЙТуре (Двумерная.типЗаливки) — перечисление, включающее возможные значения зо1п1 (сплошная), ягеу (полутон), попе (нет), Ьипгопта1 Йпез (горпзонтальные линии) и пегт(са1 Йпез (вертикальные линии).

Ргдпгв.рва тура Тио0епвпа1опаг.аяд1турв Рис 4.1. Примеры перечислений При конструировании моделей перечисления следует обязательно выделять, потому что они встречаются достаточно часто и важны для пользователей. Пере- 1.1. Расширенные концепции классов и объектов 87 числения важны и для реализации. Все возможные значения перечисления можно указать в списке для выбора. Необходимо также ограничить возможные данные разрешенными значениями.

Не следует использовать обобщение для указания значений перечислимого атрибута. Перечисление — это просто список значений, а обобщение предназначено для упорядочивания описания объектов. Обобщение следует использовать только там, где по крайней мере один из подклассов обладает атрибутами, операциями или ассоциациями, неприменимыми к суперклассу. Как показано на рис. 4.2, не следует строить обобщение класса Сагг1, потому что в большинстве игр карты разных мастей ведут себя одинаково. Напра вильно ггравильно Сагй виа: аив гали:гали Рис.

4.2. Не используйте обобщение для моделирования перечислений В языке ()М[. перечисление является типом данных. Для объявления перечисления необходимо указать ключевое слово епитегапоп в угловых кавычках (а») над именем перечисления в верхнем разделе прямоугольника. Во втором разделе перечисляются значения перечисления (рис. 4.2). 4.1.2. Кратность Кратность — это ограничение на количество возможных значений в наборе. В главе 3 было описано применение кратности к ассоциациям. Кратность применима и к атрибутам. Указание кратности для атрибутов часто оказывается полезным, особенно в приложениях, связанных с базами данных.

Кратность атрибута определяет количество возможных значений в каждом экземпляре атрибута. Наиболее типичные значения кратности: [1] — обязательное единственное значение, [0..1] — необязательное единственное значение, [*] — произвольное количество значений. Кратность определяет, является ли атрибут обязательным (в терминах баз данных — может ли атрибут иметь пустое значение). Она также указывает, является атрибут единственным значением, или он может представлять собой совокупность значений. Если кратность не указана, предполагается, что она равна [1] 88 Глава 4 ° Углубленное моделирование классов (обязательное единственное значение). На рис.

4.3 человек должен иметь одно имя, один или несколько адресов, одну дату рождения и жожет иметь один или несколько телефонных номеров. Рис. 4.3. Задание кратности для атрибутов 4.1.3. Область действия В главе 3 описывались составляющие индивидуальных объектов. Действительно, обычно составляющими обладают именно объекты, но в некоторых случаях приходится определять составляющие класса как целого.

Обдасгпь дейспгвия (зсоре) определяет, к чему относится данная составляющая; к объекту нлн к классу. Если областью действия составляющей является класс, ее имя подчеркивается. Такая составляющая называется статической. По нашему соглашению атрибуты и операции, областью действия которых является класс, указываются в верхней части соответствующих разделов (первыми). Атрибут, областью действия которого является класс, может хранить так называемый экстент класса (множество всех его объектов). Это довольно часто применяется в базах данных. Других статических атрибутов следует избегать, поскольку их использование ухудшает качество модели. Лучше всего моделировать группы явным образом и приписывать им нужные атрибуты.

Например, в верхней части рис. 4.4 изображена простая модель голосовой почты. Каждое сообщение характеризуется ящиком владельца, датой записи, временем записи, приоритетом, содержимым сообщения и флагом, указывающим, было ли оно уже доставлено адресату. Источником сообщения может быть почтовый ящик или звонок извне. Каждый почтовый ящик характеризуется номером телефона, паролем и записанным приветствием. В классе РйопеМеззайе мы можем хранить максимальную длительность сообщения и максимальный срок его хранения. В классе РпопеМа~!Ьох можно хранить ограничение на количество сообщений. Эта модель обладает определенными недостатками, поскольку все три ограничения задаются для системы в целом.

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

Иногда оказывается удобным определять статические операции для получения суммарных данных. Однако следует с осторожностью относиться к статическим операциям в распределенных приложениях. 4.1. Расширенные концепции классов и объектов 89 4.1.4. Видимость Видимость (н(яЬ111гу) характеризует способность метода ссылаться на составляющую другого класса и может принимать значения риЫ1с (открытая), рготестеИ (защищенная), ргюаГе (закрытая) и расйайе (пакетная). Конкретная интерпретация зтих значений зависит от языка программирования (подробнее см. главу 18). Любой метод может свободно обращаться к открытым составляющим (рцЫ1с). Методы класса-владельца составляющей и всех его потомков могут обращаться к защищенным составляющим (ргогесгег1).

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

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

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