Главная » Просмотр файлов » Джим Арлоу, Айла Нейштадт - UML 2 и Унифицированный процесс. Практический объектно-ориентированный анализ и проектирование

Джим Арлоу, Айла Нейштадт - UML 2 и Унифицированный процесс. Практический объектно-ориентированный анализ и проектирование (1037782), страница 39

Файл №1037782 Джим Арлоу, Айла Нейштадт - UML 2 и Унифицированный процесс. Практический объектно-ориентированный анализ и проектирование (Джим Арлоу, Айла Нейштадт - UML 2 и Унифицированный процесс. Практический объектно-ориентированный анализ и проектирование) 39 страницаДжим Арлоу, Айла Нейштадт - UML 2 и Унифицированный процесс. Практический объектно-ориентированный анализ и проектирование (1037782) страница 392017-12-25СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Имя ассоциации записывается в стиле lowerCamelCase.В примере на рис. 9.6 ассоциация читается следующим образом:«Компания (Company) нанимает много Человек (Persons)». Хотя стрелкауказывает направление чтения ассоциации, всегда можно прочитатьее в обратном направлении. Таким образом, в примере на рис. 9.6 можимя ассоциацииCompanyвозможность навигацииemploys1*PersonкратностьРис. 9.6.

Отображение ассоциации с использованием ее имени206Глава 9. Отношенияимя ролиCompanyemployer1возможность навигацииemployee*PersonкратностьРис. 9.7. Отображение ассоциации с использованием имен ролейно сказать, что в любой момент времени «каждый Человек (Person) нанят только одной Компанией (Company)».Имена ассоциаций – это глагольные группы, указывающие на семантикуассоциации.Альтернативный вариант – классам на обоих концах ассоциации могут быть присвоены имена ролей.

Эти имена указывают на роли, исполняемые объектами классов, когда они связаны экземплярами данной ассоциации. На рис. 9.7 можно видеть, что объект Company будетиграть роль employer (работодатель), а объекты Person – роль employee(служащие), если они связаны экземплярами этой ассоциации. Именаролей называют роль, которую могут играть объекты, поэтому онидолжны быть существительными или именными группами.Ассоциация может иметь или имя ассоциации, или имя роли. Указание и имени роли, и имени ассоциации для одной и той же ассоциациитеоретически допустимо, но считается очень плохим стилем. Это ужеперебор!Признак хороших имен ассоциаций и ролей – они должны легко читаться.

На рис. 9.6 ассоциация «Company employs many Persons» (Компания нанимает много Человек) звучит на самом деле замечательно. Если прочитать ассоциацию в обратном направлении, получается «Personis employed by exactly one Company at any point in time» (Человек наняттолько одной Компанией в любой момент времени). Тоже звучит неплохо. Аналогичным образом имена на рис. 9.7 ясно указывают роли,которые будут играть объекты этих классов, связанные именно такимобразом.Имена ролей – это именные группы, указывающие на роли, исполняемые объектами, связанными экземплярами этой ассоциации.9.4.2.

КратностьОграничения – один из трех механизмов расширения UML, и кратность – первый из рассматриваемых нами типов ограничений. Это также самый распространенный тип ограничений. Кратность ограничивает число объектов класса, которые могут быть вовлечены в конкрет2079.4. Что такое ассоциация?Компания нанимает много ЧеловекCompanyemployer1employeePerson*Каждый Человек работает на одну КомпаниюРис.

9.8. Отображение кратности на диаграмменое отношение в любой момент времени. Фраза «в любой момент времени» – решающая для понимания кратностей. На рис. 9.8 можноувидеть, что в любой момент времени объект Person нанят только одним объектом Company. Однако с течением времени объект Person может быть нанят несколькими объектами Company.На рис.

9.8 можно найти еще коекакие любопытные вещи. ОбъектPerson не может быть безработным, он всегда нанят только одним объектом Company. Таким образом, ограничение включает в себя два бизнесправила данной модели:• объекты Person в данный момент времени могут быть наняты толькоодним объектом Company;• объекты Person не могут быть безработными.Не важно, зависят или нет эти допустимые ограничения всецело оттребований, предъявляемых к моделируемой системе, но это именното, что выражает модель.Как видим, ограничения кратности имеют большое значение, в нихмогут быть закодированы ключевые бизнесправила модели.

Однакоэти правила «скрыты» в деталях модели. Грамотные разработчики моделей называют такое сокрытие ключевых бизнесправил и требований «тривиализацией» (trivialization). Намного более глубокое обсуждение этого феномена можно найти в книге [Arlow 1].Кратность задается в виде разделенного запятыми списка интервалов,в котором каждый интервал представлен в форме:минимум..максимумгде минимум и максимум – целые числа или любое выражение, возвращающее целое число.Если кратность не задана явно, значит, решение о ней еще не принято.Если кратность не задана явно, значит, решение о ней еще не принято.В UML нет «применяемой по умолчанию» кратности. В моделировании широко распространена ошибка, состоящая в том, что незаданная208Глава 9.

Отношениякратность по умолчанию предполагается равной 1. Некоторые примеры синтаксиса кратности приведены в табл. 9.1.Кратность задает число объектов, которые могут принимать участиев отношении в любой момент времени.Таблица 9.1ДополнениеСемантика0..1Нуль или 11Ровно 10..*Нуль или более*Нуль или более1..*1 или более1..6От 1 до 61..3, 7..10, 15, 19..*От 1 до 3, или от 7 до 10, или ровно 15, или от 19до множестваМодель всегда необходимо читать так, как написано.Пример на рис. 9.9 иллюстрирует, что кратность действительно является мощным ограничением, которое часто имеет огромное влияниена бизнессемантику модели.Если прочитать пример внимательно, можно увидеть, что:• у Company может быть ровно семь employee;• Person может быть нанят только одной Company (т.

е. в данной моделиPerson не может одновременно иметь больше одной должности);• у BankAccount может быть только один owner (владелец);• у BankAccount может быть один или много operator (операторов);• у Person может быть от нуля до множества BankAccount;• Person может управлять от нуля до множества BankAccount.При прочтении UMLмодели крайне важно понять, что именно выражает модель, а не прибегать к предположениям или догадкам.

Мы называем это «прочтением модели как есть».Например, рис. 9.9 утверждает, что у Company может быть именно семьemployee, не больше и не меньше. Большинству такая семантика покажется странной или даже неверной (если только это не очень страннаякомпания), но именно так гласит модель. Об этом никогда нельзя забывать.Существуют некоторые разногласия по поводу того, нужно ли показывать кратность в аналитических моделях.

Мы думаем, да, потому что2099.4. Что такое ассоциация?CompanyemployeremployeePerson711owner1..*operator0..*0..*BankAccountРис. 9.9. Кратность – мощное ограничениекратность описывает бизнесправила, требования и ограничения и может вскрыть необоснованные предположения относительно предметной области. Очевидно, что такие предположения необходимо выявлять и устранять как можно раньше.9.4.2.1.

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

9.10. Каждый объект Directory (каталог) может иметь связи с объектами Directory, выступающими в роли subdirectory (подкаталог), числоsubdirectory0..*Directory10..*File0..1parentрефлексивная ассоциацияautoexec:FileC:Directoryconfig:FileWindows:DirectoryMy Documents:DirectoryCorel:DirectoryTo John:FileCommand:DirectoryкаталогифайлыРис. 9.10. Пример рефлексивной ассоциации: вверху – диаграмма классов,внизу – диаграмма объектов210Глава 9.

Отношениякоторых может меняться от нуля до некоторой величины (0..*), а также с нулем или одним (0..1) объектом Directory, выступающим в ролиparent (родитель). Кроме того, каждый объект Directory ассоциированс нулем или более объектов File (файл). В этом примере рефлексивныеассоциации превосходно моделируют универсальную структуру каталогов, хотя следует заметить, что у конкретных файловых систем (например, Windows) могут быть другие ограничения кратности.Верхняя половина рис.

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

Деревья каталогов обычно формируют иерархии. То же самое можно сказать о классификации в машиностроении и о элементахXML и HTMLдокументов. Иерархия – это очень упорядоченный,структурированный и довольно негибкий способ организации объектов. Пример иерархии показан на рис. 9.11.В иерархии объект может иметь один прямой объектпредок или неиметь ни одного.Однако в сети обычно нет корневого объекта, хотя это не исключено.В сетях каждый объект может быть непосредственно соединен с многими объектами. В сети нет строгого представления «над» или «под».Это намного более гибкая структура, в которой возможно равенствомежду узлами. World Wide Web образует сложную сеть узлов, упрощенное представление которой показано на рис. 9.12.В сети объект может быть непосредственно соединен с многими объектами или вообще не иметь соединения.Диаграмма классовAПример диаграммы объектовa1: A0..*0..1b1: Ac1: Ad1: Aиерархия ассоциацийe1: AРис.

9.11. Пример иерархииf1: Ag1: A2119.4. Что такое ассоциация?Диаграмма классовA0..*0..*Пример диаграммы объектовc1: Af1: Ad1: Aa1: Aсеть ассоциацийe1: Ab1: Ag1: AРис. 9.12. Упрощенное представление сети WWWДавайте рассмотрим товары в качестве примера, иллюстрирующегоиерархии и сети.

Существует две фундаментальные абстракции:• ProductType (тип товара) – тип продукта, например «Струйный принтер»;• ProductItem (товарная позиция) – конкретный струйный принтер с серийным номером 0001123430.ProductType и ProductItem очень подробно рассматриваются в книге [Arlow 1]. Типы товаров обычно образуют сети. Таким образом, ProductType, например комплект вычислительного оборудования, может состоять из ЦП, монитора, клавиатуры, мыши, видеокарты и других типов товаров (ProductType).

Каждый из этих ProductType описывает типтовара, а не конкретную товарную позицию, и эти типы товаров могутвходить в другие составные ProductType, например в разные комплектывычислительного оборудования.Если же рассматриваются товарные позиции (ProductItem), которые являются конкретными экземплярами ProductType, любая позиция ProductItem (например, конкретный ЦП) может быть продана и поставлена как часть одного комплекта товаров только один раз.

Следовательно, товарные позиции образуют иерархии.9.4.3. Возможность навигацииВозможность навигации (navigability) указывает на возможность прохода от объекта исходного класса к одному или более объектам в зависимости от кратности целевого класса. Смысл навигации в том, что«сообщения могут посылаться только в направлении, в котором указывает стрелка».

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

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

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