Главная » Просмотр файлов » 2. Язык UML. Руководство пользователя. Буч_ Рамбо_ Якобсон (2-е издание) (2006)

2. Язык UML. Руководство пользователя. Буч_ Рамбо_ Якобсон (2-е издание) (2006) (1185732), страница 41

Файл №1185732 2. Язык UML. Руководство пользователя. Буч_ Рамбо_ Якобсон (2-е издание) (2006) (Язык UML. Руководство пользователя. Буч_ Рамбо_ Якобсон (2-е издание) (2006).pdf) 41 страница2. Язык UML. Руководство пользователя. Буч_ Рамбо_ Якобсон (2-е издание) (2006) (1185732) страница 412020-08-25СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Расширение системы возможноза счет создания компонентов, предоставляющих новые сервисычерез другие интерфейсы, которые прочие компоненты, в свою очередь, могут обнаружить и использовать. Эта семантика проясняетцели определения компонентов в UML. Компонент соответствуетнабору интерфейсов и обеспечивает его реализацию, что позволяет замещать его – как в логическом дизайне, так и в основаннойна нем физической реализации.Компонент замещаем – это значит, что его можно заменять другимкомпонентом, который соответствует тем же интерфейсам (в процессе проектирования вы выбираете иной компонент вместо данного).Обычно механизм вставки и замены артефакта в исполнимой системепрозрачен для пользователя компонента и допускается объектнымимоделями (такими как COM+ и Enterprise Java Beans), которые требуют небольшой промежуточной трансформации, или осуществляетсяинструментами, автоматизирующими этот механизм.Компонент – это часть системы – он редко используется сам посебе.

Чаще он объединен с другими компонентами, то есть вовлеченв архитектурный или технологический контекст, где предполагается его использовать. Компонент логически и физически согласовани, таким образом, представляет структурный и/или поведенческийфрагмент более крупной системы. Во множестве систем он можетбыть использован повторно. Таким образом, компонент представляет собой фундаментальный строительный блок, на основе которогоможет быть спроектирована и составлена система. Это определениерекурсивно: то, что на одном уровне абстракции является системой,может быть компонентом на другом, более высоком уровне.Наконец, как уже отмечалось в предыдущих разделах, компонент соответствует набору интерфейсов и обеспечивает его реализацию.Организация компонентовПакеты обсуждаютсяв главе 12.Связи обсуждаютсяв главах5 и 10.Вы можете организовать компоненты тем же способом, чтои классы, – группируя их в пакеты.Кроме того, допускается организация компонентов путем установления между ними связей зависимости, обобщения, ассоциации(включая агрегацию) и реализации.Одни компоненты могут быть построены из других.

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

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

Инкапсуляцияи независимость, обеспечиваемая портами, повышают степень заменяемости компонента.Порт схематически представлен маленьким квадратом на боковой грани компонента – это отверстие в границе инкапсуляциикомпонента. Как предоставляемый, так и требуемый интерфейс может быть соединен с символом порта. Предоставляемый интерфейсизображает сервис, который может быть запрошен извне через данЧастиный порт, а требуемый интерфейс – сервис, который порт должентакжеполучить от какогоFлибо другого компонента. У каждого порта естьмогут иметьимя, а следовательно, он может быть идентифицирован по компомножестненту и имени.

Последнее могут использовать внутренние частивенность,компонента для идентификации порта, через который следует отпоэтомуправлять и получать сообщения. Имя компонента вместе с именемодна частьпорта идентифицирует порт для использования его другими комкомпонентапонентами.можетПорты – это часть компонента. Экземпляры портов создаютсоответссяиуничтожаются вместе с экземпляром компонента, которомутвоватьони принадлежат. Порты также могут иметь множественность; этонесколькимэкземплярам означает возможность существования нескольких экземпляровпорта внутри экземпляра компонента. Каждый порт компонентав пределахимеет соответствующий массив экземпляров. Хотя все экземпляодногоры портов в массиве удовлетворяют одному и тому же интерфейсуэкземпляракомпонента.

и принимают запросы одних и тех же видов, они могут находитьсяКомпоненты212в различных состояниях и иметь разные значения данных. Например, каждый экземпляр в массиве может иметь свой уровеньприоритета (экземпляр порта с наибольшим уровнем приоритетаобслуживается первым).На рис. 15.2 представлена модель компонента Ticket Seller (Продавец билетов) с портами. У каждого порта есть имя и необязательный тип, показывающий, каково назначение данного порта.Компонент имеет порты для продажи билетов, объявлений и обслуживания кредитных карт.имя портаобъявление компонентаBookingnormalsalesLoad AttractionsCredit Cardsattractionsимя интерфейсапортTicket SellerchargingTicket SalesTicket SalesБазовые понятия213экземплярами более мелких компонентов, связанных статически через порты для обеспечения необходимого поведения, без необходимости для автора модели специфицировать дополнительную логику.Часть – это единица реализации компонента, которой присвоены имя и тип.

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

Экземпляр компонента создается с минимальным количеством частей (прочие при необходимости добавляются позднее). Атрибуткласса – это разновидность части: он имеет тип и множественность,и у каждого экземпляра класса есть один или несколько экземпляров атрибута данного типа.Compilerpriortysalesтребуемый интерфейспредоставляемый интерфейсРис. 15.2. Порты компонентаЕсть два порта для продажи – один для обычных покупателейи один для привилегированных. Оба предоставляют один и тот жеинтерфейс типа Ticket Sales (Продажа билетов). Порт обслуживания кредитных карт имеет требуемый интерфейс; любой компонент, который его предоставляет, может удовлетворить егo.

Портобъявлений имеет как предоставляемый, так и требуемый интерфейсы. Используя интерфейс Load Attractions (Информация о развлечениях), театр может передавать афиши и другую информациюо спектаклях в базу данных, используемую для продажи билетов.При помощи интерфейса Booking (Заказ) компонент – продавец билетов может запрашивать у театров сведения о наличии билетови приобретать их.lex:Lexical Analyzerparse:Parsergen:Code Generatoropt:Optimizer[1..3]Compileвнешнийинтерфейсимя частитип частимножественность частичастьопределяемый компонентРис. 15.3. Части компонентаВнутренняя структураКомпонент может быть реализован как единый фрагмент кода,но в больших системах желательно иметь возможность строитькрупные компоненты из малых, которые используются в качествестроительных блоков.

Внутренняя структура компонента содержит части, которые вкупе с соединениями между ними составляютего реализацию. Во многих случаях внутренние части могут бытьНа рис. 15.3 показан компонентFкомпилятор, состоящий из частей четырех видов. В их числе – лексический анализатор, синтаксический анализатор (parser), генератор кода и от одного до трехоптимизаторов. Более полная версия компилятора может бытьсконфигурирована с разными уровнями оптимизации; в даннойверсии необходимый оптимизатор может выбираться во время исполнения.Компоненты214Отметим, что часть – это не то же самое, что класс.

Каждая частьидентифицируется по ее имени так же, как в классе различаются атрибуты. Допустимо наличие нескольких частей одного и того же типа,но вы можете различать их по именам и они предположительно выполняют разные функции внутри компонента. Например, компонентAirTicket Sales (Продажа авиабилетов) на рис. 15.4 может включатьотдельные части Sales для постоянных и обычных клиентов; обеони работают одинаково, но первая обслуживает только привилегированных клиентов, дает больше шансов избежать очередей и предоставляет некоторые льготы.

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

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

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