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

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

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

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

18.17. При проектировании двунаправленная ассоциацияконкретизируется в две однонаправленные ассоциации408Глава 18. Уточнение отношений, выявленных при анализе18.11.3. КлассыассоциацииКлассыассоциации – исключительно аналитические артефакты, которые напрямую не поддерживаются ни одним из широко используемых ОО языков программирования. Таким образом, они не имеют прямого аналога в проектировании и должны быть удалены из проектноймодели.Классассоциация конкретизируется в обычный класс, а для отражения его семантики используется сочетание ассоциации, агрегации,композиции или даже зависимости.

Это может потребовать наложения ограничений на модель. Принимается решение, какая из сторонассоциации является целым, и соответственно этому используетсякомпозиция, агрегация и возможность навигации. Пример показан нарис. 18.18.анализCompany**PersonJobsalary:double«trace»1Company**1PersonJobпроектированиеsalary:double{каждый человек (Person) в даннойкомпании (Company) может заниматьтолько одну должность (Job)}Рис. 18.18. Пример конкретизации класса+ассоциацииОбратите внимание, что при конкретизации классаассоциации теряется его семантика, которая гласит, что объекты на каждом концеклассаассоциации должны формировать уникальную пару (см.

раздел 9.4.5). Однако, как показано на рис. 18.18, добавив примечание,содержащее соответствующее ограничение, эту семантику можно безтруда восстановить.18.12. Изучение композиции с использованием структурированных классов40918.12. Изучение композиции с использованиемструктурированных классовДо сих пор мы брали отношения, выявленные при анализе, и превращали их в одно или более отношений уровня проектирования. В этом состоит основная деятельность в уточнении отношений уровня анализа.Однако UML 2 также позволяет анализировать отношение между составным классификатором и его частями. Это может быть важной частью деятельностей UP Проектирование класса, Проектирование прецедентаи Проектирование подсистемы, поскольку позволяет сосредоточить внимание на внутренних действиях одного из этих классификаторов.

Основным понятием здесь является структурированный классификатор,который рассматривается в следующем разделе.18.12.1. Структурированные классификаторыСтруктурированный классификатор – это классификатор, имеющий внутреннюю структуру.Структурированный классификатор (structured classifier) – это простоклассификатор (такой как класс), имеющий внутреннюю структуру.Эта структура моделируется как части, объединенные с помощью соединителей. Взаимодействие структурированного классификаторас его окружением моделируется его интерфейсами и портами, но мыотложим их обсуждение до главы 19.Часть – это роль, которую могут выполнять один или более экземпляров классификатора в контексте структурированного классификатора.

Каждая часть может иметь:• имя роли – описательное имя роли, исполняемой экземплярамив контексте структурированного классификатора;• тип – только экземпляры этого типа (или подтипа этого типа) могутиграть эту роль;• кратность – число экземпляров, которые могут играть роль в любойконкретный момент времени.Соединители – это отношения между ролями (частями).

Соединителии части существуют только в рамках контекста конкретного структурированного классификатора.Соединитель (connector) – это отношение между частями в контекстеструктурированного классификатора. Он указывает на то, что частимогут общаться друг с другом и что между экземплярами, играющимироль частей, через которые это общение может происходить, существует отношение.

Эти отношения могут проецироваться в ассоциациимежду классами частей. Или они могут быть просто специальными от410Глава 18. Уточнение отношений, выявленных при анализедиаграмма классовStructuredClassSyntaxструктурированный классSomeClassимя ролитипpart1:T ype1[0..2]кратность1соединитель*part2:Type2[*]частиРис. 18.19. Синтаксис структурированного классификатораношениями, при которых структурированный классификатор объединяет части во временную кооперацию для осуществления некоторойзадачи.Синтаксис структурированного классификатора показан на рис.

18.19на примере класса SomeClass (некоторый класс).Основные моменты синтаксиса структурированного классификатора:• части кооперируются в контексте структурированного классификатора;• части представляют роли, которые могут играть экземпляры классификатора в контексте структурированного классификатора –части не представляют классы;• соединитель – это отношение между двумя частями, которое указывает на то, что экземпляры, играющие роли, определенные частями, могут общаться некоторым образом.Из этого списка видно, что при моделировании структурированногоклассификатора учитываются только внутренняя реализация и внешний интерфейс одного классификатора. Все классификаторы, не являющиеся частями структурированного классификатора, игнорируются.

Таким образом, это очень узкоспециализированная техника моделирования.18.12.2. Структурированные классыСтруктурированный класс имеет дополнительное ограничение: он владеет всеми своими частями, соединителями и портами (см. раздел 19.6).Между ними и классом устанавливается неявное отношение включения.Давайте рассмотрим пример использования структурированных классов на практике. На рис.

18.20 показана диаграмма классов для прос41118.12. Изучение композиции с использованием структурированных классовLibraryManagementSystem0..*1LoanBookborrowedBookloans0..*0..*1Borrower1borrowers0..*StudentBorrower{число книг на руках = 4}catalogLibraryManager1StaffBorrowerLibrarian11..*{одновременно только одинбиблиотекарь (Librarian) можетбыть зарегистрирован в системе}{число книг на руках = 8}Рис.

18.20. Диаграмма классов для системы управления библиотекойтой системы управления библиотекой. На нее наложены следующиебизнесограничения:•существует два типа класса Borrower (читатель) – StudentBorrower (читательстудент) и StaffBorrower (читательсотрудник);•у StudentBorrower одновременно на руках может быть максимум четыре книги;•у StaffBorrower одновременно на руках может быть максимум восемькниг;•одновременно в системе может быть зарегистрирован только одинLibrarian (библиотекарь) – это однопользовательская система.Все атрибуты и операции на этом рисунке скрыты, потому что основное внимание направлено на аспекты структуры системы.Как видите, у класса LibraryManager (менеджер библиотеки) есть внутренняя структура – сочетание Borrower, Book и Librarian.

Изза транзитивной природы композиции классы Loan (выдача) также являются частьюэтой составной структуры. Класс LibraryManager можно представить какструктурированный класс, как показано на рис. 18.21. Обратите внимание, что классы StudentBorrower и StaffBorrower тоже отображены какструктурированные. Кстати, структурированные классы могут бытьвложенными с любым уровнем вложенности.412Глава 18.

Уточнение отношений, выявленных при анализеLibraryManager implementation:LibraryManagerstudent:Borrower[0..*]studentLoan:Loan[0..4]staff:Borrower[0..*]0..*1:Book[0..*]10..*staffLoan:Loan[0..8]:Librarian[1..*]loggedOnLibrarian:Librarian[0..1]Рис. 18.21. Структурированный класс LibraryManagerРисунок 18.21 дает несколько другое представление системы и позволяет взглянуть на класс LibraryManager немного подробнее, рассмотревроли, исполняемые экземплярами класса в его реализации.•С точки зрения менеджера библиотеки (LibraryManager) существуетдва типа читателей (Borrower), которые обрабатываются немного поразному исходя из максимального количества выданных книг(Loan).

Чтобы представить это, вводятся новые роли – student (студент) и staff (штат).•У student и staff может быть разное максимальное количество невозвращенных Loan в любой момент времени. Чтобы показать это, создаются две разные роли Loan – studentLoan и staffLoan – и для каждойиз них вводится соответствующая кратность.•LibraryManager допускает одновременную регистрацию в системетолько одного Librarian, поэтому введена роль loggedOnLibrarian (зарегистрированный библиотекарь) с кратностью 0..1.Некоторые роли ассоциаций могут проецироваться в роли частей.Как видите, мы смогли явно представить внутренние роли, исполняемые экземплярами в рамках контекста класса LibraryManager. Заметьте,что эти роли могут отличаться от ролей, исполняемых классами в ихассоциациях с LibraryManager.

Например, на рис. 18.20 класс Borrower играет роль borrowers в своей ассоциации с LibraryManager. А на рис. 18.21эта роль была уточнена и превратилась в более конкретные роли под41318.13. Что мы узналиклассов Borrower, student и staff. Как правило, некоторые роли ассоциаций проецируются в роли частей, а некоторые – нет.Аналогично соединители могут проецироваться в ассоциации междуклассами или только во временные отношения, созданные в контекстеструктурированного класса.

В этом простом примере каждый соединитель может быть отображен в ассоциацию.Внутреннюю структуру структурированных классификаторов можнопредставить как на диаграмме классов, так и на специальной диаграмме, которую называют диаграммой составных структур (compositestructure diagram). Имя диаграммы соответствует имени структурированного классификатора, а содержимое диаграммы – это содержимоеструктурированного классификатора.

На рис. 18.22 изображена диаграмма составных структур класса LibraryManager.диаграмма составных структурLibraryManagerstudent:StudentBorrower[0..*]studentLoan:Loan[0..4]staff:StaffBorrower[0..*]0..*1:Book[0..*]10..*staffLoan:Loan[0..8]:Librarian[1..*]loggedOnLibrarian:Librarian[0..1]Рис. 18.22. Диаграмма составных структур класса LibraryManager18.13. Что мы узналиВ этой главе было показано, как выявленные при анализе отношенияпреобразуются в отношения уровня проектирования, которые ужеможно реализовывать. Мы узнали следующее.•Уточнение аналитических отношений до отношений уровня проектирования включает:•уточнение ассоциаций до агрегации или композитной агрегациив соответствующих случаях;414Глава 18. Уточнение отношений, выявленных при анализе•••••••реализацию классовассоциаций;реализацию ассоциаций одинкомногим;реализацию ассоциаций многиекодному;реализацию ассоциаций многиекомногим;реализацию двунаправленных ассоциаций;введение возможности навигации;••введение кратности на обоих концах ассоциации;введение имени роли на обоих концах ассоциации или, по крайней мере, на целевом конце;• использование структурированных классификаторов.Агрегация и композиция.• Это отношения типа целоечасть, где объекты одного класса играют роль целого, или агрегата, а объекты другого класса играют роль частей:•••••целое использует сервисы частей; части обслуживают запросы целого;• целое является доминирующей, контролирующей сторонойотношения; часть обычно играет более пассивную роль.Эти отношения транзитивны – если C является частью B и B является частью A, тогда C является частью A.Эти отношения асимметричны:• целое никогда – ни прямо, ни косвенно – не может быть частью самого себя;• циклы в схеме агрегации недопустимы.Существует два типа отношения агрегации:• агрегация;• композитная агрегация – обычно ее называют просто композицией.Агрегация.• Семантика агрегации:• агрегат может зависеть от частей, а иногда может существовать независимо от них;• части могут существовать независимо от агрегата;• агрегат является несколько неполным в случае отсутствия некоторых частей;• несколько агрегатов могут владеть частями совместно;• возможны иерархии и сети агрегации;• целое всегда знает о существовании частей, но если отношениеоднонаправленное, от целого к части, части не знают о целом.18.13.

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

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

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