лекция. Сборник лекций по МДК _Технология разработки программного обеспе. Курс лекций для специальности спо базовой подготовки
Скачать 4.41 Mb.
|
Базис языка визуального моделирования 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 образуют три разновидности строительных блоков: предметы; отношения; диаграммы. Предметы — это основные элементы в модели (абстракции). Отношения связывают предметы. Диаграммы группируют коллекции предметов. В UML имеются 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. Зависимость — семантическое отношение между двумя предметами, в котором изменение в одном предмете (независимом предмете) может влиять на семантику другого предмета (зависимого предмета).
Рис. 25. 2. Ассоциация — структурное отношение, которое описывает набор связей, являющихся соединением между объектами. 3. Агрегация — это специальная разновидность ассоциации, представляющая структурное отношение между целым и его частями.
Рис. 26. 4. Реализация — семантическое отношение между классификаторами, где один классификатор определяет контракт, который другой классификатор обязуется выполнять. К классификаторам относят классы, интерфейсы, компоненты, элементы Use Case, кооперации. Отношения реализации применяют в двух случаях: между интерфейсами и классами (или компонентами), реализующими их; между элементами Use Case и кооперациями, которые реализуют их.
Рис. 27. Диаграммы в UML Диаграмма — графическое представление множества элементов для визуализации системы с разных точек зрения. Изображается как связный граф из вершин (предметов) и дуг (отношений). Теоретически диаграмма может содержать любую комбинацию предметов и отношений, на практике ограничиваются малым количеством комбинаций, соответствующим пяти представлениям архитектуры ПС. UML включает девять видов диаграмм: диаграммы классов; диаграммы объектов; диаграммы Use Case (диаграммы прецедентов); диаграммы последовательности; диаграммы сотрудничества (кооперации); диаграммы схем состояний; диаграммы деятельности; компонентные диаграммы; диаграммы размещения (развертывания). Диаграмма классов показывает набор классов, интерфейсов, сотрудничеств и их отношений. Они используются наиболее часто и обеспечивают статическое проектное представление системы. Диаграммы классов, включающие активные классы, обеспечивают статическое представление процессов системы. Диаграмма объектов показывает набор объектов и их отношения. Диаграмма объектов представляет статический "моментальный снимок" с экземпляров предметов, которые находятся в диаграммах классов. Обеспечивают статическое проектное представление или статическое представление процессов системы (но с точки зрения реальных или фототипичных случаев). Диаграмма Use Case (диаграмма прецедентов) показывает набор элементов Use Case, актеров и их отношений. Используются для статического представление Use Case, важны при организации и моделировании поведения системы, задании требований заказчика к системе. Диаграмма взаимодействия показывает взаимодействие, включающее набор объектов и их отношений, а также пересылаемые между объектами сообщения, обеспечивает динамическое представление системы. Диаграмма последовательности — это диаграмма взаимодействия, которая выделяет упорядочение сообщений по времени. Диаграммы последовательности и диаграммы сотрудничества — это разновидности диаграмм взаимодействия. Диаграмма сотрудничества (диаграмма кооперации) — это диаграмма взаимодействия, которая выделяет структурную организацию объектов, посылающих и принимающих сообщения. Диаграммы последовательности и диаграммы сотрудничества изоморфны, это означает, что одну диаграмму можно трансформировать в другую диаграмму. Диаграмма схем состояний показывает конечный автомат, представляет состояния, переходы, события и действия. Обеспечивает динамическое представление системы; важна при моделировании поведения интерфейса, класса или кооперации; выделяет такое поведение объекта, которое управляется событиями (при моделировании реактивных систем). Диаграмма деятельности — специальная разновидность диаграммы схем состояний, которая показывает поток от действия к действию внутри системы. Обеспечивает динамическое представление системы; важна при моделировании функциональности системы; выделяет поток управления между объектами. Компонентная диаграмма показывает организацию набора компонентов и зависимости между компонентами. Обеспечивает статическое представление реализации системы; связана с диаграммами классов в том смысле, что в компоненте обычно отображается один или несколько классов, интерфейсов или коопераций. Диаграмма размещения (диаграмма развертывания) показывает конфигурацию обрабатывающих узлов периода выполнения, а также компоненты, живущие в них. Обеспечивает статическое представление размещения системы; связана с компонентными диаграммами в том смысле, что узел обычно включает один или несколько компонентов. |