Главная » Просмотр файлов » М. Фаулер, К. Скотт - UML. Основы - 2002

М. Фаулер, К. Скотт - UML. Основы - 2002 (1158629), страница 23

Файл №1158629 М. Фаулер, К. Скотт - UML. Основы - 2002 (М. Фаулер, К. Скотт - UML. Основы - 2002) 23 страницаМ. Фаулер, К. Скотт - UML. Основы - 2002 (1158629) страница 232019-09-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Постоянство и ограничение «только для чтения» (геаг(-оп)у) — это не одно и то же. «Только для чтения» предполагает, что соответствующее значение нельзя изменить непосредственно, однако оно может быть изменено вследствие изменения какого-либо другого значения. Например, если атрибутами личности являются дата рождения и возраст, то возраст может иметь ограничение «только для чтения», но не может быть постоянным.

Я обозначаю постоянство с помощью ограничения (постоянно) ((ггогеп)) и помечаю значения, предназначенные только для чтения, с помощью ограничения (только длл чтения). (При этом следует заметить, что Только Для Чтения не является стандартным элементом языка УМ1 .) Если вы собираетесь определить что-либо как постоянное, следует помнить, что люди способны совершать ошибки.

При разработке программного обеспечения человек моделирует только то, что сам знает о реальном мире, не учитывая всей его реальности. Если бы мы моделировали мир таким, какой он есть, то атрибут «дата рождения» для объекта Личность следовало бы определить как постоянный. Однако в большинстве случаев может потребоваться его изменение, если обнаружится, что предыдущая запись была ошибочной. Классификация и обобщение Мне часто приходится слышать разговоры разработчиков о механизме подтипов как об отношении «является».

Я настоятельно рекомендую держаться подальше от такого представления. Проблема заключается в том, что фраза «является» может иметь самый разный смысл. Рассмотрим следующие фразы: 1. Шеп является Пограничным Колли. 2. Пограничный Колли является Собакой. 3. Собаки являются Животными. 4. Пограничный Колли является Породой Собак. б. Собака является Биологическим Видом. Теперь попытаемся скомбинировать эти фразы. Если объединим фразы 1 и 2, то получим «Шеп является Собакой»; фразы 2 и 3 дают в ре- Квалифицированные ассоциации зультате «Пограничные Колли являются Животными».

Объединение первых трех фраз дает «Шеп является Животным». Чем дальше, тем лучше. Теперь попробуем 1 и 4: «Шеп является Породой Собак». Сочетание фраз 2 и б дает «Пограничный Колли является Биологическим Видом». Это уже не так хорошо. Почему некоторые из этих фраз можно комбинировать, а другие нельзя г Потому что некоторые фразы представляют собой классификацию (объект Шеп является экземпляром типа Пограничный Колли), а другие — обобщение (тип Пограничный Колли является подтипом типа Собака). Обобщение транзитивно, а классификация — нет. Если обобщение следует за классификацией, то в этом направлении их можно комбинировать, а если наоборот, то нельзя. Смысл сказанного заключается в том, что с отношением «является» следует обращаться весьма осторожно.

Его использование может привести к неверному применению подклассов н ошибочным результатам. В приведенном примере хорошими тестами для проверки подтипов могут служить следующие фразы: «Собаки являются разновидностью Животных» н «Каждый экземпляр Пограничного Колли является экземпляром Собаки». Квалифицированные ассоциации Квалифицированная ассоциация в языке ()М) эквивалентна таким известным понятиям в языках программирования, как ассоциативные массивы (аээос1а(1че аггауэ), схемы (шаре) и словари. На рис. 6.13 показан способ представления ассоциации между Заказом и Строкой Заказа, в котором используется квалификатор.

Квалификатор указывает, что в соответствии с Заказом для каждого экземпляра Продукта может существовать одна Строка Заказа. Рис. 6.13. Квалифици)гованнал ассоциация С концептуальной точки зрения этот пример показывает, что отдельный Заказ не может содержать две Строки Заказа для одного и того же Продукта. С точки зрения спецификации данная квалифицированная ассоциация может повлечь создание интерфейса следующего вида: С1ааа Огбег ( риЫ1о Огбогыпа О«тыл«1(ав(Ргобист аРгобист); риЫ1с ио1б аббшпо1С»в(аивоег авоипт, Ргобиот ГогРгобист) 166 Глава б. Диаграччы классов: дополнительные понятия Таким образом, любой доступ к заданной Позиции Заказа требует подстановки некоторого Продукта в качестве аргумента.

Кратность «1» означает, что для каждого Продукта должна существовать только одна Позиции Заказа; кратность «*» означает, что для Продукта может существовать несколько Строк Заказа, однако соответствующий доступ к Позициям Заказа все равно выполняется на основе индексов, образованных с помощью Продукта. С точки зрения реализации для этой цели можно предложить использовать ассоциативный массив или другую аналогичную структуру данных для хранения строк заказа. С1ааа Огоаг ( рг1яата Нар 11я«1С«аа В ходе концептуального моделирования я использую конструкцию квалификатора только для того, чтобы показать ограничения относительно отдельных позиций — «единственная Строка Заказа для каждого Продукта в Заказе».

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

Класс-ассоциация Классы-ассоциации позволяют дополнительно определять для ассоциаций атрибуты, операции и другие свойства, как это показано на рис. 6.14. - Касс-ассоциация Рис. 6.14. Класс-ассоциация Из данной диаграммы видно, что Личность может работать только в одной Компании. При этом необходимо каким-то образом хранить информацию относительно периода времени, в течение которого каждый служащий работает в каждой Компании. 109 Класс-ассоциация Это можно сделать, добавив в данную ассоциацию атрибут «интервалВремени».

Можно было бы включить этот атрибут в класс Личность, однако на самом деле он характеризует не Личность, а ее отношение к Компании, которое будет изменяться при смене работодателя. На рис. 6.16 показан другой способ представления данной информации: преобразование Работы в отдельный самостоятельный класс. (Обратите внимание, как при этом изменили свои значения соответствующие кратности.) В данном примере каждый из классов в первоначальной ассоциации обладал однозначным концом ассоциации по отношению к классу Работа. После преобразования конец ассоциации «работодатель» становится производным, хотя это можно не показывать вовсе.

Рис. б.15. Преобразование класса. ассоциации в обычный класс Что же полезного может дать класс-ассоциация в качестве компенсации за необходимость помнить еще один вариант уже описанной нотацииу Класс-ассоциация дает возможность определить дополнительное ограничение, согласно которому двум участвующим в ассоциации объектам может соответствовать только один экземпляр класса-ассоциации. Мне кажется, что необходимо привести еще один пример. Посмотрим на две диаграммы, изображенные на рис. 6.

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

В языке 1)М1. разрешается использовать только второй вариант. Для каждой комбинации Личности и Квалификации может существовать только одна Компетентность. Верхняя диаграмма на рис. 6.16 не позволяет какой бы то ни было Личности иметь более чем одну Работу в одной и той же Компании. Ес- Глава б. Диаграммы классов: дополнительные понятия ли же необходимо разрешить совмещать различную работу, то Работу следует преобразовать в обычный класс, как это сделано на рис.

6.16. работодатель Компания Личность Личность Квалификация Рис. 6.16. Тонкие особенности класса-ассоциации Ранее в подобных случаях специалисты по моделированию принимали самые разнообразные допущения относительно смысла класса-ассоциации. Некоторые из них предполагали, что могут существовать только уникальные комбинации, такие как в случае компетентности, в то время как другие избегали какого бы ни было ограничения. Многие аналитики вовсе не задумывались об этом и могли в одних случаях допускать наличие ограничения, а в других случаях — нет. Таким образом, когда вы пользуетесь языком 1тМЬ, помните, что данное ограничение присутствует всегда. Часто этот вид конструкции можно встретить там, где речь идет об исторической информации, как в предыдущем примере с Работой.

В подобной ситуации может оказаться полезным образец «Н1в1ог1с Марр1пК», описанный в книге (Фаулер, 1997 [181). Мы можем использовать его, определив стереотип «история» («Ь)втогу»), как на рис. 6.17. Рис. 6.17. Стереотип «история» для ассоциаций Параметризованный класс Данная модель устанавливает, что в каждый момент времени отдельная Личность может работать только в единственной Компании.

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

Тип файла
DJVU-файл
Размер
976,54 Kb
Тип материала
Высшее учебное заведение

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

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