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

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

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

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

3.3.На заметку. На рис. 3.3 представлен пример диаграммы,сгенерированной в результате обратного проектированиясуществующей системы. Обратное проектирование – этосоздание модели на основании кода.По рисунку становится видно, что HelloWorld – только «листик» в большой иерархии классов. HelloWorld – дочерний класс Applet;Applet – дочерний класс Panel (Панель); Panel – дочерний по отношениюк Container (Контейнер); Container – дочерний класс Component (Компонент), а Component – дочерний по отношению к Object (Объект), которыйявляется родительским классом для всех классов Java. Таким образом,эта модель соответствует организации библиотеки Java – каждый дочерний класс расширяет (наследует) свойства некоторого родителя.56Здравствуй, мир!Механизмы57в UML в виде папок с закладками.

Пакеты могут быть вложенными, и пунктирные линии со стрелками выражают зависимости между ними. Например, HelloWorld зависит от пакета java.applet,а java.applet – от java.awt.Рис. 3.4. Пакетирование HelloWorldМеханизмыРис. 3.3. Иерархия наследования HelloWorldИнтерфейсыСвязь между ImageObserver (ОбозревательИзображений) и Componentобсуждают- несколько отличается от предыдущих связей обобщения, и диаграммася в главе 11. классов отражает это отличие. В библиотеке Java ImageObserver – этоПакеты обсуждаютсяв главе 12.интерфейс; отсюда следует, в частности, что он сам по себе не имеетреализации, а вместо этого требует, чтобы другие классы реализовывали его.

Вы можете показать, что класс Component реализует интерфейс ImageObserver, с помощью сплошной линии, проведеннойот прямоугольника (Component) к кружку, который символизируетинтерфейс (ImageObserver).Как показано на рис. 3.3, HelloWorld непосредственно взаимодействует только с двумя классами (Applet и Graphics), которые являютсялишь малой частью большой библиотеки предопределенных классов Java. Чтобы управлять этой большой коллекцией, Java организует свои интерфейсы и классы во множестве пакетов. Корневойпакет среды Java носит имя java (ну кто бы мог подумать!) В неговложено несколько пакетов, содержащих, в свою очередь, другиепакеты, интерфейсы и классы.

Object «живет» в пакете lang, поэтому полный путь к нему выглядит так: java.lang.Object. Аналогичным образом Panel, Container и Component находятся в пакете awt, классApplet – в пакете applet. Интерфейс ImageObserver находится в пакетеimage, который, в свою очередь, размещен в awt, поэтому полный путьк нему – java.awt.image.ImageObserver.Вы можете представить такое пакетирование на диаграмме классов,показанной на рис.

3.4. Как следует из рисунка, пакеты представленыОбразцыи каркасыобсуждаются в главе 29.Процессыи потокирассматриваютсяв главе 23.Наиболее трудная задача, возникающая при освоении такой богатой библиотеки, как библиотека языка Java, – понять, как ее частиработают вместе. Например, как вызывается операция paint классаHelloWorld? Какие операции следует использовать, чтобы изменитьповедение этого апплета – скажем, напечатать строку другого цвета? Для ответа на эти и другие вопросы вы должны иметь концептуальную модель, показывающую, как классы работают совместнов динамике.Изучение библиотеки Java показывает, что операция paint класса HelloWorld наследуется от Component.

Но остается открытым вопрос,как она вызывается. Ответ в том, что paint вызывается как часть потока, в котором исполняется апплет (см. рис. 3.5).Рис. 3.5. Изображение механизмаЗдравствуй, мир!58Экземплярыобсуждаются в главе 13.Диаграммыпоследовательностирассматриваютсяв главе 19.АртефактыНа рисунке показана кооперация нескольких объектов, включая один экземпляр класса HelloWorld. Прочие изображенные здесьобъекты являются частью среды Java, поэтому в основном находятся на заднем плане создаваемых вами апплетов. Все это демонстрирует кооперацию между объектами, которая может применятьсямногократно. Каждый столбец показывает роль в кооперации, то естьчасть, которая может быть исполнена разными объектами прикаждом запуске.

В UML роли изображаются так же, как классы, с тем отличием, что для них указываются и тип, и имя роли.Средние две роли на данной диаграмме являются анонимными,потому что их типа достаточно для того, чтобы идентифицировать их в пределах кооперации (но двоеточие и отсутствие подчеркивания указывают на то, что это роли). Начальный Thread называется root, а роль HelloWorld именована target и известна ролиComponentPeer.Вы можете моделировать порядок событий, используя диаграмму последовательности, изображенную на рис.

3.5. Здесь последовательность начинается с запуска объекта Thread, который, в своюочередь, вызывает операцию run объекта Toolkit. Объект Toolkitзатем вызывает одну из его собственных операций (callbackLoop),которая затем вызывает операцию handleExpose объекта ComponentPeer.Объект ComponentPeer предполагает, что его цель является экземпляромComponent, но в данном случае это объект дочернего класса Component,а именно HelloWorld, поэтому полиморфно вызывается операцияpaint класса HelloWorld.HelloWorld«manifest»«manifest»«artifact»HelloWorld.classРис.

3.6. Артефакты HelloWorldАртефактыПрограмма «Здравствуй, мир!» реализована в виде апплета,поэтому она никогда не запускается самостоятельно, а только в составе некоторой WebFстраницы. Апплет стартует, когда содержащая его страница открывается механизмом браузера, запускающимобъект Thread этого апплета. Однако не существует класса HelloWorld,который был бы непосредственной частью WebFстраницы. Имеется лишь бинарная форма этого класса, созданная компиляторомJava, который трансформировал исходный код, представляющийэтот класс в исполняемый артефакт. Таким образом, формируетсясовершенно другой взгляд на систему.

В то время как все предшествовавшие диаграммы предлагали логическое представлениеапплета, то, что мы видим теперь, – представление его физическихАртефакты артефактов.Вы можете смоделировать это физическое представление с пообсуждаются в главе 26. мощью диаграммы артефактов, как показано на рис. 3.6.59МеханизмырасширенияUML обсуждаютсяв главе 6.Логический класс HelloWorld показан в верхнем прямоугольнике.

Все другие пиктограммы на рисунке символизируют артефактыUML в представлении реализации системы. Артефакт – это физическая сущность, такая как файл. Артефакт по имени hello.java представляет исходный код логического класса HelloWorld; этим файломмогут манипулировать среда разработки и инструменты управления конфигурацией. Исходный код может быть трансформированв бинарный апплет hello.class с помощью компилятора Java, что делает его пригодным для запуска в среде виртуальной машины Java.Как исходный текст, так и бинарный апплет физически реализуютлогический класс. Это показано пунктирными стрелками, помеченными ключевым словом «manifest».Пиктограмма артефакта представляет собой прямоугольникс ключевым словом «artifact», расположенным над именем.

Бинарный апплет HelloWorld.class – вариация этого базового символа, нос утолщенными линиями, указывающими на то, что это исполняемый артефакт (подобно активному классу). Пиктограмма артефакта hello.java заменена пользовательской иконкой, представляющейтекстовый файл. Пиктограмма WebFстраницы hello.html оформленааналогичным образом, с расширением нотации UML. Как следуетиз рисунка, эта WebFстраница содержит другой артефакт, hello.jpg,который тоже представлен пользовательской иконкой – теперь ужеграфическим файлом.

Так как последние три артефакта представлены определяемыми пользователем графическими символами, их60Здравствуй, мир!имена помещены вне пиктограмм. Зависимости между артефактами изображены пунктирными стрелками.На заметку. Связи между классом (HelloWorld), его исходнымкодом (hello.java) и объектным кодом (HelloWorld.class) редкомоделируются явным образом, хотя иногда бывает удобносделать это, чтобы визуализировать физическую конфигурацию системы.

С другой стороны, общепринятой практикойявляется визуальное представление системы, основаннойна Web, как в приведенном примере – с использованиемдиаграмм артефактов для моделирования страниц и другихисполняемых артефактов.Часть IIОсновы структурногомоделированияГлава 4.

КлассыГлава 5. СвязиГлава 6. Общие механизмыГлава 7. ДиаграммыГлава 8. Диаграммы классовВведениеГлава 4. КлассыВ этой главе:Классы, атрибуты, операции и обязанностиМоделирование словаря системыМоделирование распределения обязанностей в системеМоделирование непрограммных сущностейМоделирование примитивных типовСоздание качественных абстракцийКлассы – наиболее важные строительные блоки любой объектноFориентированной системы. Класс – это описание множества объектовс одинаковыми атрибутами, операциями, связями и семантикой.Класс реализует один или несколько интерфейсов.ДополниВы используете классы, чтобы зафиксировать словарь разрабательныетываемой системы. Эти классы могут включать абстракции, являюсвойстващиеся частью проблемной области, а также другие классы, составклассовляющие реализацию.

Можно применять классы для представленияобсуждаются программных сущностей, аппаратных сущностей и даже тех сущв главе 9.ностей, которые являются полностью концептуальными.Хорошо структурированные классы имеют четко очерченныеграницы и формируют сбалансированное распределение обязанностей в системе.Объекты обсуждаютсяв главе 13.63с дверьми, поскольку тоже образуют проем в стене, но их функциональность неодинакова. Обычно (хотя и не всегда) окна предназначены для того, чтобы вы смотрели через стекло на улицу.Отдельные стены, двери и окна редко существуют сами по себе,поэтому вы должны также рассмотреть, как конкретные экземпляры этих сущностей сочетаются друг с другом.

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

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

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

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