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

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

PDF-файл Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование, страница 74 Объектно-ориентированный анализ и проектирование (53090): Книга - 7 семестрДж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование: Объектно-ориентированный ан2019-09-18СтудИзба

Описание файла

PDF-файл из архива "Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование", который расположен в категории "". Всё это находится в предмете "объектно-ориентированный анализ и проектирование" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 74 страницы из PDF

Многие инструменты моделирования, генерирующиекод, позволяют назначать конкретный классколлекции для каждой ассоциации одинкомногим. Обычно это осуществляется путемдобавления в ассоциацию помеченных значений, определяющихсвойства генерации кода для данного отношения. Этот подход отображен на рис. 18.13. Здесь на соответствующем конце отношенияуказано свойство {Vector}. Обратите внимание, что используется только именная часть помеченного значения – часть «значение» в данном случае является излишней.Order1{Vector}*OrderLineРис. 18.13.

Добавление в ассоциацию помеченного значенияОпасайтесь «переусердствовать» при использовании коллекций.•Путем добавления свойства к отношению определяется семантикаколлекции, но не указывается какойлибо конкретный класс реализации (рис. 18.14). При использовании коллекций важно не «переусердствовать». Как говорилось, фактически используемый типколлекции – часто тактическое, а не стратегическое решение, которое может быть принято программистами во время реализации.Order1{ordered}*OrderLineРис.

18.14. Добавление в ассоциацию свойства без указания конкретногокласса реализации404Глава 18. Уточнение отношений, выявленных при анализеЭтот вариант хорош тем, что сохраняется лаконичность модели,и программистам могут быть предоставлены подсказки по поводутого, какой классколлекции должен использоваться.

Однако такой подход обычно исключает автоматическую генерацию кода.•Уточнением отношения одинкомногим до классовколлекций незанимаются – решение этой задачи передается программистам.UML предоставляет стандартные свойства, которые могут применяться к кратностям для обозначения требуемой семантики коллекции.Они представлены в табл. 18.1.Упорядоченность определяет, как располагаются элементы в коллекции: в строгом порядке относительно друг друга или нет. Уникальность определяет единичность каждого объекта коллекции. Для отношения одинкомногим по умолчанию применяется семантика {unordered, unique} ({неупорядоченный, уникальный}).Таблица 18.1Стандартное свойство Семантика{ordered}Существует строгий порядок расположения элементов коллекции.{unordered}Элементы в коллекции располагаются в произвольном порядке.{unique}Все элементы коллекции уникальны – один и тот жеобъект появляется в коллекции максимум один раз.{nonunique}В коллекции допускается дублирование элементов.Например, если необходима упорядоченная коллекция объектов OrderLines, то изображенное на рис.

18.13 можно показать, как представлено на рис. 18.14.Сочетания свойств упорядочения и уникальности создают набор коллекций, перечисленных в табл. 18.2. Эти коллекции являются частьюOCL (объектный язык ограничений) (см. главу 25), хотя аналогичныйнабор коллекций есть во всех языках программирования.Таблица 18.2СвойствоКоллекция OCL{unordered, nonunique}Bag (мультимножество){unordered, unique}Set (множество){ordered, unique}OrderedSet (упорядоченное множество){ordered, nonunique}Sequence (последовательность)40518.10. Коллекции18.10.1.

КартаКарты оптимизированы с целью быстрого получения значения по ключу.Еще один очень полезный тип класса коллекции – карта (map). Иногдаего называют словарем (dictionary).1 Эти классы немного похожи натаблицу базы данных с двумя столбцами – ключ и значение. Картыспроектированы таким образом, чтобы по заданному ключу можно было быстро найти соответствующее значение.

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

Они оптимизированы так, чтобы быстро находить объектзначение по заданному объектуключу.m:HashMapkey1node1value1key2node2value2key3node3value3Рис. 18.15. Пример картыНа рис. 18.15 показано упрощенное представление Javaкласса HashMap.Поиск значения (по заданному ключу) осуществляется очень быстро, поскольку коллекция проиндексирована с использованием хештаблицы.В UML нет стандартного свойства для обозначения карты, и карты неявляются частью OCL. Если в проектной модели необходимо обозначитьприменение карты, указывается конкретный тип коллекции (например, {HashMap}) или используется следующее помеченное значение:{map имяКлюча}Если принято решение использовать это нестандартное обозначение,в модель необходимо добавить поясняющее примечание!1Еще известно как «ассоциативный массив».

– Примеч. науч. ред.406Глава 18. Уточнение отношений, выявленных при анализе18.11. Конкретизированные отношенияНекоторые типы отношений являются исключительно артефактамианализа и не поддерживаются напрямую ни одним из широко используемых ОО языков программирования. Процесс реализации таких отношений уровня анализа называют конкретизацией (reification) (т. е.превращение в нечто конкретное). Конкретизации подвергаются следующие отношения уровня анализа:•ассоциации многиекомногим;•двунаправленные ассоциации;•классыассоциации.18.11.1. Ассоциации многиекомногимНи один из широко используемых ОО языков программирования неподдерживает напрямую ассоциации многиекомногим (хотя некоторые объектные базы данных всетаки их поддерживают).

Поэтому этиассоциации необходимо конкретизировать в обычные классы, отношения агрегации, композиции и зависимости. При анализе такие вопросы, как владение и навигация, могли бы оставаться неясными, нов проектировании такая неопределенность невозможна. Это тот случай, когда сначала надо решить, какая из сторон ассоциации многиекомногим является целым, а затем применять соответственно агрегацию или композицию.В примере на рис. 18.16 отношение allocation (распределение) былоконкретизировано в класс Allocation.

Это превращает ассоциацию многиекомногим в два отношения агрегации. Исходя из требований,предъявляемых к системе, было принято решение, что Resource (ресурс) – это целое. Система главным образом занимается управлениемпотоками работ, ассоциированными с Resource, т. е. является ресурсоцентричной. Однако если бы система была задачецентричной, целымбыл бы сделан объект Task (задача), что изменило бы направление отношений, представленных на рисунке.Было также решено возложить ответственность за жизненный циклобъектов Allocation на Resource, и поэтому используется отношение композиции.анализTaskallocation**Resource«trace»1проектированиеTask**Allocation1ResourceРис.

18.16. Ассоциация многие+ко+многим конкретизирована в класс Allocation40718.11. Конкретизированные отношенияЕсли система пытается представить обе точки зрения, ее можно былобы назвать ориентированной на распределение ресурсов. Тогда был бывведен новый объект (возможно, AllocationManager (менеджер распределения)), обслуживающий список объектов Allocation, каждый объекткоторого указывает как на объект Resource, так и на объект Task.18.11.2. Двунаправленные ассоциацииЧасто необходимо смоделировать обстоятельства, в которых объект акласса А использует сервисы объекта b класса В, и объекту b необходимо делать обратный вызов и использовать сервисы объекта а.

В качестве примера можно привести элемент управления GUI Window с однимили более объектами Button, где каждому объекту Button надо выполнять обратный вызов и использовать сервисы Window, которому онипринадлежат.При анализе все просто – такая ситуация моделируется как единственная двунаправленная ассоциация. Однако ни один из широко используемых ОО языков программирования реально не поддерживает двунаправленные ассоциации. Поэтому при проектировании такая ассоциация должна быть конкретизирована в две однонаправленные ассоциации или зависимости, как показано на рис.

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

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