Что такое UML?

 

UML (Unified Modeling Language) — унифицированный язык моделирования. UML можно охарактеризовать как формальный искусственный язык. Признаком искусственности служит наличие трех общепризнанных авторов(Грэди Буч, Джеймс Рамбо, Айвар Якобсон). Описание UML по большей части формальное, но содержит и явно неформальные составляющие. Такие особенности UML как точки вариации семантики и стандартные механизмы расширения, заметно отличают UML от языков, которые, по общему мнению, являются образцами формализма.

Модель UML — это,  прежде всего, описание объекта или явления.

Описывая историю создания UML, его авторов характеризуют эпоху до UML как период «войны методов» UML как раз и стал таким единым универсальным стандартом для объектно- ориентированного моделирования, которое во времена его создания получило массовое распространение. Объединились усилия авторов трех наиболее популярных методов моделирования именно с целью унификации своих (и не только своих) разработок. В результате унификации получилась теоретически изящная и практически полезная вещь — UML.

UML отнюдь не завершена ‒ язык постоянно совершенствуется, обогащается и расширяется.

Назначение UML

UML ‒ это графический язык моделирования общего назначения, предназначенный для спецификации, визуализации, проектирования и документирования всех артефактов, создаваемых при разработке программных систем.

1. Спецификация ‒ это декларативное описание того, как нечто устроено или работает.Необходимо принимать во внимание три толкования спецификаций. Но эти три трактовки спецификаций могут не совпадать

  • То, которое имеет в виду действующее лицо, являющееся источником спецификации (например, заказчик).
  • То, которое имеет в виду действующее лицо, являющееся потребителем спецификации (например, разработчик).
  • То, которое объективно обусловлено природой специфицируемого объекта.

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

2. Визуализация. Модели UML допускают представление в форме картинок, причем эти картинки наглядны, интуитивно понятны, практически однозначно интерпретируются и легко составляются. Таким образом, второе по важности назначение UML состоит в том, чтобы служить адекватным средством коммуникации между людьми.

3. Проектирование. 

  • Автоматический синтез программ
    • Алгоритмически неразрешимая массовая проблема
    • Известны разрешимые подклассы
  •  Автоматическая (частичная) генерация программного кода по модели
    • Генеративное и дегенеративное программирование
  • Автоматическое построение моделей по коду готового приложения
    • Инженерный анализ программ (Reverse engineering)

4. Документирование.

  •  Все элементы модели могут содержать текстовое описание
  • Почти все инструменты могут собирать из них осмысленные документы
  •  Почти никто из разработчиков этим не пользуется

Чем НЕ является UML?

  1. Языком программирования
    • Генерация кода возможна
  2.  Спецификацией инструмент
    • Инструменты подразумеваются и имеются
  3. Моделью процесса разработки приложений
    • Модель необходима и имеется — Rational Unified Process (RUP)

Способы использования UML

  • Рисование картинок
  • Обмен информацией
  • Спецификация систем
  • Повторное использование архитектурных решений
  • Генерация кода
  • Имитационное моделирование
  • Верификация моделей
Определение UML

От определения искусственного языка требуется, чтобы оно было:

  • точным
  • понятным
  • кратким
  • полным

Наиболее удачными оказываются компромиссные решения. Авторы UML пошли именно по этому пути.
В основу описания UML положен метод раскрутки, то есть использование определяемого языка для определения этого языка. А именно, основные конструкции UML формально определены с помощью UML.
Семантика: диаграммы классов/пакетов + ограничения (OCL = Object Constraints Language) + текст (plain english).
Нотация: отображение семантики в картинке.

В описании UML используются три языковых уровня.

  • Мета-метамодель — описание используемого формализма
    • Контекстно-свободная грамматика
  • Метамодель — описание языка
    • Infrastructure + Superstructure
  • Модель — использование языка
    • Примеры

Структура стандарта UML 2.1.2

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

Терминология

UML —  независимый от конкретных языков программирования

  • новые термины для исключения совпадений

UML — унифицированный

  • разные терминологические традиции

По-русски устоявшейся терминологии нет

  • основной критерий: как можно точнее передать смысл

Терминология UML довольно замысловатая и не всегда последовательная

Нотация

При разработке UML были предложены и приняты разумные рекомендации по выбору нотации. Авторы исходили из того, что UML будет использоваться по-разному: начиная от не очень аккуратного рисования от руки на листке бумаги, печати черно-белых изображений в книгах и заканчивая созданием сложных диаграмм с помощью компьютера. Поэтому в качестве основных графических элементов были выбраны такие, которые было бы легко использовать во всех случаях.

Фигуры в UML используются двумерные (т.е. их можно нарисовать на плоскости) и замкнутые (т.е. есть внутренняя и внешняя части). Фигуры могут менять свои размеры и форму, сохраняя при этом свои интуитивные отличительные признаки. Например, среди фигур UML есть прямоугольники и эллипсы. Они могут быть изображены многими способами: разного размера, с разным соотношением длин сторон (или, соответственно, полуосей), по-разному ориентированы относительно границ страницы и т.д., но во всех случаях прямоугольник отличен от эллипса и не может быть с ним спутан. Внутри фигур могут помещаться другие элементы нотации: тексты, линии, значки и даже другие фигуры. Единственное требование: должно быть однозначно понятно, что элемент нотации находится внутри фигуры, в частности, его изображение не должно пересекать границу фигуры.

Линии в UML, естественно, одномерные. Линии всегда присоединяются своими концами к фигурам или значкам, они не могут быть нарисованы сами по себе. Форма линий произвольна: это могут быть прямые, ломаные, плавные кривые ‒ значения это не имеет. Толщина линий также произвольна. А вот стиль линии имеет значение. В UML используется два стиля линий: сплошные и пунктирные линии. К линиям могут быть пририсованы различные дополнительные элементы: стрелки на концах, тексты и т.д. Единственное требование: должно быть ясно, что дополнительный элемент относится именно к данной линии. Линии могут пересекаться, и это ничего не значит, но рекомендуется избегать таких случаев, поскольку это затрудняет восприятие.

Значки в UML похожи на фигуры тем, что они двумерные, а отличаются тем, что не имеют внутренности, в которую можно что-то поместить, и, как правило, не меняют свою форму и размеры. Впрочем, значки в UML используются очень умеренно, а потому сохраняют свою основную функцию однозначно воспринимаемого иероглифа.

Тексты в UML ‒ это последовательности различимых символов некоторого алфавита. Алфавит не фиксирован ‒ он только должен быть понятен читателю модели. Гарнитура, размер и цвет шрифта не имеют значения, а вот начертание шрифта имеет: в UML различаются прямые, курсивные и подчеркнутые тексты. Предполагается, что читатель сумеет их различить.

В общем, нотация UML довольно свободная: рисовать можно как угодно, лишь бы не возникало недоразумений.

Модель и её элементы

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

Модель UML — это нагруженный мульти-псевдо-гипер-орграф.
Вершины и ребра нагружены информацией и могут иметь сложную внутреннюю структуру. Вершины — сущности, ребра — отношения.

Сущности

 

Нотация сущностей

В UML используются четыре основных типа отношений:

  • зависимость;
  • ассоциация;
  • обобщение;
  • реализация.

1. Зависимость ‒ это наиболее общий тип отношения между двумя сущностями. Отношение зависимости указывает на то, что изменение независимой сущности каким-то образом влияет на зависимую сущность. Графически отношение зависимости изображается в виде пунктирной линии со стрелкой 1, направленной от зависимой сущности 2 к независимой 3.

 

2. Ассоциация ‒ это наиболее часто используемый тип отношения между сущностями. Отношение ассоциации имеет место, если одна сущность непосредственно связана с другой (или с другими ‒ ассоциация может быть не только бинарной). Графически ассоциация изображается в виде сплошной линии 1 с различными дополнениями, соединяющей связанные сущности.

 

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

 

4. Отношение реализациии используется несколько реже, чем предыдущие три типа отношений, поскольку часто подразумеваются по умолчанию. Отношение реализации указывает, что одна сущность является реализацией другой. Графически реализация изображается в виде пунктирной линии с треугольной незакрашенной стрелкой на конце 1, направленной от реализующей сущности 2 к реализуемой 3.


Юткина Дарья

Меня зовут Даша. Мне 18 лет. Я студентка первого курса ЮУрГУ. Учусь по специальности "Бизнес-информатика". Не особо в этом не разбираюсь, но думаю, что всё впереди.

2 комментария

Свежинцев Владислав · 10.05.2021 в 23:07

Информативная и крутая статья!

Свежинцев Владислав · 10.05.2021 в 23:07

Продолжай в том же духе!

Добавить комментарий

Avatar placeholder

Ваш адрес email не будет опубликован. Обязательные поля помечены *