Базис языка визуального моделирования UML



Языки визуального моделирования служат для создания моделей анализа и проектирования объектно - ориентированных программных систем.

Время появления с 1989 по 1997 год.

Различают три поколения языков визуального моделирования:

· 1 поколение — 10 языков;

· 2-е — более 50 языков: язык Буча (G. Booch), язык Рамбо (J. Rumbaugh), язык Джекобсона (I. Jacobson), язык Коада—Йордона (Coad—Yourdon), язык Шлеера—Меллора (ShIaer-Mellor) и т. д.

· 3-е поколение — унифицированных языков.

Стандартный язык третьего поколения - Unified Modeling Language (UML) создан в 1994-1997-х годах.

Основные разработчики — Г.Буч, Дж. Рамбо, И. Джекобсон). В настоящее время — версия UML 2.0

Рис. 12. Языки визуального моделирования по датам.

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

UML — не визуальный язык программирования, но его модели транслируются в текст на языках программирования (Java, C++, Visual Basic, Ada 95, Object Pascal) и в таблицы для реляционной БД.

Словарь UML образуют три разновидности строительных блоков:

1. предметы;

2. отношения;

3. диаграммы.

Предметы — это основные элементы в модели (абстракции).

Отношения связывают предметы.

Диаграммы группируют коллекции предметов.

В UML имеются 4 разновидности предметов:

1. структурные предметы;

2. предметы поведения;

3. группирующие предметы;

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

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

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

 

Восемь разновидностей структурных предметов.

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

Рис. 13. Класс - человек

Класс реализует один или несколько интерфейсов.

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

Рис. 14. Интерфейс

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

Рис. 15.

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

Рис. 16. Актёр

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

Рис. 17. Элемент Use Case

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

Рис. 18. Активный класс

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

В систему включаются компоненты:

· результаты процесса разработки (файлы исходного кода);

· разновидности компонентов (СОМ+-компоненты, Java Beans).

Компонент — это физическая упаковка различных логических элементов (классов, интерфейсов и коопераций).

Рис. 19. Компонент

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

Рис. 20. Узел

Предметы поведения — динамические части UML-моделей — глаголы моделей, представление поведения во времени и пространстве.

 

Разновидности предметов поведения:

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

Элементы взаимодействия: сообщения, последовательность действий (поведение, вызываемое сообщением) и связи (соединения между объектами).

Рис. 21.

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

С помощью конечного автомата может определяться поведение индивидуального класса или кооперации классов.

Элементы конечного автомата: состояния, переходы (от состояния к состоянию), события (предметы, вызывающие переходы) и действия (реакции на переход);

Рис. 22.

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

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

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

Рис. 23.

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

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

Рис. 24.

 

Отношения в UML

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

1. зависимость;

2. ассоциация;

3. обобщение;

4. реализация.

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

1. Зависимость — семантическое отношение между двумя предметами, в котором изменение в одном предмете (независимом предмете) может влиять на семантику другого предмета (зависимого предмета).

Рис. 25.

2. Ассоциация — структурное отношение, которое описывает набор связей, являющихся соединением между объектами.

3. Агрегация — это специальная разновидность ассоциации, представляющая структурное отношение между целым и его частями.

Рис. 26.

4. Реализация — семантическое отношение между классификаторами, где один классификатор определяет контракт, который другой классификатор обязуется выполнять.

К классификаторам относят классы, интерфейсы, компоненты, элементы Use Case, кооперации.

Отношения реализации применяют в двух случаях:

· между интерфейсами и классами (или компонентами), реализующими их;

· между элементами Use Case и кооперациями, которые реализуют их.

Рис. 27.

 

Диаграммы в UML

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

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

UML включает девять видов диаграмм:

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

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

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

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

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

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

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

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

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

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

Диаграммы классов, включающие активные классы, обеспечивают статическое представление процессов системы.

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

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

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

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

Диаграммы последовательности и диаграммы сотрудничества — это разновидности диаграмм взаимодействия.

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

Диаграммы последовательности и диаграммы сотрудничества изоморфны, это означает, что одну диаграмму можно трансформировать в другую диаграмму.

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

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

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

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


Дата добавления: 2021-03-18; просмотров: 192; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!