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

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

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

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

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

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

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

Очевидно, что в этом случае необходимо использовать полные имена. В главе 11 этот вопрос обсуждается более подробно.9.5.3.3. Зависимость «permit»Зависимость «permit» (разрешить) обеспечивает возможность управляемого нарушения инкапсуляции, но в целом этого отношения следуетизбегать. Клиентский элемент имеет доступ к элементупоставщику независимо от объявленной видимости последнего.

Часто зависимость«permit» устанавливается между двумя родственными классами, когдаклиентскому классу выгодно (вероятно, по причинам производительности) иметь доступ к закрытым членам поставщика. Не все языки программирования поддерживают зависимости «permit». C++ позволяетклассу объявлять друзей, которые имеют разрешение на доступ к егозакрытым членам.

Но эта возможность была (и, наверное, благоразумно) изъята из Java и C#.9.6. Что мы узналиВ этой главе мы начали обсуждение отношений, которые связываютвоедино модели UML. Мы узнали следующее:• Отношения – это семантические соединения между сущностями.• Соединения между объектами называются связями.• Связь возникает, когда объект сохраняет объектную ссылку надругой объект.• Объекты реализуют поведение системы через взаимодействие:• взаимодействие возникает, когда объекты обмениваются сообщениями по связям;• когда объект получает сообщение, он выполняет соответствующую операцию.226Глава 9. Отношения••Диаграммы объектов отображают объекты и их связи в определенный момент времени.•Диаграммы – это моментальные снимки исполняющейся ООсистемы в определенный момент времени.•Объекты могут играть определенные роли по отношению другк другу; роль, исполняемая объектом в связи, определяет семантику его участия во взаимодействии.Nарные связи могут объединять более двух объектов; они отображаются в виде ромба, соединенного линиями с каждым объектом, но используются редко.•••Разные OO языки программирования реализуют связи поразному.Пути – это линии, соединяющие элементы модели UML:•прямоугольный стиль – прямые линии, располагающиеся подпрямым углом;••наклонный стиль – косые линии;криволинейный стиль – кривые линии;•необходимо следовать и придерживаться одного стиля, еслитолько сочетание стилей не повышает читаемость диаграммы(что обычно не наблюдается).Ассоциации – это семантические соединения между классами.•Если между двумя объектами есть связь, между классами этихобъектов должна существовать ассоциация.•Связи – это экземпляры ассоциаций, так же как объекты – экземпляры классов.•Ассоциации могут иметь (не обязательно) следующие элементы:•Имя ассоциации:•••перед или после него может стоять маленькая черная стрелка, обозначающая направление чтения этого имени;должно быть глаголом или глагольной группой;•записывается в стиле lowerCamelCase;•использует или имя ассоциации, или имена ролей, но неодновременно и то, и другое.Имена ролей на одном или обоих концах ассоциации:•••должны быть существительным или именной группой,описывающими семантику роли;записывается в стиле lowerCamelCase.Кратность:•показывает количество объектов, которые могут участвовать в отношении в любой момент времени;9.6.

Что мы узнали••••227объекты могут появляться и исчезать, но кратность ограничивает число объектов, принимающих участие в отношении в любой момент времени;• кратность задается разделенным запятыми списком интервалов, например 0..1, 3..5;• не существует применяемой по умолчанию кратности – если кратность не обозначена явно, значит, она не определена.• Возможность навигации:• обозначается стрелкой на конце отношения – если на отношении стрелки не обозначены, значит, оно двунаправленное;• возможность навигации показывает, что отношение можно пройти в направлении по стрелке;• вероятно, используя другой путь, можно пройти в обратном направлении, но это потребует больших вычислительных затрат.Ассоциация между двумя классами эквивалентна наличию у одного класса псевдоатрибута, который может хранить ссылку наобъект другого класса:• часто ассоциации и атрибуты взаимозаменяемы;• ассоциации следует применять, если на одном конце ассоциации находится важный класс и это необходимо подчеркнуть;• атрибуты используются, когда класс, участвующий в отношении, не очень важен (например, библиотечные классы, такиекак String или Date).Классассоциация – это ассоциация, которая является еще иклассом:• может иметь атрибуты, операции и отношения;• классассоциация может использоваться, когда между паройобъектов в любой момент времени существует только однаединственная связь;• если пара объектов в определенный момент времени можетиметь много связей друг с другом, тогда мы материализуемотношение, заменяя его обычным классом.Квалифицированные ассоциации используют квалификатор,чтобы выбрать из целевого набора один объект:• квалификатор должен быть уникальным ключом для целевого набора;• квалифицированные ассоциации понижают кратность отношения nкомногим до nкодному;• они являются полезным способом обратить внимание на уникальные идентификаторы.228Глава 9.

Отношения•Зависимости – это отношения, в которых изменение поставщикаоказывает влияние или поставляет информацию клиенту.•Клиент некоторым образом зависит от поставщика.•Зависимости изображаются в виде пунктирной линии со стрелкой, направленной от клиента к поставщику.•Зависимости использования:•••«use» – клиент некоторым образом использует поставщика –универсальная зависимость;•«call» – операция клиента инициирует операцию поставщика;•«parameter» – поставщик является параметром или возвращаемым значением одной из операций клиента;•«send» – клиент отправляет поставщика (который долженбыть сигналом) в заданную цель;•«instantiate» – клиент является экземпляром поставщика.Зависимости абстракции:•«trace» – клиент является историческим развитием поставщика;•«substitute» – клиент может замещать поставщика во времявыполнения;•«refine» – клиент является версией поставщика;•«derive» – клиент может быть производным от поставщика:•производные отношения могут быть показаны явно с помощью зависимости «derive»;•производные отношения могут быть показаны путем добавления слэша перед именем роли или отношения;•производные атрибуты можно обозначить путем добавления слэша перед именем атрибута.Зависимости доступа:•«access» – зависимость между пакетами, когда клиентскийпакет имеет доступ ко всему открытому содержимому пакетапоставщика; пространства имен пакетов остаются изолированными;•«import» – зависимость между пакетами, когда клиентскийпакет имеет доступ ко всему открытому содержимому пакетапоставщика; пространства имен пакетов объединяются;•«permit» – управляемое нарушение инкапсуляции, когда клиент имеет доступ к закрытым членам поставщика; эта зависимость не поддерживается широко, ее следует избегать по меревозможности.10Наследование и полиморфизм10.1.

План главыВ этой главе основное внимание уделено ключевым концепциям наследования (раздел 10.3) и полиморфизма (раздел 10.4). Но преждечем углубиться в эти вопросы, важно понять принцип обобщения, обсуждаемый в разделе 10.2.10.2. ОбобщениеОбобщение – это отношение между более общей сущностью и болееспециальной сущностью.Перед тем как мы сможем перейти к обсуждению наследования и полиморфизма, необходимо сформировать четкое представление об идееобобщения. Обобщение – это отношение между более общим элементоми более специальным элементом, когда более специальный элементполностью совместим с более общим элементом, но содержит большее количество информации.Два элемента подчиняются принципу замещаемости: более специальный элемент может использоваться везде, где предполагается использование более общего элемента, без нарушения системы.

Очевидно, чтообобщение – намного более прочный тип отношений, чем ассоциация.В самом деле, обобщение подразумевает самый высокий уровень зависимости (и, следовательно, связанности) между двумя элементами.10.2.1. Обобщение классовС концептуальной точки зрения идея обобщения проста. Всем хорошоизвестны общие сущности, например дерево, и более специальные сущности, например дуб, который является конкретным типом дерева.230Глава 10. Наследование и полиморфизм10.2. Обобщение10.3. Наследование классовизучаем обобщение классов10.2.1. Обобщение классовподробно рассматриваем наследование10.3.1. Переопределение10.3.2.

Абстрактные операции и классы10.3.3. Уровень абстракции10.3.4. Множественное наследование10.4. Полиморфизмподробно рассматриваем полиморфизм10.5. Дополнительные аспекты обобщения10.5.1. Множества обобщения10.5.2. Множества всех типов10.6. Что мы узналиРис. 10.1. План главы10.4.1. Пример полиморфизма23110.3. Наследование классовобобщениеспециализацияболее общий элемент«являетсяразновидностью»Square(квадрат)ShapeCircle(круг)Triangle(треугольник)более специальные элементыродительсуперклассбазовый класспредокдочерний классподкласспотомокнаследникИерархия обобщенияРис.

10.2. Иерархия обобщенияОбобщение применяется ко всем классификаторам. В этой книге намуже встречалось обобщение, применяемое к прецедентам и актерам.Теперь обсудим его применение к классам.На рис. 10.2 представлен класс Shape (фигура); это, несомненно, оченьобщее понятие! От него происходят дочерние классы, подклассы, потомки, наследники (все эти термины широко используются), которыеявляются более специальными разновидностями общего понятия Shape.Согласно принципу замещаемости экземпляр любого из этих подклассов может использоваться везде, где предполагается экземпляр суперкласса (или «надкласса») Shape.Иерархия обобщения создается путем обобщения более специальныхсущностей и специализации более общих сущностей.При подробном обсуждении атрибутов и операций этих классов мыувидим, что прийти к приведенной выше иерархии можно двумя способами: либо через процесс специализации, либо через процесс обобщения.

В специализации при анализе сначала определяется общаяконцепция Shape, а затем происходит ее специализация до конкретныхтипов фигур. В обобщении анализ выявляет более специализированные Square (квадрат), Circle (круг) и Triangle (треугольник), а затем устанавливается, что все они имеют общие характеристики, которые можно выделить в более общий надкласс.ОО анализ стремится использовать и специализацию, и обобщение одновременно. Хотя из собственного опыта можем сказать, что в процессе анализа следует научиться как можно раньше замечать более общиевещи.10.3. Наследование классовВ иерархии обобщения (рис.

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