UML-диаграмма

Унифицированный язык моделирования (UML) - это язык моделирования общего назначения, язык разработки, язык моделирования в области программной инженерии, который предназначен для обеспечения стандартного способа визуализации проектирования системы. [1]

Изначально UML был вызван желанием стандартизировать разрозненные системы обозначений и подходы к проектированию программного обеспечения, разработанные Грейди Бучем, Иваром Якобсоном и Джеймсом Румбо в компании[1] Rational Software в 1994-95 годах, а дальнейшее развитие велось под их руководством до 1996 года.

В 1997 году UML был принят в качестве стандарта Группой управления объектами (Object Management Group, OMG) и с тех пор находится под управлением этой организации. В 2005 году Унифицированный язык моделирования был также опубликован Международной организацией по стандартизации (ISO) в качестве утвержденного стандарта ISO.[2] С тех пор он периодически пересматривается, чтобы охватить последнюю редакцию UML. [3]

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

Содержание

 [скрыть]. 

  • 1 История
    • 1.1 До UML 1.x
    • 1.2 UML 1.x
    • 1.3 UML 2.x
  • 2 Дизайн
    • 2.1 Методы разработки программного обеспечения
    • 2.2 Моделирование
  • 3 Диаграммы
    • 3.1 Структурные диаграммы
    • 3.2 Диаграммы поведения
      • 3.2.1 Диаграммы взаимодействия
  • 4 Мета-моделирование
  • 5 Принятие
  • 6 Критика
    • 6.1 Критика UML 1.x

История[править источник | править]

История объектно-ориентированных методов и нотации

UML развивается со второй половины 1990-х годов и уходит своими корнями в объектно-ориентированные методы, разработанные в конце 1980-х и начале 1990-х годов. На временной шкале (см. рисунок) показаны основные моменты истории методов объектно-ориентированного моделирования и нотации.

Изначально он основан на нотациях метода Буха, техники объектного моделирования (OMT) и объектно-ориентированной программной инженерии (OOSE), которые он объединил в единый язык. [5]

До UML 1.x[править источник | править]

Rational Software Corporation наняла Джеймса Румбо из General Electric в 1994 году, после чего компания стала источником двух самых популярных на сегодняшний день подходов объектно-ориентированного моделирования:[6] Техника объектного моделирования Румбо (OMT) и метод Грейди Буча. Вскоре им помог Ивар Якобсон, создатель метода объектно-ориентированной программной инженерии (OOSE), который присоединился к ним в Rational в 1995 году. [1]

Под техническим руководством этих троих (Румбо, Джейкобсон и Бух) в 1996 году был организован консорциум под названием UML Partnerswas для завершения разработки спецификации унифицированного языка моделирования (UML) и предложения ее группе Object Management Group (OMG) для стандартизации. В партнерство также вошли дополнительные заинтересованные стороны (например, HP, DEC, IBM и Microsoft). Проект UML 1.0, разработанный консорциумом UML Partners, был предложен OMG в январе 1997 года. В том же месяце UML Partners сформировали группу, призванную определить точное значение языковых конструкций, под председательством Криса Кобрина и под управлением Эда Эйкхольта, для доработки спецификации и интеграции ее с другими усилиями по стандартизации. Результат этой работы, UML 1.1, был представлен в OMG в августе 1997 года и принят OMG в ноябре 1997 года. [1][7]

UML 1.x[edit source | edit]

После первого выпуска была сформирована[1] рабочая группа по улучшению языка, которая выпустила несколько небольших редакций, 1.3, 1.4 и 1.5. [8]

Созданные им стандарты (как и первоначальный стандарт) были отмечены как неоднозначные и непоследовательные. [9][10]

UML 2.x[edit source | edit]

Основная редакция UML 2.0 заменила версию 1.5 в 2005 году, которая была разработана при участии расширенного консорциума для дальнейшего совершенствования языка с учетом нового опыта использования его[11] возможностей.

Хотя UML 2.1 так и не был выпущен в качестве официальной спецификации, версии 2.1.1 и 2.1.2 появились в 2007 году, а затем UML 2.2 в феврале 2009 года. UML 2.3 был официально выпущен в мае 2010 года.[12] UML 2.4.1 был официально выпущен в августе 2011 года.[12] UML 2.5 был выпущен в октябре 2012 года как версия "В процессе" и официально вышел в июне 2015 года. [12]

В спецификации UML 2.x есть четыре части:

  1. Надстройка, определяющая нотацию и семантику для диаграмм и их элементов модели
  2. Инфраструктура, определяющая основную метамодель, на которой базируется Надстройка
  3. Язык объектных ограничений (Object Constraint Language, OCL) для определения правил для элементов модели
  4. UML Diagram Interchange, который определяет, как происходит обмен макетами диаграмм UML 2

Текущие версии этих стандартов следующие: UML Superstructure версии 2.4.1, UML Infrastructure версии 2.4.1, OCL версии 2.3.1 и UML Diagram Interchange версии 1.0.[13] Язык продолжает обновляться и совершенствоваться рабочей группой по пересмотру, которая решает любые проблемы с языком. [14]

Дизайн[править источник | править]

Унифицированный язык моделирования (UML) предлагает способ визуализации архитектурных чертежей системы в виде диаграммы (см. рисунок), включая такие элементы, как: [5]

  • Любая деятельность (работа)
  • Отдельные компоненты системы
    • И как они могут взаимодействовать с другими компонентами программного обеспечения.
  • Как будет работать система
  • Как сущности взаимодействуют с другими (компоненты и интерфейсы)
  • Внешний пользовательский интерфейс

Хотя первоначально унифицированный язык моделирования (UML) предназначался исключительно для объектно-ориентированной проектной документации, он был расширен, чтобы охватить более широкий набор проектной документации (как перечислено выше), [15]и оказался полезным во многих контекстах. [16]

Методы разработки программного обеспечения[править источник | edit]

UML сам по себе не является методом разработки; [17]однако он был разработан так, чтобы быть совместимым с ведущими объектно-ориентированными методами разработки программного обеспечения своего времени (например, сOMT, Booch method, Objectory) и особенно с RUP, который изначально предполагалось использовать, когда работа над ним началась в Rational Software Inc.

Моделирование[править источник | править]

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

Диаграммы UML представляют два различных взгляда на модель[18] системы:

  • Статический (или структурный) вид: подчеркивает статическую структуру системы с использованием объектов, атрибутов, операций и отношений. Структурное представление включает диаграммы классов и диаграммы составных структур.
  • Динамическое (или поведенческое) представление: подчеркивает динамическое поведение системы, показывая взаимодействие между объектами и изменения внутренних состояний объектов. Это представление включает диаграммы последовательностей, диаграммы деятельности и диаграммы машин состояний.

Обмен моделями UML между инструментами UML может осуществляться с помощью формата обмена метаданными XML Metadata Interchange (XMI).

Диаграммы[править источник | править]

UML-диаграммы

Структурные диаграммы UML

  • Диаграмма классов
  • Диаграмма компонентов
  • Диаграмма композитной структуры
  • Диаграмма развертывания
  • Диаграмма объектов
  • Схема пакета
  • Диаграмма профиля

Поведенческие диаграммы UML

  • Диаграмма деятельности
  • Диаграмма связи
  • Обзорная диаграмма взаимодействия
  • Диаграмма последовательности
  • Диаграмма состояний
  • Временная диаграмма
  • Диаграмма вариантов использования

В UML 2 имеется множество типов диаграмм, которые делятся на две категории.[5] Некоторые типы представляют структурную информацию, а остальные - общие типы поведения, включая несколько, которые представляют различные аспекты взаимодействия. Эти диаграммы можно разделить на иерархические категории, как показано на следующей диаграмме[5] классов:

Все эти диаграммы могут содержать комментарии или примечания, объясняющие использование, ограничения или намерения.

Структурные диаграммы[править источник | edit]

Структурные диаграммы подчеркивают то, что должно присутствовать в моделируемой системе. Поскольку структурные диаграммы представляют структуру, они широко используются при документировании архитектуры программных систем. Например, диаграмма компонентов, которая описывает, как программная система разбивается на компоненты, и показывает зависимости между этими компонентами.

  • Диаграмма компонентов
  • Диаграмма классов

Поведенческие диаграммы[править источник | править]

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

  • Диаграмма деятельности
  • Диаграмма вариантов использования

Диаграммы взаимодействия[править источник | править]

Диаграммы взаимодействия, подмножество диаграмм поведения, подчеркивают поток управления и данных между объектами моделируемой системы. Например, диаграмма последовательности показывает, как объекты взаимодействуют друг с другом в виде последовательности сообщений.

  • Диаграмма последовательности
  • Диаграмма связи

Мета-моделирование[править источник | править]

Основная статья: Мета-объектная среда

Иллюстрация механизма мета-объектов

Object Management Group (OMG) разработала архитектуру метамоделирования для определения унифицированного языка моделирования (UML), которая называется Meta-Object Facility (MOF).[19] Meta-Object Facility разработана как четырехслойная архитектура, как показано на рисунке справа. Она предоставляет мета-модель на верхнем уровне, называемом уровнем M3. Эта M3-модель является языком, используемым Meta-Object Facility для построения метамоделей, называемых M2-моделями.

Наиболее ярким примером модели метаобъектного объекта второго уровня является метамодель UML, модель, описывающая сам UML. Эти M2-модели описывают элементы M1-уровня, а значит, и M1-модели. Это могут быть, например, модели, написанные на языке UML. Последний слой - это M0-слой или слой данных. Он используется для описания экземпляров системы во время выполнения. [20]

Мета-модель может быть расширена с помощью механизма, который называется стереотипизацией. Брайан Хендерсон-Селлерс и Сезар Гонсалес-Перес в работе "Использование и злоупотребление механизмом стереотипов в UML 1.x и 2.0" критикуют его как недостаточный/недостаточный. [21]

Усыновление[править источник | править]

UML был признан полезным во многих контекстах проектирования,[16] настолько, что стал практически вездесущим в ИТ[22]-сообществе.

Иногда к нему относятся как к серебряной пуле в проектировании, что приводит к проблемам в его использовании. Неправильное использование включает в себя чрезмерное его использование (проектирование каждой маленькой части кода системы с его помощью, что является излишним) и предположение, что любой может спроектировать что угодно с его помощью (даже те, кто не программировал). [23]

Считается, что это большой язык, в котором много конструкций. Некоторые (включая Якобсона) считают, что их слишком много и что это мешает его изучению (и, следовательно, использованию). [24]

Критика[править источник | править]

Раздел "Критика или полемика" этой статьи может нарушить нейтральную точку зрения статьи на предмет. Пожалуйста, интегрируйте содержание раздела в статью в целом или перепишите материал. (декабрь 2010)

Распространенная критика UML со стороны промышленности включает: [4]

  • не полезен: "[не] предлагает им преимуществ по сравнению с их нынешними, развитыми практиками и представлениями".
  • слишком сложный, особенно для общения с клиентами: "неоправданно сложный" и "Лучшая причина не использовать UML - это то, что он не "читабелен" для всех заинтересованных сторон. Сколько стоит UML, если бизнес-пользователь (клиент) не может понять результат ваших усилий по моделированию?".
  • необходимость синхронизации UML и кода, как и документации в целом

Критика UML 1.x[edit source | edit]

Условные обозначения кардинальности

Как и в диаграммах баз данных Chen, Bachman и ISO ER, модели классов определены для использования кардинальности "look-across", хотя некоторые авторы (Merise, [25]Elmasri & Navathe[26] и др[27].) предпочитают "look-ide" или "look-here" для ролей и как минимальную, так и максимальную кардинальность. Недавние исследователи (Feinerer, [28]Dullea и др.[29]) показали, что техника "look-across", используемая в диаграммах UML и ER, менее эффективна и менее последовательна, когда применяется к n-арным отношениям порядка >2.

Файнерер говорит: "Проблемы возникают, если мы оперируем семантикой look-across, используемой для ассоциаций UML. Хартманн[30] исследует эту ситуацию и показывает, как и почему различные преобразования не работают". (Хотя упомянутое "сокращение" является надуманным, поскольку две диаграммы 3.4 и 3.5 на самом деле одинаковы), а также "Как мы увидим на следующих нескольких страницах, интерпретация look-across создает несколько трудностей, которые препятствуют распространению простых механизмов с бинарных на n-арные ассоциации".

Вопросы и ответы

В: Что такое унифицированный язык моделирования (UML)?


О: Унифицированный язык моделирования (UML) - это язык моделирования, используемый в программной инженерии для обеспечения стандартного способа представления того, как выглядит проект системы.

В: Какова была первоначальная цель создания UML?


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

В: Кто разработал UML?


О: UML был разработан Грейди Бучем, Иваром Якобсоном и Джеймсом Румбо в компании Rational Software в 1994-1995 годах, а дальнейшая разработка велась под их руководством до 1996 года.

В: Когда UML был принят в качестве стандарта?


О: UML был принят в качестве стандарта группой Object Management Group (OMG) в 1997 году.

В: Кто управляет UML?


О: С момента принятия UML в качестве стандарта в 1997 г. им управляет Object Management Group.

В: Был ли UML признан международным стандартом?


О: Да, UML был признан в качестве международного стандарта Международной организацией по стандартизации (ISO) в 2005 году.

В: Каково назначение UML в программной инженерии?


О: Цель UML в программной инженерии - предоставить стандартный способ показать, как выглядит проект системы, чтобы его можно было легко понять и передать разработчикам и заинтересованным сторонам.

AlegsaOnline.com - 2020 / 2023 - License CC3