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

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

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

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

Явно выделяя их в системе, выделаете ее более понятной и простой в сопровождении. Например,если вам дадут неизвестный исходный текст и попросят его модифицировать, вы потратите много времени, пытаясь догадаться, какего части связаны друг с другом. Вместе с тем, если вам дадут тот жетекст и скажут, что перечисленные классы взаимодействуют на основе механизма «публикацииFиFподписки» (publishFandFsubscribe),вы получите гораздо более ясное представление о том, как все работает. Та же идея применима к системе в целом. Одна лишь фраза«система организована как набор конвейеров и фильтров» оченьмногое говорит о системной архитектуре – понять это, глядя на кодклассов, было бы куда сложнее.Образцы и каркасы404Образцы помогают визуализировать, специфицировать, конструировать и документировать артефакты программной системы.

Можно заниматься прямым проектированием системы, выбирая подходящий набор образцов и применяя их к абстракциям, специфичнымдля данной предметной области, или же обратным проектированием, выявляя содержащиеся в системе образцы (хотя вряд ли этотпроцесс можно назвать очень продуктивным). Впрочем, при поставке системы было бы еще лучше описать характерные для нееобразцы, чтобы помочь тому, кому придется в будущем повторноиспользовать или модифицировать ваш код.На практике интерес представляют только два вида образцов –образцы проектирования и каркасы. В UML предусмотрены средства моделирования и тех и других. При моделировании любогообразца вы обнаружите, что он, как правило, является автономнымв некотором большом пакете, если не считать зависимостей, связывающих этот образец с остальными частями системы.Базовые понятияШаблонныеклассырассматриваютсяв главе 9.405некоторого типичного поведения, представляющего интерес.

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

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

В приведенном примере классы образца Subject (Субъект) и Observer (Наблюдатель) связаны с конкретными классами CallQueue (ОчередьЗадач)и SlideBar (Ползунок) соответственно.параметрышаблонаопределение образцаМеханизмыМеханизм – это образец проектирования, примененный к сообществу классов. Например, существует типичная проблема проектирования, с которой сталкивается программист, пишущий на языкеJava: как изменить класс, который умеет реагировать на некотороемножество событий, таким образом, чтобы он реагировал на события иного рода, не затрагивая исходного кода этого класса? Типичное решение проблемы – применение образца адаптера (adaptorpattern), структурного образца проектирования, который конвертирует один интерфейс в другой.

Этот образец является настолькообщим, что имеет смысл дать ему название, а затем использоватьв моделях всякий раз, когда возникает аналогичная проблема.При моделировании механизмы проявляют себя двойственно.ВоFпервых, как было показано на рис. 29.1, механизм простоКооперацииобсуждают- именует набор абстракций, работающих вместе для реализации тися в главе 28 пичного поведения, представляющего некоторый интерес. Такиемеханизмы моделируются как простые кооперации, поскольку ониявляются всего лишь именами для сообщества классов. Раскрывтакую кооперацию, можно увидеть ее структурные аспекты (обычно изображаемые на диаграмме классов), а также поведенческиеаспекты (обычно изображаемые на диаграммах взаимодействия).Кооперации подобного типа охватывают разные уровни абстракции системы, то есть какойFто конкретный класс, вероятно, будетучаствовать в нескольких кооперациях.ВоFвторых, как показано на рис.

29.2, механизм именует шаблондля набора абстракций, работающих совместно для обеспеченияObserverPatternSubject,Observerпараметрыsubject: Subjectкооперацияobserver: Observernotify()getState()update()роликооперацииаргументCallQueueаргументсвязывание образцаObserverSubjectObserverPatternqueue:CallListрасширениеCallQueuequeue:CallListnotify()getState()subjectSliderBarreading:Realcolor:Colorrange:IntervalSliderBarobserver reading:Realcolor:Colorrange:Intervalupdate()Рис. 29.2. МеханизмыОбразцы и каркасы406На заметку.

Решение о моделировании механизма в видепростой или параметризованной кооперации достаточноочевидно. Если нужно просто именовать сообщество совместно работающих классов в системе, следует применитьпростую кооперацию. Если же необходимо абстрагироватьсущественные структурные и поведенческие аспекты механизма способом, не зависящим от конкретной предметнойобласти, а затем связать их с абстракциями в данном контексте, следует применять параметризованную кооперацию.Типичные приемы моделирования«407»КаркасыПять представленийархитектуры обсуждаютсяв главе 2.Пакетырассматриваютсяв главе 12,стереотипы –в главе 6.Событияобсуждаютсяв главе 21.Каркас (framework) – это архитектурный образец, предлагающий расширяемый шаблон для приложений в некоторой предметной области. Например, в системах реального времени часто можно встретить архитектурный образец «циклический исполнитель»(cyclic executive), который разделяет время на кадры и подкадры,где обработка происходит в строгих временных рамках.

Выбор этого образца вместо управляемой событиями архитектуры оказываетвлияние на всю систему. Данный образец (как и его альтернатива)является настолько общим, что имеет смысл назвать его каркасом.Каркас – это нечто большее, чем механизм. Фактически можносчитать каркас разновидностью микроархитектуры, включающейв себя множество механизмов, совместно работающих над решением типичной проблемы для типичной предметной области. Специфицируя каркас, вы тем самым описываете «скелет» архитектурывместе со всеми ее органами управления, которые применяютсяпользователем для адаптации к нужному контексту.В UML каркас моделируется в виде пакета со стереотипом.

Заглянув внутрь этого пакета, можно увидеть механизмы, существующие в любом из представлений системной архитектуры. Например, там обнаружатся не только параметризованные кооперации,но также варианты использования (которые объясняют, как надоработать с этим каркасом), а также простые кооперации (представляющие набор абстракций, на базе которых можно строитьсистему, – например, путем порождения классовFпотомков).Рис. 29.3 показывает такой каркас, названный CyclicExecutive(ЦиклическийИсполнитель).

Помимо прочего, этот каркас включает кооперацию CommonEvents (ОбщиеСобытия), охватывающую множество классов событий, и механизм EventHandler (ОбработчикСобытий), предназначенный для циклической обработки событий.Клиент, построенный на базе этого каркаса, – к примеру, Pacemaker(СердечныйСтимулятор), – может пользоваться абстракциями изкооперации CommonEvents путем порождения производных классов,а также применять механизм EventHandler.Рис.

29.3. КаркасыНа заметку. Каркасы отличаются от обычных библиотек классов. Библиотека классов содержит абстракции, конкретизируемые или вызываемые другими абстракциями программы.Каркас же содержит абстракции, которые сами вызываютили конкретизируют другие абстракции. Оба вида соединений образуют те самые «вилки», «розетки», «кнопки» и «циферблаты», посредством которых каркас настраивается на используемый вами контекст.Типичные приемы моделированияМоделирование образцов проектированияВ числе прочего образцы используются для моделирования типичных ситуаций, возникающих при проектировании. При моделировании подобного механизма следует принимать во внимание еговнутренний и внешний вид.При взгляде снаружи образец проектирования изображаетсяв виде параметризованной кооперации.

Будучи кооперацией, образец представляет собой набор абстракций, структура и поведениекоторых призваны в ходе совместной работы выполнить некоторуюполезную функцию. Параметры кооперации именуют те элементы, которые пользователь образца должен с чемFто связать. Такимобразом, образец проектирования превращается в шаблон, которыйиспользуется в конкретном контексте путем подстановки элементов, соответствующих параметрам шаблона.Образцы и каркасы408При взгляде изнутри образец проектирования представляетсяпростой кооперацией и отображается со своими структурной и поведенческой составляющими. Обычно кооперация моделируетсяс помощью диаграмм классов (для структурной составляющей)и диаграмм взаимодействий (для поведенческой составляющей).Параметры кооперации именуют некоторые из структурных элементов, которые при связывании с какимFто определенным контекстом конкретизируются абстракциями из этого контекста.Чтобы смоделировать образец проектирования, необходимо: Идентифицировать типичное решение типичной проблемыПрименениеи материализовать его в виде механизма.коопераций Смоделировать механизм как кооперацию, описав ее струкдля модетурный и поведенческий аспекты.лирования Идентифицировать те элементы образца проектирования,механизмовкоторые должны быть связаны с элементами в конкретномобсуждаетконтексте, и отобразить их в виде параметров кооперации.ся в главе 28.В качестве примера на рис.

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

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

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