2. Язык UML. Руководство пользователя. Буч_ Рамбо_ Якобсон (2-е издание) (2006) (1185732), страница 86
Текст из файла (страница 86)
Разработайтеобсуждают- концептуальную модель UML, чтобы получить некоторый каркас,на основе которого вы будете расширять свое понимание языка.ся в главе 2.451Позднее вы станете лучше понимать, как работают совместно более развитые средства UML. По мере того как вы отважитесь на моделирование более сложных задач, погружайтесь в специфическиесредства UML, изучая общую технику моделирования по этойкниге.Если вы только начинаете осваивать объектноFориентированныеметоды, воспользуйтесь следующими советами: Начните привыкать к идее абстракции. Коллективные упражнения с CRCFкарточками и анализ вариантов использования –отличный способ повысить свое мастерство в идентификации сложных абстракций.
Моделируйте простые статические части проблемы, используя классы, зависимости, обобщения и ассоциации с тем,чтобы лучше познакомиться с визуализацией сообществабстракций. Используйте простые диаграммы последовательности и коммуникации, чтобы моделировать динамическую составляющую проблемы.
Построение модели взаимодействия пользователя с системой – хорошая начальная позиция, котораяпринесет немедленную выгоду, помогая вам пройтись по наиболее важным вариантам использования системы.Если вы новичок в моделировании: Для начала возьмите часть системы, которую вы уже построили (предпочтительно – на какомFлибо объектноFориентированном языке программирования, таком как C++), и создайте модель UML этих классов и их связей. Используя UML, попытайтесь выразить некоторые деталипрограммных идиом или механизмов, которые вы использовали в системе и которые существуют в проекте, но ещене воплощены в коде. Попытайтесь реконструировать модель архитектуры приложения (особенно нетривиального), используя компоненты,в том числе подсистемы, для представления его основныхструктурных элементов.
Для организации самой модели применяйте пакеты. После того как вы в целом освоите словарь UML, постройте модель той части системы, для которой вы собираетесьписать код. Продумайте структуру и поведение, которыевы специфицируете, и только потом, когда их размер, форма и семантика вас вполне устроят, используйте эту модельв качестве каркаса для реализации системы.Если у вас уже есть опыт использования другого объектноFориентированного метода:Применение UML452 Просмотрите модель, построенную на привычном для васязыке моделирования, и отобразите ее элементы на элементы UML.
Скорее всего, большинство из них окажутся идентичными, а потому изменения в массе своей будут носитькосметический характер. Рассмотрите сложные задачи моделирования, с которымивы сталкивались в своей практике и которые было невозможно решить с помощью привычного вам языка. ПоищитекакиеFнибудь средства UML, способные упростить решениепроблемы.Если вы искушенный пользователь, вам пригодятся следующиерекомендации: Убедитесь, что вы постигли концептуальную модель UML.Вы можете упустить из виду гармоничность концепций этого языка, если сразу возьмете на вооружение самые сложныеего средства, не изучив предварительно базовый словарь.
Уделите особое внимание тем средствам UML, которыепредназначены для моделирования внутренней структуры:кооперациям, параллелизму, распределению и образцам,то есть случаям применения сложной и тонкой семантики. Рассмотрите механизмы расширения UML и подумайте, какадаптировать язык, чтобы можно было напрямую выразитьсловарь вашей предметной области. Не поддавайтесь соблазну все усложнять, иначе созданную вами модель никтоне поймет (разве что найдется чрезвычайно продвинутыйпользователь).Что дальшеНастоящее руководство пользователя – это всего лишь однаиз широкого ряда книг, которые призваны помочь вам в изученииUML. В дополнение к ней мы можем порекомендовать следующуюлитературу: James Rumbaugh, Ivar Jacobson, Grady Booch.
The UnifiedModeling Language Reference Manual. Second Edition. – AddisonFWesley, 2005. (Русскоязычное издание книги: Буч Г.,Якобсон А., Рамбо Дж. UML. Классика CS. 2Fе изд. – СПб:Питер, 2006.) Исчерпывающее руководство по синтаксисуи семантике UML. Ivar Jacobson, Grady Booch, James Rumbaugh.
The UnifiedSoft ware Development Process. – AddisonFWesley, 1999.(Русскоязычное издание книги: Якобсон А., Буч Г., Рамбо Дж. Унифицированный процесс разработки программногоЧто дальше453обеспечения. – СПб: Питер, 2002.) Советы по организациипроцесса разработки с применением UML.Чтобы узнать больше о моделировании от самих авторов UML,воспользуйтесь следующими изданиями: Michael Blaha, James Rumbaugh.
ObjectFOriented Modelingand Design with UML. Second Edition. – Prentice Hall, 2005. Grady Booch. ObjectFOriented Analysis and Design with Applications. Second Edition. – AddisonFWesley, 1993. (Русскоязычное издание книги: Буч Г. ОбъектноFориентированныйанализ и проектирование с примерами приложений на С++.2Fе изд. – М.: Издательство Бином; СПб.: Невский диалект,1999.) Ivar Jacobson, Magnus Christerson, Patrik Jonsson, GunnarOvergaard.
ObjectFOriented Software Engineering: A Use CaseDriven Approach. – AddisonFWesley, 1992.Информацию о технологии Rational Unified Process можно найти здесь: Philippe Kruchten. The Rational Unified Process: An Introduction. Third Edition. – AddisonFWesley, 2004.Последнюю информацию об UML, равно как и самую последнюю версию стандарта UML, можно найти на WebFсайте OMGwww.omg.org.Существует немало другой литературы, где описываются UMLи разнообразные методы разработки, а кроме того, огромное числокниг, посвященное общей практике программной инженерии.Сущности455Вариант использованияПриложение 1. Нотация UMLОбщийобзор UMLсодержитсяв главе 2.Дополнительные разделымогут быть использованыдля показа содержимогоUML – это язык визуализации, специфицирования, конструирования и документирования артефактов программных систем.
Каки любой язык, он характеризуется четко определенными синтаксисом и семантикой. Та часть синтаксиса UML, которую можно представить наглядно, выражена в его графической нотации.В этом приложении приводятся описания элементов нотацииUML, рассматривавшихся выше.пиктограммаSpellingChecker «manifest»«artifact»spelling.dllСущностиАртефактДополнительные разделымогут быть использованыдля показа содержимогоСтруктурные сущностиСтруктурные сущности – это «имена существительные» в UMLмоделях. Они включают в себя классы, интерфейсы, кооперации, варианты использования, активные классы, компоненты и узлы.Поведенческие сущностиПоведенческие сущности – это динамические части UMLFмоделей. Они включают взаимодействия и автоматы.имяОбъекты подчеркнутыАбстрактные элементывыделены курсивомтипанонимная рольрольпоследовательнаяметкапредоставляемыйинтерфейс»«спецификацияисполнения«»Нотация UML456Связи457СвязизащитноеусловиеЗависимостьЗависимость – это семантическая связь между двумя сущностями, при которой изменение одной сущности (независимой) можетповлиять на семантику другой (зависимой).владелецисточникцельГруппирующие сущностиГруппирующие сущности – это организационные части моделей UML.
К ним относятся пакеты.АссоциацияАссоциация – структурная связь, которая описывает набор ссылок. Ссылка – это экземпляр ассоциации, представляющий собойсоединение объектов.множественность*Дополнительные разделымогут быть использованыдля показа содержимогоконечное имянезакрашенный ромбикдля агрегациизакрашенный ромбикдля композицииАннотирующие сущностиАннотирующие сущности – это пояснительные части UMLFмоделей.
К ним относятся примечания.ОбобщениеОбобщение – связь, при которой объекты специализированного элемента (потомка) могут замещать объекты более общего элемента (родителя).примечание«»потомок(подкласс)родитель(суперкласс)Нотация UML458РасширяемостьUML располагает тремя механизмами расширения синтаксисаи семантики языка: это стереотипы, которые представляют новыеэлементы модели, помеченные значения, представляющие ее новыеатрибуты, и ограничения, представляющие ее новую семантику.«»«container»version =3.2«»«»ДиаграммыДиаграмма – это графическое представление набора элементов, чаще всего отображаемых в виде связного графа с вершинами(сущностями) и ребрами (связями).