2. UML – унифицированный язык моделирования систем 2.1. Назначение UML • UML (Unified Modeling Language) – это унифицированный язык для графического моделирования программных систем. • Язык UML стандартизирован и фактически является стандартом для документирования программных систем. • Используя язык UML, программная система моделируется как набор объектов, которые взаимодействуют между собой. • При этом модель программной системы описывает статическую структуру этой системы и её динамическое поведение. 2.2. Виды модели • Рассматриваемая с определенной точки зрения модель называется видом или представлением (view). Представления в UML • Business process view – предназначен для моделирования структуры организации и бизнес процессов, требующих автоматизации; • Use case view (представление вариантов использования или прецедентов) – предназначен для моделирования функциональных требований к системе; • Logical view (логические представление) – предназначен для моделирования логической структуры и поведения системы; • Component view (представление компонент) – предназначен для моделирования архитектуры системы; • Deployment view (представление размещения или развертывания) – предназначен для моделирования развертывания системы на аппаратуре. 2.3. Диаграммы в UML • Графическое представление вида называется диаграммой. • Диаграмма представляет собой граф, содержащий вершины, соединенные ребрами. • Ребра обозначают различные семантические (смысловые) отношения между вершинами. • Смысл диаграммы заключается в топологии графа. • Вершины и отношения между ними имеют различные предопределенные типы. • Каждому этому типу соответствует определенное графическое обозначение. 2.4. Отношения между вершинами диаграмм • Типы отношений между вершинами диаграммы довольно устойчивы, но их смысл зависит от типа вершин, которые они связывают. Отношение ассоциации • Самым общим отношением между вершинами диаграммы является отношение ассоциации (association), которое показывает наличие некоторой семантической (смысловой) связи между элементами модели. Графическое обозначение отношения ассоциации • Графически ассоциация изображается сплошной линией. obj ect Unspecified association A А и В связаны B • В этом случае считается, что направление ассоциации не определено или другими словами, что отношение ассоциации не упорядочено. Симметричная ассоциация • Если элементы модели связаны друг с другом, то ассоциация называется симметричной или двунаправленной (bidirectional). • Графическое обозначение симметричной ассоциации: obj ect Symmetric association А и В связаны A • B Ассиметричная ассоциация • Если только один элемент модели связан с другим элементом модели, который в свою очередь ничего не знает о первом элементе, то ассоциация называется ассиметричной или направленной (directional). • Графическое обозначение ассиметричной ассоциации: obj ect Asymmetric association A • А связано с В B Отношение зависимости • Следующим общим отношением между элементами диаграммы является отношение зависимости (dependency), которое показывает, что между элементами модели, которые оно связывает, существует некоторая зависимость. • Т.е. изменение одного элемента модели воздействует (вызывает изменение) на связанный с ним элемент модели. Графическое обозначение отношения зависимости • Графически отношение зависимости обозначается пунктирной линией. obj ect Unspecified dependency A B • В этом случае считается, что направление зависимости не определено или другими словами, что отношение зависимости не упорядочено. Симметричная зависимость • Если элементы модели зависят друг от друга, то зависимость называется симметричной или двунаправленной (bidirectional). • Графическое обозначение симметричной зависимости: obj ect Symmetric dependency A А и В зависимы B Асимметричная зависимость • Если только элемент модели зависит от другого элемента модели, который в свою очередь ничего не знает об этой зависимости, то зависимость называется ассиметричной или направленной (directional). Графическое обозначение асимметричной зависимости • Графическое зависимости. обозначение ассиметричной obj ect Assymetric dependency A B зависит от A B • В этом случае элемент B называется клиентом (client), а элемент A называется поставщиком (supplier). 2.5. Стереотипы • Для расширения типизации элементов диаграммы используются стереотипы. • Стереотип (stereotype) поясняет или уточняет назначение графического элемента UML. • Обозначается стереотип как текст, заключенный в “…” или «…». • Стереотипы предназначены для определения специфических терминов, используемых в прикладной области. Поэтому стереотипы служат для расширения понятий, используемых в UML. • Некоторые стереотипы предопределены в UML. Пример стереотипа отношения зависимости • Для примера приведем обозначение стереотипа отношения зависимости между объектами. obj ect Stereotype «uses» A B • Этот стереотип показывает, что объект A «использует» объект B. 2.6. Пакеты • Пакет (package) это механизм для группировки элементов модели в группы. • Пакеты могут быть вложены друг в друга. • Между пакетами можно устанавливать такие же отношения, как и между элементами модели. • Пакет вводит пространство имен для принадлежащих ему элементов. Графическое обозначение пакета class Package Package 2.7. Виды диаграмм • Все диаграммы, используемые в UML, могут быть разбиты на две группы: – диаграммы для моделирования структуры программной системы; – диаграммы для моделирования поведения программной системы. Диаграммы для моделирования структуры • Cass diagrams - диаграммы классов. • Component diagrams - диаграммы компонентов. • Deployment diagrams - диаграммы размещения. Диаграммы для моделирования поведения • Use case diagrams - диаграммы вариантов использования. • Activity diagrams – диаграммы активности, диаграммы последовательности потока работ или действий. • Statechart diagrams - диаграмма состояний; • Interaction diagrams - диаграммы взаимодействия: – sequence diagrams - диаграммы последовательности действий объектов; – collaboration diagrams - диаграммы взаимодействия объектов системы. 2.8. Структура модели • Business process model: – analysis diagrams; • System model: – Use case view: • use case diagrams; – Logical view: • class diagrams; – Component view: • components diagrams. – Deployment view: • deployment diagrams. Моделирование поведения, вариантов использования и актеров • В «Use case view» для описания поведения вариантов использования и актеров используются следующие диаграммы: – activity diagrams; – sequence diagrams; – statechart diagrams. Моделирование поведения объектов • В «Logical view» для поведения объектов использоваться диаграммы: описания могут – sequence diagrams; – collaboration diagrams; – statechart diagrams; • Для описания поведения методов могут использоваться диаграммы активности (activity diagrams).