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

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

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

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

Руководствуйтесь следующими соображениями: двух или трехуровневая иерархия наверняка приемлема, десять уровней — наверняка чересчур, а пять-шесть уровней может быть как приемлемо, так и неприемлемо — в зависимости от системы. 3.3.2. Использование обобщения Обобщение служит трем основным целям. Первая цель — обеспечение поддержки полиморфизма. Операция может быть вызвана на уровне суперкласса, а компилятор объектно-ориентированного языка автоматически разрешит вызов в метод, соответствующий классу вызывающего объекта. Полиморфизм увеличивает гибкость программного обеспечения: вы добавляете новый подкласс и автоматически наследуете поведение суперкласса. Более того, новый подкласс не нарушает работу существующего кода. Сравните это с процедурным программированием, где добавление нового типа может вызвать значительные побочные эффекты.

Вторая цель обобщения состоит в структурировании описаний объектов. Используя обобщение, вы делаете концептуальное утверждение, образуя таксономию и упорядочивая объекты на основании их сходств и различий. Такой подход гораздо более основателен, нежели моделирование каждого класса в изоляции от всех остальных. Третья цель состоит в обеспечении повторного использования кода; вы можете наследовать код в рамках одного приложения, а также из существующих приложений (например, из библиотек классов). Повторное использование повышает производительность по сравнению с многократным переписыванием кода «с нуля». Обобщение позволяет корректировать код для получения именно такого поведения, которое требуется в данном приложении. Повторное использование является веским доводом в пользу обобщений, однако его преиму1цества часто переоценивают (см.

главу 14). Термины обобщение (депега11хаг1оп), конкретизация (зрес1а11хаг1оп) и наследование (1ппег1гапсе) описывают одну и ту же концепцию. Обобщение и конкретизация — это отношения между классами, противоположные друг другу по смыслу. Обобщение подчеркивает, что суперкласс обобщает подклассы. Конкретизация З.ч. Пример модели классов 63 подчеркивает, что подклассы конкретизируют (уточняют) суперкласс.

Наследование — зто механизм совместного использования атрибутов, операций и ассоциаций объектами, классы которых находятся в отношениях обобшения (конкретизации). На практике перепутать эти термины довольно сложно. 3.3.3. Подмена составляющих Подкласс может подменять или перекрывать (очеггЫе) составляющую суперкласса, определяя составляюшую с тем же именем внутри себя. Подменяюгцая составляющая (подкласса) уточняет и заменяет подмененную (суперкласса в подклассе). Подмена составляющих может потребоваться по нескольким причинам: для спецификации поведения, зависящего от подкласса, для уточнения спецификации составляющей, для повышения производительности. Например, на рис.

3.25 каждый подкласс-лист должен реализовать операцию ИЬр!ау, несмотря на то, что она определена в классе Ефнге. Класс С!гс!е повышает производительность, подменяя операцию гогаге пустым блоком кода. Подменять можно методы и значения по умолчанию для атрибутов.

Никогда не следует подменять сигнатуру составляюшей. Подмена должна сохранять тип атрибута, количество и тип аргументов операции, а также тип возврашаемого операцией значения. Уточнение типа атрибута или аргумента операции (то есть указание в качестве типа подтипа исходного типа) является формой ограничения и должно использоваться с осторожностью. Часто подмена используется для повышения производительности. В атом случае универсальный метод подменяется специальным, который использует имеющиеся дополнительные сведения, но не изменяет семантику операции (например, С!гс!е.го!псе на рис. 3.25). Никогда не следует подменять составляюшую, если в результате она окажется несогласованной с унаследованной от предка составляюшей.

Подкласс является частным случаем суперкласса и должен быть совместим с ним во всех отношениях. К сожалению, на практике объектно-ориентированные программисты часто заимствуют класс, похожий на тот, который им нужен, а затем изменяют его, модифицируя или игнорируя его составляюшие, несмотря на то, что новый класс перестает быть частным случаем исходного класса. Такие действия могут приводить к концептуальным ошибкам и появлению скрытых предположений в программах. 3.4.

Пример модели классов На рнс. 3.26 показана модель классов системы управления окнами для рабочей станции. Эта модель значительно упрошена (для реальной модели потребовалось бы несколько страниц), но она демонстрирует многие конструкции моделей классов и их совместное использование. Класс й!лбов определяет обшие параметры окон всех типов, в частности прямоугольную границу, определяемую атрибутами х1, у1, х2, у2, и операции, позволяюшие отображать и скрывать окно, а также помещать его на передний или на задний план в общем наборе окон.

64 Глава 3 ° Моделирование классов Зсм1дпдчд1пдо!в Сапчаз Репе! аею меме хснтзе! УОдзе! сх1 су1 сх2 зсю!1 1 по!!туЕчеп! Ечеп! еодоп 0..1 КеуЬовп!Ечеп! Рвпе1иепт х У 1вЬе! Сао!се Нето Вицоп Твхп!вы Ыпд ергвззеа твхьепд!Ь сопел!8!ппд 0..1 1 (зОЬзед пеп!Спо1се о1сез Сао1сеЕп!ту з!ппд ча1ие Рис. 3.26. Модель классов системы управления окнами Холстом (сапчаз) называется область, в которой может отображаться графика. Салоаз наследует границу от класса йттпт(ом и добавляет размеры области холста, которые определяются атрибутами схУ, суу, сх2, су2.

Сапоаз содержит множество элементов, на что указывает ассоциация с классом ЯЬаре. Все фигуры характеризуются цветом и шириной линии. Фигуры могут быть линиями, эллипсами или многоугольниками. Каждый класс фигур обладает своими собственными параметрами. Многоугольник (Ро!уйол) определяется списком его вершин. Эллипсы 3.4. Пример модели классов 65 (Е111рзе) и многоугольники являются замкнутыми фигурами, которые характеризуются цветом и шаблоном заливки.

Линии (Е(пе) являются одномерными, а потому не могут быть залиты. Холст поддерживает операции добавления и удаления элементов. Текстовое окно Техг%тг(огэ — это разновидность окна с полосами прокрутки 5сто111гд%тг(отю, которое характеризуется двумя смещениями прокрутки хО(!зег и уО!!зег и поддерживает операцию зсгоП, изменяющую значения смещений. Текстовое окно содержит строку и поддерживает операции вставки и удаления символов. Холст с прокруткой (5сго11тяСапипз) — особая разновидность холста, поддерживающая прокрутку.

Это окно одновременно является холстом и окном с прокруткой. Таким образом, оно являет собой пример множественного наследования, о котором речь пойдет в главе 4. Панель (Ране!) содержит множество объектов Рапе11сет, каждый из которых характеризуется уникальным в рамках одной панели именем 1ГетУате, о чем говорит наличие квалификатора у соответствующей ассоциации. Каждый элемент панели может принадлежать только одной панели.

Такой элемент представляет собой предопределенный значок, посредством которого пользователь может взаимодействовать с системой. Элементы панели бывают трех видов: кнопки, переключатели и текстовые элементы. Кнопка (Виггоп) характеризуется отображаемой на экране строкой, а также атрибутом д!ергеяеН, который показывает, нажата она или нет. Переключатель (5плгсЬ) позволяет пользователю выбрать один из предопределенных вариантов, каждый из которых является объектом класса СЬо(сеЕнггу, характеризующимся отображаемой строкой и возвращаемым при его выборе значением.

Между СЬо(сейет и СЬогсеЕпггу имеется две ассоциации; ассоциация один-ко-многим определяет множество доступных вариантов, а ассоциация один-к-одному определяет выбранный вариант. Выбранный вариант должен быть одним из доступных, поэтому одна ассоциация является подмножеством другой, на что указывает стрелка со словом 1зибзег). Это пример ограничения (см. главу 4).

Когда элемент панели выбирается пользователем, это порождает событие (сепг), которое представляет собой объединение сигнала о происшествии с подлежащим выполнению действием. Все виды элементов панелей имеют ассоциации ног(!уЕпепг. Каждый элемент связан с одним событием, но одно и то же событие может порождаться несколькими элементами панели. Текстовые элементы порождают события другого типа, связанные с нажатием на клавишу клавиатуры, происходящим в тот момент, когда текстовый элемент является выбранным. Эти события указываются ассоциацией с именем полюса ЬеубоатйЕиепх Текстовые элементы наследуют событие пофуЕгепг от суперкласса Ране!Нет.

Событие пой~уЕиепт порождается при выделении текстового элемента мышью. Эта модель обладает множеством недостатков. Например, нам следовало бы определить тип Яесгапя(е, который можно было бы использовать для определения границ окон и холстов, а не вводить два одинаковых набора из четырех атрибутов.

Линия могла бы быть частным случаем полилинии (последовательности соединенных между собой линейных сегментов), и тогда полилиния и многоугольник были бы подклассами нового суперкласса, определяющего список точек. Здесь не хватает множества атрибутов, операций и классов, которые необходимы для реальной 3 Зак. 699 66 Глава 3 ° Моделирование классов 3.5. Навигация моделей классов Мы показали, каким образом модель классов может выражать структуру приложения.

Теперь мы покажем, что они могут выражать и поведение навигации по классам. Навигация достаточно важна, поскольку она позволяет вам проверить модель и обнаружить скрытые дефекты и недостатки, а затем устранить их. Навигация может осуществляться вручную (неформальная методика)или при помощи навигационных выражений (см. ниже). Рассмотрим простую модель счетов для кредитных карт !рис.

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

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

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