Унифицированный язык моделирования (UnifiedModelingLanguage - UML) это язык для специфицирования, визуализации, конструирования и документирования программных систем, а также бизнес моделей и прочих не программных систем. UML представляет собой объединение инженерных приемов, которые ранее успешно использовались при моделировании больших и сложных систем.
Отношением (Relationship) называется связь между сущностями. В объектно- ориентированном моделировании особое значение имеют четыре типа отношений: зависимости, обобщения, ассоциации и реализации. Отношения изображаются в виде линий различного начертания.
• зависимость (Dependency) — это семантическое отношение между двумя сущностями, при котором изменение одной из них может отразиться на семантике другой (зависимой).
• ассоциация (Association) — структурное отношение, описывающее множество связей между объектами классификаторов, где связь (Link) — это соединение между объектами, которое описывает связи между их экземплярами.
• обобщение (Generalization) — это отношение специализации/обобщения, при котором объекты специализированного элемента (потомка — Child) можно подставить вместо объектов обобщенного элемента (родителя, предка — Parent).
• реализация (Realization) — отношение между спецификацией и ее программной реализацией; указание на то, что поведение наследуется без структуры.
Стандарт UML версии содержит следующий набор диаграмм:
• Структурные (structural) модели:
o диаграммы классов (classdiagrams) - для моделирования статической структуры классов системы и связей между ними;
o диаграммы компонентов (componentdiagrams) - для моделирования иерархии компонентов (подсистем) системы;
o диаграммы размещения (deploymentdiagrams) - для моделирования физической архитектуры системы.
• Модели поведения (behavioral):
o диаграммы вариантов использования (usecasediagrams) - для моделирования функциональных требований к системе (в виде сценариев взаимодействия пользователей с системой);
o диаграммы взаимодействия (interactiondiagrams):
диаграммы последовательности (sequencediagrams) и кооперативные диаграммы (collaborationdiagrams) - для моделирования процесса обмена сообщениями между объектами;
o диаграммы состояний (statechartdiagrams) - для моделирования поведения объектов системы при переходе из одного состояния в другое;
o диаграммы деятельности (activitydiagrams) - для моделирования поведения системы в рамках различных вариантов использования, или потоков управления.