Что такое UML?

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

РОССИЙСКОЙ ФЕДЕРАЦИИ

ФГБОУ ВПО «Тамбовский государственный технический
университет»

Громов Ю.Ю., Иванова О.Г., Беляев М.П.,
Данилкин С.В.

Методы и средства проектирования

Информационных систем.

Объектно-ориентированный подход.

Рекомендовано федеральным государственным бюджетным образовательным учреждением высшего профессионального образования «Московский государственный технический университет имени Н.Э. Баумана» в качестве учебного пособия для студентов высших учебных заведений, обучающихся по направлению подготовки 230400 «Информационные системы и технологии»

Тамбов 2013


Оглавление 2

1. Введение в UML 3

1.1 Что такое UML? 3

1.2 Назначение UML 7

1.3 Модель UML и ее элементы 10

1.4. Диаграммы 14

1.5 Представления 21

1.6 Общие механизмы 24

2. Моделирование использования 29

2.1 Значение моделирования использования 29

2.2 Диаграммы использования 31

2.3 Реализация вариантов использования 40

3. Моделирование структуры 50

3.1 Объектно-ориентированное моделирование структуры 50

3.2 Диаграммы классов 59

3.3 Диаграммы реализации 87

4. Моделирование поведения 94

4.1 Объектно-ориентированное моделирование поведения 94

4.2 Диаграммы состояний 97

4.3. Диаграммы деятельности 125

4.4 Диаграммы взаимодействия 139

4.5 Моделирование параллелизма 153


Введение в UML

Что такое UML?

UML является аббревиатурой полного названия Unified Modeling Language. Правильный перевод этого названия на русский язык — унифицированный язык моделирования. Таким образом, обсуждаемый предмет характеризуется тремя словами, каждое из которых является точным термином.

Главным словом в этом сочетании является слово "язык".

Язык — это знаковая система для хранения и передачи информации.

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

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

• Синтаксис то есть определение правил конструирования выражений языка

• Семантика, то есть определение правил приписывания смысла выражениям языка.

• Прагматика, то есть определение правил использования выражений языка для достижения определенных целей.

Как формальный искусственный язык UML имеет синтаксис, семантику и прагматику.

Остановимся чуть подробнее на смысле слов "модель" и "моделирование" в контексте UML. Начать придется издалека: с обсуждения понятий жизненный цикл и процесс разработки программной системы.

Повторим, что UML имеет отношение прежде всего и главным образом к созданию и применению компьютерных программ.

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

Рисунок 1.1 – Жизненный цикл приложения

Был даже придуман специальный термин — продолжающаяся разработка, который включает в себя как разработку в обычном смысле, так и модификацию программы (и другие действия) в процессе эксплуатации.

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

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

Веха — это одномоментное идентифицируемое событие в процессе разработки, сопровождающееся появлением и фиксацией некоторого отчуждаемого артефакта (документа, программы, и др.). Фаза — это часть процесса, во время которой выполняются определенные функции с целью достижения определенной вехи. Таким образом, веха наступает в конце фазы и является определяющим признаком фазы. Очень важным является то обстоятельство, что фазы и вехи не обязательно вытянуты в линейную последовательность. Т.е. некоторые фазы могут полностью или частично перекрываться во времени.

Одной из самых первых моделей процесса разработки была так называемая модель "водопада", или модель "конвейера". В этой модели процесс разработки носит линейный характер. Он также делится на фазы, но фазы сменяют друг друга строго последовательно (так, как выполняются производственные операции над изделием на конвейере). Таким образом, в процессе разработки программа как бы опускается с более высоких, абстрактных уровней (ТЗ, эскизный проект и т. п.), на все более низкие детальные уровни (код, данные в базе и т. п.).

Большинство используемых в настоящее время моделей разработки носят циклический характер (так называемая итеративная или инкрементальная разработка). Например, в данном пособии используется простая модель, представленная на рисунке 1.2.

Рисунок. 1.2 - Итеративный процесс разработки

Остановимся только на наличии состояния в жизненном цикле и фазы в процессе разработки, которые у нас названы одним словом "проектирование".

В литературе по технологии программирования часто используется одна аналогия, которую мы хотим повторить.

В проектировании и строительстве домов (по индивидуальному проекту) есть много общего с разработкой приложений. Но есть одно различие, которое сразу бросается в глаза. В архитектуре и строительстве очень широко используются чертежи. Конечно, садовый домик можно построить без всяких чертежей, "на глазок", но с чертежами обычно получается все-таки лучше. Но высотный дом нельзя построить без тщательного предварительного проектирования, учета строительных норм и правил (СНИП) и составления огромного количества разнообразных чертежей.

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

Результат проектирования (и анализа), оформленный средствами определенного языка принято называть моделью. Деятельность по составлению моделей естественно назвать моделированием. Именно в этом смысле UML является языком моделирования.

UML является языком моделирования в смысле описания моделируемого объекта или явления. Таким образом, модель UML — это, прежде всего, основной артефакт фазы проектирования.

Описывая историю создания UML, его авторы характеризуют эпоху до UML как период "войны методов". Действительно, UML является отнюдь не первым языком моделирования. К моменту его появления насчитывались десятки других, различающихся системой обозначений, степенью универсальности, способами применения и т. д. Авторы языков и теоретики программирования препирались между собой, выясняя чей подход лучше, а практические программисты всю эту "войну методов" равнодушно игнорировали, поскольку ни один из методов не дотягивал до уровня индустриального стандарта.

Толчком к изменению ситуации послужило массовое распространение объектно-ориентированного подхода к программированию (ООП), в результате чего возникла потребность в соответствующих средствах.

Следует отметить, что UML — это унифицированный язык моделирования, но никак не единый и не универсальный.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: