Пиши Дома Нужные Работы

Обратная связь

Глава 6. Язык визуального моделирования UML

Базис UML

 

Для создания моделей анализа и проектирования объектно-ориентированных про­граммных систем используют языки визуального моделирования. Появившись сравнительно недавно, в период с 1989 по 1997 год, эти языки уже имеют предста­вительную историю развития. В настоящее время различают три поколения языков визуального моделирования. И если первое поколение образовали 10 языков, то численность второго поколе­ния уже превысила 50 языков. Каждый язык вводил свои вырази­тельные средства, ориентировался на собственный синтаксис и семантику, иными словами — претендовал на роль единственного и неповторимого языка. В резуль­тате разработчики (и пользователи этих языков) перестали понимать друг друга. Возникла острая необходимость унификации языков. Идея унификации привела к появлению языков 3-го поколения. В качестве стан­дартного языка третьего поколения был принят Unified Modeling Language (UML), создававшийся в 1994-1997 годах (основные разработчики Г. Буч, Дж. Рамбо, И. Джекобсон). UML — стандартный язык для написания моделей анализа, проектирования и ре­ализации объектно-ориентированных программных систем. UML может использоваться для визуализации, спецификации, конструирования и до­кументирования результатов программных проектов. UML — это не визуальный язык программирования, но его модели прямо транслируются в текст на языках программирования (Java, C++, Visual Basic, Ada 95, Object Pascal) и даже в табли­цы для реляционной БД. Словарь UML образуют три разновидности строительных блоков: предметы, от­ношения, диаграммы.

Предметы в UML

Предметы — это абстракции, которые являются основными элементами в модели, отношения связывают эти предметы, диаграммы группируют коллекции предметов.



В UML имеются четыре разновидности предметов: структурные предметы; предметы поведения;группирующие предметы; поясняющие предметы.

Эти предметы являются базовыми объектно-ориентированными строительными блоками. Они используются для написания моделей.

Структурные предметы

Структурные предметы являются существительными в UML-моделях. Они пред­ставляют статические части модели — понятийные или физические элементы. Перечислим восемь разновидностей структурных предметов.

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

Человек
Имя Возраст Вес
Родиться() Креститься() Поправиться() Похудеть()

 

 

 

Рис.1.Классы

 

 

2. Интерфейс — набор операций, которые определяют услуги класса или компо­нента. Интерфейс описывает поведение элемента, видимое извне. Интерфейс может представлять полные услуги класса или компонента или часть таких ус­луг. Интерфейс определяет набор спецификаций операций (их сигнатуры), а не набор реализаций операций. Графически интерфейс изображается в виде кружка с именем, как показано на рис.2. Имя интерфейса обычно начинает­ся с буквы «I». Интерфейс редко показывают самостоятельно. Обычно его присоединяют к классу или компоненту, который реализует интерфейс.

Рис.2.Интерфейсы

3. Кооперация (сотрудничество) определяет взаимодействие и является сово­купностью ролей и других элементов, которые работают вместе для обеспе­чения коллективного поведения более сложного, чем простая сумма всех элементов. Таким образом, кооперации имеют как структурное, так и пове­денческое измерения. Конкретный класс может участвовать в нескольких кооперациях. Эти кооперации представляют реализацию паттернов (образцов), которые формируют систему. Как показано на рис.3, графически кооперация изображается как пунктирный эллипс, в который вписывается ее имя.

 
 
обслуживание клиента

 

 


Рис.3. Кооперации

4. Актер — набор согласованных ролей, которые могут играть пользователи при взаимодействии с системой (ее элементами Use Case). Каждая роль требует от системы определенного поведения. Как показано на рис. 4, актер изобража­ется как проволочный человечек с именем.

Заказчик

Рис.4.Актеры

5. Элемент Use Case (Прецедент) — описание последовательности действий (или нескольких последовательностей), выполняемых системой в интересах отдель­ного актера и производящих видимый для актера результат. В модели элемент Use Case применяется для структурирования предметов поведения. Элемент Use Case реализуется кооперацией. Как показано на рис. 5, элемент Use Case изображается как эллипс, в который вписывается его имя.

Рис.5.Элементы UseCase

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

ЦентрУправления
 
Запустить() Остановить()

Рис.6.Активные классы

7. Компонент— физическая и заменяемая часть системы, которая соответствует набору интерфейсов и обеспечивает реализацию этого набора интерфейсов. В систему включаются как компоненты, являющиеся результатами процесса разработки (файлы исходного кода), так и различные разновидности исполь­зуемых компонентов (СОМ+-компоненты, Java Beans). Обычно компонент — это физическая упаковка различных логических элементов (классов, интерфей­сов и коопераций). Как показано на рис. 10.7, компонент изображается как пря­моугольник с вкладками, обычно включающий имя.

Рис.7.Компоненты

8.Узел — физический элемент, который существует в период работы системы и представляет ресурс, обычно имеющий память и возможности обработки. В узле размещается набор компонентов, который может перемещаться от узла к узлу. Как показано на рис. 8, узел изображается как куб с именем.

Рис.8.Узлы

1.2.Предметы поведения

Предметы поведения — динамические части UML-моделей. Они являются глаго­лами моделей, представлением поведения во времени и пространстве. Существу­ют две основные разновидности предметов поведения.

1. Взаимодействие— поведение, заключающее в себе набор сообщений, которыми обменивается набор объектов в конкретном контексте для достижения оп­ределенной цели. Взаимодействие может определять динамику как совокупно­сти объектов, так и отдельной операции. Элементами взаимодействия являются сообщения, последовательность действий (поведение, вызываемое сообщени­ем) и связи (соединения между объектами). Как показано на рис. 9, сообще­ние изображается в виде направленной линии с именем ее операции.

display

 
 


Рис.9.Сообщения

2. Конечный автомат — поведение, которое определяет последовательность со­стояний объекта или взаимодействия, выполняемые в ходе его существования в ответ на события (и с учетом обязанностей по этим событиям). С помощью конечного автомата может определяться поведение индивидуального класса или кооперации классов. Элементами конечного автомата являются состояния, пе­реходы (от состояния к состоянию), события (предметы, вызывающие перехо­ды) и действия (реакции на переход). Как показано на рис. 10.10, состояние изображается как закругленный прямоугольник, обычно включающий его имя и его подсостояния (если они есть).

Рис.10.Состяния

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

1.3.Группирующие предметы

Группирующие предметы — организационные части UML-моделей. Это ящики, по которым может быть разложена модель. Предусмотрена одна разновидность груп­пирующего предмета — пакет.

Пакет— общий механизм для распределения элементов по группам. В пакет мо­гут помещаться структурные предметы, предметы поведения и даже другие груп­пировки предметов. В отличие от компонента (который существует в период выполнения), пакет — чисто концептуальное понятие. Это означает, что пакет су­ществует только в период разработки. Как показано на рис. 11, пакет изображает­ся как папка с закладкой, на которой обозначено его имя и, иногда, его содержание.

Рис.11.Пакеты

Поясняющие предметы

Поясняющие предметы — разъясняющие части UML-моделей. Они являются за­мечаниями, которые можно применить для описания, объяснения и комментиро­вания любого элемента модели. Предусмотрена одна разновидность поясняющего предмета — примечание.

Примечание — символ для отображения ограничений и замечаний, присоеди­няемых к элементу или совокупности элементов. Как показано на рис.12,
примечание изображается в виде прямоугольника с загнутым углом, в который
вписывается текстовый или графический комментарий.

Рис.12.Примечания

Отношения в UML

В UML имеются четыре разновидности отношений:

1)зависимость; 2)ассоциация; 3)обобщение; 4)реализация.

Эти отношения являются базовыми строительными блоками отношений. Они ис­пользуются при написании моделей.

1. Зависимость— семантическое отношение между двумя предметами, в котором изменение в одном предмете (независимом предмете) может влиять на семан­тику другого предмета (зависимого предмета). Как показано на рис. 13, за­висимость изображается в виде пунктирной линии, возможно направленной на независимый предмет и иногда имеющей метку.

Зависимый-------------àНезависимый

Рис. 13. Зависимости

*
2. Ассоциация— структурное отношение, которое описывает набор связей, явля­ющихся соединением между объектами. Агрегация — это специальная разно­видность ассоциации, представляющая структурное отношение между целым и его частями. Как показано на рис. 14, ассоциация изображается в виде сплошной линии, возможно направленной, иногда имеющей метку и часто вклю­чающей другие «украшения», такие как мощность и имена ролей.

 

 
 


Заказчик Заказ

Рис. 14. Ассоциации

3. Обобщение— отношение специализации/обобщения, в котором объекты спе­циализированного элемента (потомка, ребенка) могут заменять объекты обоб­щенного элемента (предка, родителя). Иначе говоря, потомок разделяет струк­туру и поведение родителя. Как показано на рис. 15, обобщение изображается в виде сплошной стрелки с полым наконечником, указывающим на родителя.

Потомок Родитель

 

Рис..15. Обобщения

4. Реализация — семантическое отношение между классификаторами, где один классификатор определяет контракт, который другой классификатор обязует­ся выполнять (к классификаторам относят классы, интерфейсы, компоненты, элементы Use Case, кооперации). Отношения реализации применяют в двух случаях: между интерфейсами и классами (или компонентами), реализующими их; между элементами Use Case и кооперациями, которые реализуют их. Как показано на рис. 16, реализация изображается как нечто среднее между обоб­щением и зависимостью.

Рис.16.Реализации

Диаграммы в UML

Диаграмма — графическое представление множества элементов, наиболее часто изображается как связный граф из вершин (предметов) и дуг (отношений). Диа­граммы рисуются для визуализации системы с разных точек зрения, затем они ото­бражаются в систему. Обычно диаграмма дает неполное представление элемен­тов, которые составляют систему. Хотя один и тот же элемент может появляться во всех диаграммах, на практике он появляется только в некоторых диаграммах. Теоретически диаграмма может содержать любую комбинацию предметов и отно­шений, на практике ограничиваются малым количеством комбинаций, которые соответствуют пяти представлениям архитектуры ПС. По этой причине UML вклю­чает 9 видов диаграмм:

1) диаграммы классов;

2) диаграммы объектов;

3) диаграммы Use Case (диаграммы прецедентов);

4) диаграммы последовательности;

5) диаграммы сотрудничества (кооперации);

6) диаграммы схем состояний;

7) диаграммы деятельности;

8) компонентные диаграммы;

9) диаграммы размещения (развертывания).

Диаграмма классов показывает набор классов, интерфейсов, сотрудничеств и их отношений. При моделировании объектно-ориентированных систем диаграммы классов используются наиболее часто. Диаграммы классов обеспечивают стати­ческое проектное представление системы. Диаграммы классов, включающие ак­тивные классы, обеспечивают статическое представление процессов системы.

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

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

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

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

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

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

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

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

Диаграммы USE CASE






ТОП 5 статей:
Экономическая сущность инвестиций - Экономическая сущность инвестиций – долгосрочные вложения экономических ресурсов сроком более 1 года для получения прибыли путем...
Тема: Федеральный закон от 26.07.2006 N 135-ФЗ - На основании изучения ФЗ № 135, дайте максимально короткое определение следующих понятий с указанием статей и пунктов закона...
Сущность, функции и виды управления в телекоммуникациях - Цели достигаются с помощью различных принципов, функций и методов социально-экономического менеджмента...
Схема построения базисных индексов - Индекс (лат. INDEX – указатель, показатель) - относительная величина, показывающая, во сколько раз уровень изучаемого явления...
Тема 11. Международное космическое право - Правовой режим космического пространства и небесных тел. Принципы деятельности государств по исследованию...



©2015- 2024 pdnr.ru Все права принадлежат авторам размещенных материалов.