stringtranslate.com

Унифицированный язык моделирования

Логотип УМЛ

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

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

Создание UML изначально было мотивировано желанием стандартизировать разрозненные системы обозначений и подходы к проектированию программного обеспечения. Он был разработан в Rational Software в 1994–1995 годах, а его дальнейшее развитие велось ими до 1996 года. [2]

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

В программной инженерии большинство специалистов не используют UML, а вместо этого создают неформальные диаграммы, нарисованные вручную; однако эти диаграммы часто включают элементы из UML. [5] : 536 

История

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

До UML 1.0

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

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

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

УМЛ 1.x

Под техническим руководством этих трех (Рамбо, Якобсон и Буч) в 1996 году был организован консорциум под названием UML Partners для завершения спецификации Unified Modeling Language (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 года. [2] [8]

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

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

Обозначение мощности

Как и в случае с диаграммами баз данных Чена, Бахмана и ISO ER , модели классов специфицированы для использования "перекрестных" мощностей , хотя несколько авторов ( Мериз , [11] Элмасри и Навате, [12] среди прочих [13] ) предпочитают одностороннюю или "перекрестную" для ролей и как минимальных, так и максимальных мощностей. Недавние исследователи (Фейнерер [14] и Дуллеа и др. [15] ) показали, что техника "перекрестного" просмотра, используемая диаграммами UML и ER, менее эффективна и менее связна при применении к n -арным отношениям порядка строго больше 2.

Файнерер говорит: «Проблемы возникают, если мы работаем в рамках семантики «перекрестного просмотра», используемой для ассоциаций UML. Хартманн [16] исследует эту ситуацию и показывает, как и почему различные преобразования терпят неудачу». И: «Как мы увидим на следующих нескольких страницах, интерпретация «перекрестного просмотра» вносит несколько трудностей, которые мешают распространению простых механизмов с бинарных на n -арные ассоциации».

УМЛ 2

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

Хотя UML 2.1 никогда не был выпущен как формальная спецификация, версии 2.1.1 и 2.1.2 появились в 2007 году, а затем UML 2.2 в феврале 2009 года. UML 2.3 был официально выпущен в мае 2010 года. [18] UML 2.4.1 был официально выпущен в августе 2011 года. [18] UML 2.5 был выпущен в октябре 2012 года как версия «В разработке» и был официально выпущен в июне 2015 года. [18] Формальная версия 2.5.1 была принята в декабре 2017 года. [1]

Спецификация UML 2.x состоит из четырех частей:

До UML 2.4.1 последними версиями этих стандартов были: [19]

Начиная с версии 2.5 спецификация UML была упрощена (без надстройки и инфраструктуры), и последние версии этих стандартов теперь следующие: [20]

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

Дизайн

Пример компонентов в системе бронирования путешествий

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

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

Методы разработки программного обеспечения

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

Моделирование

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

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

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

В UML одним из ключевых инструментов для моделирования поведения является модель вариантов использования, вызванная OOSE . Варианты использования — это способ указания требуемых вариантов использования системы. Обычно они используются для фиксации требований системы, то есть того, что система должна делать. [26]

Диаграммы

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

Иерархия диаграмм UML 2.2, представленная в виде диаграммы классов
Иерархия диаграмм UML 2.2, представленная в виде диаграммы классов

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

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

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

Диаграммы поведения

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

Визуальное представление: Staff User → Complaints System: Submit Complaints System → HR System: Forward Complaints System → Department: Assign Complaints Department → Complaints System: Update Resolution Complaints System → Feedback System: Request Feedback Feedback System → Staff User: Provide Feedback Staff User → Feedback System: Submit Feedback Это описание можно использовать для рисования диаграммы последовательности с помощью таких инструментов, как Lucidchart, Draw.io или любого программного обеспечения для построения диаграмм UML. Диаграмма будет иметь актеров с левой стороны со стрелками, указывающими последовательность действий и взаимодействий между системами и актерами, как описано, пожалуйста Диаграмма последовательности drow Диаграммы последовательности должны быть нарисованы для каждого варианта использования, чтобы показать, как различные объекты взаимодействуют друг с другом для достижения функциональности варианта использования.

Артефакты

Компоненты проявления артефакта

В UML артефакт [ 1] — это «спецификация физической части информации, которая используется или создается в процессе разработки программного обеспечения или при развертывании и эксплуатации системы». [1]

«Примерами артефактов являются файлы моделей, исходные файлы, скрипты и двоичные исполняемые файлы, таблица в системе базы данных , результат разработки, текстовый документ или почтовое сообщение». [1]

Артефакты — это физические сущности, которые развертываются на узлах [1] (т. е. устройствах и средах выполнения). Другие элементы UML, такие как классы и компоненты, сначала проявляются в артефактах, а затем развертываются экземпляры этих артефактов. Артефакты также могут состоять из других артефактов.

Метамоделирование

Иллюстрация метаобъектного объекта

Группа управления объектами (OMG) разработала архитектуру метамоделирования для определения UML, называемую Meta-Object Facility . [27] MOF разработан как четырехслойная архитектура, как показано на изображении справа. Она предоставляет мета-метамодель наверху, называемую слоем M3. Эта M3-модель является языком, используемым Meta-Object Facility для построения метамоделей, называемых M2-моделями.

Наиболее ярким примером модели Layer 2 Meta-Object Facility является метамодель UML, которая описывает сам UML. Эти M2-модели описывают элементы M1-слоя и, таким образом, M1-модели. Это могут быть, например, модели, написанные на UML. Последний слой — это M0-слой или слой данных. Он используется для описания экземпляров системы во время выполнения. [28]

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

Принятие

В 2013 году компания OMG продвигала UML во многих контекстах, но в первую очередь она была нацелена на разработку программного обеспечения, но с ограниченным успехом. [23] [30]

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

Он считается большим языком со множеством конструкций . Некоторые люди (включая Якобсона ) считают, что размер UML затрудняет обучение и, следовательно, усвоение. [32]

MS Visual Studio прекратила поддержку UML в 2016 году из-за отсутствия использования. [33]

По данным Google Trends, с 2004 года UML неуклонно снижается. [34]

Смотрите также

Ссылки

  1. ^ abcdef Унифицированный язык моделирования 2.5.1. Номер документа OMG formal/2017-12-05. Организация по разработке стандартов группы управления объектами (OMG SDO). Декабрь 2017 г. Ошибка цитирования: Именованная ссылка «OMG» была определена несколько раз с различным содержанием (см. страницу справки ).
  2. ^ abcd Unified Modeling Language User Guide, (2-е изд.). Addison-Wesley. 2005. стр. 496. ISBN 0321267974.Посмотрите пример содержания: посмотрите историю
  3. ^ "ISO/IEC 19501:2005 - Информационные технологии - Открытая распределенная обработка - Унифицированный язык моделирования (UML) Версия 1.4.3". Iso.org. 1 апреля 2005 г. Получено 7 мая 2015 г.
  4. ^ "ISO/IEC 19505-1:2012 - Информационные технологии - Унифицированный язык моделирования группы управления объектами (OMG UML) - Часть 1: Инфраструктура". Iso.org. 20 апреля 2012 г. Получено 10 апреля 2014 г.
  5. ^ Себастьян Балтес; Стефан Диль (11 ноября 2014 г.). «Наброски и диаграммы на практике». Труды 22-го Международного симпозиума ACM SIGSOFT по основам программной инженерии . FSE 2014. Ассоциация вычислительной техники . С. 530–541. arXiv : 1706.09172 . doi : 10.1145/2635868.2635891. ISBN 978-1-4503-3056-5. S2CID  2436333.
  6. ^ abcd "OMG Unified Modeling Language (OMG UML), Superstructure. Версия 2.4.1". Object Management Group . Получено 9 апреля 2014 г. .
  7. ^ Андреас Зендлер (1997) Расширенные концепции, модели жизненного цикла и инструменты для объектно-ориентированной разработки программного обеспечения . стр. 122
  8. ^ "Спецификация UML версии 1.1 (документ OMG ad/97-08-11)". Omg.org . Получено 22 сентября 2011 г. .
  9. ^ "UML". Omg.org . Получено 10 апреля 2014 г. .
  10. ^ Génova et alia 2004 «Открытые вопросы в моделировании промышленных вариантов использования»
  11. ^ Юбер Тардье, Арнольд Рохфельд и Рене Коллетти La Methode MERISE: Principes et Outils (Мягкая обложка - 1983)
  12. ^ Элмасри, Рамез, Б. Шамкант, Навате, Основы систем баз данных, третье изд., Эддисон-Уэсли, Менло-Парк, Калифорния, США, 2000.
  13. ^ Паоло Ацени; Уэсли Чу; Хунцзюнь Лу; Шуйген Чжоу; Ток Ван Лин, ред. (27 октября 2004 г.). Концептуальное моделирование – ER 2004: 23-я международная конференция по концептуальному моделированию, Шанхай, Китай, 8–12 ноября 2004 г. Lecture Notes in Computer Science 3288 (ред. 2004 г.). Springer . ISBN 3540237232.
  14. ^ Инго Фейнерер (март 2007 г.). Формальная обработка диаграмм классов UML как эффективного метода управления конфигурацией (PDF) (диссертация доктора технических наук). Вена: Технический университет Вены.
  15. ^ Джеймс Дуллеа; Иль-Ёль Сонг; Иоанна Лампроу (1 ноября 2003 г.). «Анализ структурной валидности в моделировании сущностей и связей». Data & Knowledge Engineering . 47 (2): 167–205. doi :10.1016/S0169-023X(03)00049-1.
  16. ^ Свен Хартманн (17 января 2003 г.). Рассуждения об ограничениях участия и ограничениях Чена. ADC '03: Труды 14-й Австралазийской конференции по базам данных. Австралийское компьютерное общество . С. 105–113. Значок открытого доступа
  17. ^ "UML 2.0". Omg.org . Получено 22 сентября 2011 г. .
  18. ^ abc "UML". Omg.org . Получено 22 сентября 2011 г. .
  19. ^ OMG. "OMG Formal Specifications (Modeling and Metadata paragraph)" . Получено 12 февраля 2016 г. .
  20. ^ OMG. "о спецификации унифицированного языка моделирования" . Получено 22 февраля 2020 г.
  21. ^ "Вопросы для списка рассылки рабочей группы по пересмотру UML 2.6". Omg.org . Получено 10 апреля 2014 г. .
  22. ^ Сатиш Мишра (1997). «Визуальное моделирование и унифицированный язык моделирования (UML): Введение в UML» Архивировано 20 июля 2011 г. на Wayback Machine . Rational Software Corporation. Доступ 9 ноября 2008 г.
  23. ^ ab "UML, Истории успеха" . Получено 9 апреля 2014 г.
  24. ^ Джон Хант (2000). Унифицированный процесс для практиков: объектно-ориентированное проектирование, UML и Java . Springer, 2000. ISBN 1-85233-275-1 . стр. 5.door 
  25. ^ Институт инженеров-электриков Джона Холта (2004). UML для системной инженерии: наблюдение за колесами IET, 2004, ISBN 0-86341-354-4 . стр. 58 
  26. ^ Мануэль Альмендрос-Хименес, Хесус и Ирибарн, Луис. (2007). Описание отношений вариантов использования с помощью диаграмм последовательности. Вычислить. Дж. 50. 116–128. 10.1093/comjnl/bxl053.
  27. ^ Иман Поэрномо (2006) «The Meta-Object Facility Typed Архивировано 30 июня 2016 года в Wayback Machine » в: Труды SAC '06 Труды симпозиума ACM 2006 года по прикладным вычислениям . С. 1845–1849
  28. ^ "UML 2.4.1 Infrastructure". Omg.org. 5 августа 2011 г. Получено 10 апреля 2014 г.
  29. ^ Брайан Хендерсон-Селлерс ; Сезар Гонсалес-Перес (1 октября 2006 г.). «Использование и злоупотребление механизмом стереотипов в UML 1.x и 2.0». MoDELS '06: Труды 9-й Международной конференции по языкам и системам проектирования на основе моделей . Конспект лекций по информатике 4199. 4199. Берлин , Германия: Springer -Verlag : 16–26. doi :10.1007/11880240_2. ISBN 978-3-540-45772-5.
  30. ^ «UML 2.5: Вас это вообще волнует?».«UML действительно вездесущ»
  31. ^ «Смерть от лихорадки UML».
  32. ^ «Ивар Якобсон об UML, MDA и будущем методологий».
  33. ^ Крилл, Пол (18 октября 2016 г.). «UML будет исключен из Microsoft Visual Studio». InfoWorld . Получено 23 июля 2023 г. .
  34. ^ "Google Trends". Google Trends . Архивировано из оригинала 23 июля 2023 г. . Получено 23 июля 2023 г. .

Дальнейшее чтение

Внешние ссылки