Базис языка визуального моделирования 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!