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

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

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

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

Верхняя половина — модель классов предметной области, а нижняя — модель классов приложения. На этой диаграмме мы указали не все имеющиеся в модели операции. 17.4. Реализация ассоциаций Ассоциации — это «клей», соединяющий в одно целое модель классов. Мы должны сформулировать стратегию реализации ассоциаций. Можно выбрать глобальную стратегию и реализовать все ассоциации одинаковым образом или выбирать конкретную методику для каждой ассоциации в отдельности с учетом того, как 364 Глава 17 ° Моделирование реализации оиа будет использоваться в приложении.

Начнем мы с анализа прослеживаии ассоциаций в модели. (огбегеб), АТМ йвпюгв Тгапвас!юп Ирба!е савЬОпидпб апюип1 Мпб Еп!егебОп ба15Т!те ЯиупопгебВу чеп!уСавЬСа п! чеп!уАтоип1 б!вьигсерипбв гесейерипбв 0..1 0..1 СагбАиИюг!ааеоп йвпю1ейесе!р! 1 СавЬСагб равваюгб ата 1 1аб вепа!МитЬег ро51Тгапвасиоп в оп Собе Сопвог!!ит Вала сагб Себе 1 155ив5 0..1 пате 1 01 Сов! опгвг ассоипгсобе Ассоип! вег Атоип1 дег Ассоип1 0..1 Иввг1пгвггасв СопвогИит!п1егтасв РгоЫвтТуре пате Соп!го!1егРгоЫвт 515П051ет!те 515П051ет!те Сап!,сап! асбчеСагб 0..1 АТМвввв!оп 0..1 0-1 Маг10агеТ!те Ассоипг асвчеАссоип! Зввв!опСоп1годег 1 5151и5 Рис. 17.6.

Модель классов банкомата дпя реализации чеп!уВапКСобе ЬапКСобе чеп!ТРавваогб сгеа158ач!пввАссоип1 сгеа!еСЬеипвАссоип1 сгеа!еСавЬСагб чеп!уАпюип1 Ьа!а псе сгеб!1 !т!1 1уре С!Овв чеп!уАтоипг рс51 аббАссоип1 геп!очеАссоип1 С!Овв пате абгевв 1 1етрАтоип1 17.4. Реализация ассоциаций 365 17Я.1. Анализ прослеживания ассоциаций До этого момента мы предполагали, что все ассоциации являются двусторонними. В абстрактном смысле это, несомненно, правильное предположение. Но если в вашем приложении есть ассоциации, которые прослеживаются только в одном направлении, их реализацию можно существенно упростить.

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

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

Медаль классов: Рвализацил: Рис. Х7.7. Реализация односторонней ассоциации при помощи указателей 17А.З. Двусторонние ассоциации Чаще всего ассоциации прослеживаются в обоих направлениях, хотя и не с одинаковой частотой. Существует три подхода к реализации таких ассоциаций. ° Односторонняя реализация. Реализовать в виде одностороннего указателя и выполнять поиск при прослеживании в обратном направлении. Этот подход полезен только в том случае, когда частота прослеживания в двух направлениях отличается очень сильно, а для приложения важно сократить затраты на хранение и обновление информации. Прослеживание в обратном направлении будет при этом дорогостоящей операцией.

366 Глава 17 ° Моделирование реализации ° Двусторонняя реализация. Реализовать с указателями в обоих направлениях, как показано на рис. 17.8. Этот подход обеспечивает быстрый доступ, но если объект у одного из полюсов ассоциации обновляется, на втором полюсе также необходимо выполнить обновление, чтобы связь осталась согласованной. Этот подход полезен в том случае, когда запросы выполняются чаще, чем обновления. Рис. 17.8.

Реализация двусторонней ассоциации через указатели ° Реализация при помощи объекта. Реализовать ассоциации при помощи выделенного объекта, не зависящего от обоих связаиных классов (рис. 17.9) (КцшЬацйЬ-87 1. Объект ассоциации — это множество пар связанных объектов (или троек связанных объектов в том случае, когда ассоциация является квалифицированной), которое хранится в одиом объекте переменного размера. В целях повышения эффективности можно реализовать объект ассоциации при помощи двух словарных объектов, каждый из которых будет связан с одним из направлений. При данном подходе доступ получается несколько более медленным, чем при использовании указателей, но с применением хэшироваиия время доступа остается независящим от количества объектов.

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

Рис. 17.9. Реализация ассоциации в виде объекта 175. Тестирование 367 17.4.4. Сложные ассоциации Методы реализации сложных ассоциаций зависят от их особенностей. ° Классы ассоциаций. Обычно такую ассоциацию превращают в класс. Это позволяет реализовать как атрибуты, так и ассоциации, относящиеся к классу. Однако преврашение изменяет смысл модели: у такой ассоциации имеется своя собственная индивидуальность, а потому методы должны какимто образом принудительно поддерживать зависимость класса ассоциации от участвующих в ассоциации классов. Если ассоциация относится к типу «один-к-одному» и не имеет дальнейших ассоциаций, ее можно реализовать при помощи указателей, а атрибуты ассоциации хранить в объектах участвующих классов.

То же касается ассоциации типа «один-ко-многимгс атрибуты ассоциации в этом случае хранятся в объектах класса, имеющего кратность «много», потому что каждый объект этого класса участвует в ассоциации один раз. ° Упорядоченные ассоциации. Используйте упорядоченное множество указателей (аналогично рис.

17.8) или словарь с упорядоченным набором пар (аналогично рис. 17.9). ° Последовательности. То же, что и упорядоченная ассоциация, но требует использования списка указателей. ° Мультимножества. То же, что и упорядоченная ассоциация, но требует использования массива указателей. ° Квалифицированные ассоциации. Реализуйте квалифицированную ассоциацию с кратностью «один» в виде объекта-словаря (см. рис. 17.9). Квалифицированные ассоциации с кратностью «много» встречаются редко.

Их можно реализовать в виде словаря множеств объектов. ° Х-арные ассоциации. Сделайте ассоциацию классом. При этом изменится смысл модели, что придется компенсировать дополнительным кодом (как для классов ассоциаций). ° Агрегация. Агрегацию следует рассматривать как обычную ассоциацию. ° Композиция. Композицию тоже нужно рассматривать как обычную ассоциацию. Зависимость части от целого придется обеспечивать дополнительным кодом. Пример с банкоматом. Реализация ассоциаций из модели банкомата рассматривается в упражнении 17.1. 17.5. Тестирование Аккуратное моделирование приложения сокращает количество ошибок в будушей системе и позволяет снизить затраты на ее тестирование.

Однако полностью обойтись без проверки все равно не удастся. Тестирование — это механизм контроля 363 Глава 17 ° Моделирование реализации качества, предназначенный для обнаружения оставшихся ошибок. Кроме того, оно позволяет независимо оценить качество вашего программного обеспечения. Количество ошибок, обнаруженных в процессе тестирования, — индикатор качества программы. С ростом опыта в моделировании эта величина должна сокращаться.

Аккуратно записывайте все обнаруживаемые ошибки, а также жалобы клиентов. Если система достаточно цельная, основную сложность представляет поиск случайных ошибок. Их исправление практически не вызывает затруднений. Напротив, если программа разработана бессистемно, исправить найденные ошибки может быть достаточно сложно. Тестирование нужно проводить на всех стадиях разработки, а не только на этапе реализации. Однако природа тестирования на разных этапах разная.

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

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

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

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