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

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

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

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

Речь идет ие о частоте прослеживаний, а о количестве различных способов использования ассоциации. Сильно связанные классы должны находиться в одном и том же пакете. Пример с банкоматом. На рис. 15.8 показан последний вариант модели классов предметной области банкомата после выполнения проектирования классов. (Помните, что в полную модель классов входит и модель классов приложения — рис. 13.8.) 15.12.

Резюме 349 15.12. Резюме Проектирование классов не начинается на пустом месте. Этот процесс состоит в уточнении модели, полученной на предшествовавших этапах. При проектировании классов модель обрастает деталями: вы проектируете алгоритмы, реорганизуете операции, оптимизируете классы, корректируете наследование и уточняете определения пакетов. Первый этап проектирования классов состоит в добавлении операций, реализующих варианты использования. Варианты использования определяют требуемое поведение, но не его реализацию. Проектировшик должен придумать операции, которые обеспечат поведение, заданное вариантами использования. После этого нужно выбрать для каждой операции наиболее подходящий алгоритм.

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

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

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

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

Используйте делегирование вместо наследования, если класс подобен другому классу, но не является его подклассом. Программы приходится разбивать на физические блоки, с которыми работают редакторы и компиляторы. Это удобно и для совместной работы внутри команды программистов. Сокрытие информации позволяет гарантировать, что будущие 350 Глава 15 ° Проектирование классов изменения затронут лишь ограниченный объем кода. Пакеты должны быть цель- ными, а сущности внутри них должны объелиняться одной темой. Таблица 15.1.

Ключевые понятия главы выводимый атрибут абстрагирование суперкласса улучшение наследования алгоритм структура данных делегирование выводимая ассоциация политика чз реализация реализация наследования рекурсия реорганизация воплощение ответственность вариант использования индекс сокрытие информации оптимизация пакет Библиографические замечания Алгоритмы и структуры данных рассматриваются в любом базовом курсе информатики.

В качестве хорошей литературы по этой теме можно рекомендовать [АЬо-83] и [5ес]йетч!с]с-95]. Добавление индексов и изменение порядка доступа для повышения производительности — широко используемая методика оптимизации баз данных. Примеры ее использования приводятся в [111!шап-02]. Одна из первых попыток найти правила определения видимости, сохраняющие объектно-ориентированную модульность, была сделана в работе [ЫеЬегЬегг-88].

В [Меуег-97] приводятся рекомендации по стилю использования классов и операций. В первом издании этой книги этап проектирования классов назывался этапом проектирования обьектов (оЪ]есс с!ез18п). Литература [АЬо-93] А!Егес] АЬо, ]оЬп НорсгоЕс, апс] ]ейгеу ()Ишап. Раса 5сгцссцгез апс] А18опсЬшз. Возсоп: АсЫ!зоп-Жез1еу, 1983. [Сор!сеп-92] ]ашез О. Сор!1еп. А8чапсес[ С++: Ргойгашш|пй 5су1ез апд 1йош. ВозСоп: Адйзоп-Жез!еу, 1992. [Ротч!ег-99] МагВп РоМег. Ве[ассог!п81 1шргоч!пй сЬе Е)ез!8п оЕ Ех!зс!п8 Сос]е. Возсоп; Ас]йзоп-%'ез!еу, 1999. [Сапппа-95] ЕпсЬ Оапппа, В!сЬагс] Не!ш, Ва!рЬ ]оЬпзоп, апс] ]оЬп 'ч'11зз!без.

Оегййп Рассегпз: Е!ешепсз оЕ Кецзаые ОЬ]есс-Ог!епсес! 5о(пчаге. Возсоп: Адйзоп'чч'ез!еу, 1995. [ЫегЬегЬегг-88] К. 1леЪегЬегг, 1. Нойапд, А. К1е1. ОЬ]есс-опепсес[ ргойгашш(п8: ап оЬ)ессгче зепзе о(зсу!е. ООРЯ А88 аз АСМ 51СР1.АХ 23, 11 (ХочешЬег 1988), 323-334. [Меуег-97] Вегсгап8 Меуег. ОЬ]есс-Опепсес[ 5о(сччаге Сопзсгцссюп, 5есопс1 Еййоп. ()Ррег 5асЫ!е К!чег, Щ: Ргепйсе На!1, 1997. [Вес[йецчс]с-95] ВоЬегс 5ес]8етч!сй, РЬ!1!рре Р!а]о1ес, апс1 РеСег Оогс]оп. Ап 1псгос1цсйоп со сЬе Апа1угйз оЕ А18опсЬшз. Возсоп: АсЫ1зоп-'ч(гез1еу, 1995.

Упражнения 351 [И!вап-02] Де((геу Ш!вап апд !епп!Еег чч'Ыов. А Р!гзс Сопгзе гп ПагаЪазе 5узгевз. Пррег БасЫ!е К!чег, Щ: Ргепг!се На!1, 2002. !'ч!г!г(з-Вгос!с-90! КеЪесса чч'!г(з-Вгос!с, Впап чч'!!!сегзоп, апс1 1.ацгеп ч!г!епег. Е)ез!Вп!пй ОЪ|есс-Ог!епгед Во!гааге. Пррег ЗасЫ!е К!чег, Щ: Ргепске На!1, 1990. Упражнения 15.1. (6) Рассмотрите варианты использования из упражнения 13.9 и перечислите по крайней мере четыре области ответственности для каждого из них.

(Замечание для преподавателя: можно предоставить студентам наш ответ к упражнению 13.9.) 15.2. (6) Рассмотрите три первых варианта использования из упражнения 13.16 и перечислите по крайней мере четыре области ответственности для каждого из них.

(Замечание для преподавателя: можно предоставить студентам наш ответ к упражнению 13.16.) 15.3. (4) Напишите алгоритмы построения перечисленных ниже геометрических фигур в графическом терминале. Фигуры не закрашиваются. Терминал работает в растровом режиме. Укажите все сделанные вами предположения: 1) окружность; 2) эллипс; 3) квадрат; 4) прямоугольник. 15.4.

(3) Обсудите, подходит ли алгоритм прорисовки эллипса из предыдущего упражнения для построения окружностей, а алгоритм прорисовки прямоугольников для квадратов. 15.5. (3) Аккуратное упорядочение операций умножения и сложения позволяет свести к минимуму количество арифметических операций, необходимых для вычисления значения полинома. Например, полипом вида а4х + а,х + + а,х' + а,х + а, можно вычислить почленно, добавляя каждое слагаемое к обшей сумме после его вычисления. Это потребует 10 операций умножения и 4 операции сложения. Можно изменить порядок арифметических операций в соответствии со следующей формулой: х(х(х(ха4 + аз ) + а, ) + а, ) + а„так что потребуется всего 4 умножения и 4 сложения. Сколько операций потребуется для вычисления полинома и-го порядка каждым из методов? Обсудите преимущества и недостатки каждого метода.

15.6. (4) Усовершенствуйте диаграмму классов на рис. У15.1, обобщив классы ЕЕ!!пав (Эллипс) и Вес!аде (Прямоугольник) посредством класса бгарЕпсРг!т(г(пе (ГрафическийПримитив). У вас должна получиться единственная ассоциация типа один-к-одному с классом ВоипйпВВох (ОграничиваюшийПрямоугольник). Фактически вы измените значение кратности с 0..1 на ровно 1. На рис. У15.1 класс ВоипйтяВох используется ЕЕВрзе и йесгапяЕе совместно. Ограничивающий прямоугольник — это прямоугольник минимальной пло|цади, содержащий соответствующий аллипс или прямоугольник.

352 Глава 15 ° Проектирование классов Рис. У15.1. Часть диаграммы с общим классом 15.7. (5) Какие классы из предыдущего упражнения должны предоставлять операцию г7е!еге (удаление), видимую внешнему мнру7 Удаление означает уничтожение объекта. Поясните свой ответ. 15.8. (4) Измените диаграмму классов на рнс. У15.2 таким образом, чтобы параметры полей содержались в отдельном классе. Определенные категории страниц могут иметь заданные по умолчанию значения полей, но для некоторых страниц значения по умолчанию могут перекрываться.

Рис. У15.2. Часть диаграммы классов для газеты 15.9. (3) Измените диаграмму на рис. У15.2 таким образом, чтобы можно было определить, на какой странице (Райе) находится строка (Ь!пе), без предварительного поиска соответствующей колонки (Со!итп). 15.10. (7) Напишите псевдокод для каждого метода на рис. У15.3. Операция !л!г!а!!ге (ннициализация) помещает 52 карты в колоду (!)ес/г). Операции !пзегт (вставка) и г!е!еГе (удаление) принимают в качестве единственного аргумента карту (Саг!) и осуществляют помещение карты в совокупность или удаление ее оттуда. При этом принудительно выполняется перерисовка совокупности.

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

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

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