Единый язык моделирования
Унифицированный язык моделирования ( UML общего назначения ) — это язык визуального моделирования , предназначенный для обеспечения стандартного способа визуализации проекта системы. [1]
UML предоставляет стандартные обозначения для многих типов диаграмм, которые можно условно разделить на три основные группы: диаграммы поведения, диаграммы взаимодействия и структурные диаграммы.
Создание UML изначально было мотивировано желанием стандартизировать разрозненные системы обозначений и подходы к разработке программного обеспечения. Он был разработан в Rational Software в 1994–1995 годах, а дальнейшая разработка проводилась под их руководством до 1996 года. [2]
В 1997 году UML был принят в качестве стандарта Группой управления объектами (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]
UML 1.x [ править ]
консорциум под названием UML Partners, Под техническим руководством этих троих (Рамбо, Джейкобсон и Буч) в 1996 году был организован чтобы завершить разработку спецификации унифицированного языка моделирования (UML) и предложить ее Группе управления объектами (OMG) для стандартизации. В партнерстве также участвовали дополнительные заинтересованные стороны (например, HP , DEC , IBM и Microsoft ). Проект UML 1.0 от UML Partners был предложен консорциумом OMG в январе 1997 года. В том же месяце партнеры UML сформировали группу, призванную определять точное значение языковых конструкций, под председательством Криса Кобрина и Эда Эйхолта, чтобы завершить разработку спецификации и интегрировать ее с другими усилиями по стандартизации. Результат этой работы, UML 1.1, был представлен OMG в августе 1997 года и принят OMG в ноябре 1997 года. [2] [8]
После первого релиза была сформирована оперативная группа [2] для улучшения языка, выпустившего несколько незначительных ревизий: 1.3, 1.4 и 1.5. [9]
Разработанные ею стандарты (как и первоначальный стандарт) были отмечены как неоднозначные и непоследовательные. [10]
Обозначение мощности [ править ]
Как и в случае с диаграммами базы данных Чена, Бахмана и ISO ER , в моделях классов указано использование «просматриваемых» мощностей , хотя некоторые авторы ( Merise , [11] Эльмасри и Навате, [12] среди других [13] )предпочитайте роли и минимальные и максимальные мощности на одной стороне или «посмотрите здесь». Недавние исследователи (Фейнерер [14] и Дуллеа и др. [15] )показали, что метод «пересмотра», используемый диаграммами UML и ER, менее эффективен и менее последователен, когда применяется к n -арным отношениям порядка строго выше 2.
Файнерер говорит: «Проблемы возникают, если мы работаем с семантикой просмотра, используемой для ассоциаций UML. Хартманн [16] исследует эту ситуацию и показывает, как и почему различные преобразования терпят неудачу.», и: «Как мы увидим на следующих нескольких страницах, перекрестная интерпретация создает несколько трудностей, которые препятствуют расширению простых механизмов от бинарных до n -арных ассоциаций. "
UML 2 [ править ]
Основная версия UML 2.0 заменила версию 1.5 в 2005 году, которая была разработана расширенным консорциумом с целью дальнейшего улучшения языка и отражения нового опыта использования его функций. [17]
Хотя UML 2.1 так и не был выпущен в качестве официальной спецификации, версии 2.1.1 и 2.1.2 появились в 2007 году, а затем в феврале 2009 года появилась UML 2.2. 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 состоит из четырех частей:
- Надстройка, определяющая обозначения и семантику диаграмм и элементов их модели.
- Инфраструктура, определяющая основную метамодель, на которой основана Надстройка.
- Язык ограничений объектов (OCL) для определения правил для элементов модели.
- Обмен диаграммами UML, который определяет способ обмена макетами диаграмм UML 2.
До UML 2.4.1 последними версиями этих стандартов были: [19]
- Надстройка UML версии 2.4.1
- UML-инфраструктура версии 2.4.1
- ОСЛ версия 2.3.1
- UML Diagram Interchange версии 1.0.
Начиная с версии 2.5, спецификация UML была упрощена (без надстройки и инфраструктуры), и теперь последние версии этих стандартов: [20]
- Спецификация UML 2.5.1
- ОКЛ версия 2.4
Он продолжает обновляться и улучшаться целевой группой по пересмотру, которая решает любые проблемы с языком. [21]
Дизайн [ править ]
UML предлагает способ визуализировать архитектурные чертежи системы в виде диаграммы, включая такие элементы, как: [6]
- любая деятельность (работы);
- отдельные компоненты системы;
- и как они могут взаимодействовать с другими компонентами программного обеспечения ;
- как будет работать система;
- как сущности взаимодействуют с другими (компонентами и интерфейсами);
- внешний пользовательский интерфейс .
Хотя изначально UML предназначался для объектно-ориентированной проектной документации, он был расширен до более широкого набора проектной документации (как указано выше). [22] и оказался полезным во многих контекстах. [23]
Методы разработки программного обеспечения [ править ]
UML сам по себе не является методом разработки; [24] однако он был разработан для совместимости с ведущими объектно-ориентированными методами разработки программного обеспечения своего времени, например, OMT , методом Буха , Objectory и особенно с RUP , с которым он изначально предназначался для использования, когда началась работа в Rational Software.
Моделирование [ править ]
Важно различать модель UML и набор диаграмм системы. Диаграмма — это частичное графическое представление модели системы. Набор диаграмм не обязательно полностью покрывает модель, и удаление диаграммы не приводит к изменению модели. Модель также может содержать документацию, которая управляет элементами и диаграммами модели (например, письменные варианты использования).
Диаграммы UML представляют два разных представления модели системы: [25]
- Статический (или структурный ) вид: подчеркивает статическую структуру системы с использованием объектов, атрибутов, операций и отношений. Он включает в себя диаграммы классов и диаграммы составных структур .
- Динамический (или поведенческий ) вид: подчеркивает динамическое поведение системы, показывая сотрудничество между объектами и изменения во внутренних состояниях объектов. Это представление включает в себя диаграммы последовательности , диаграммы действий и диаграммы конечных автоматов .
Модели UML можно обменивать между инструментами UML с помощью формата обмена метаданными XML (XMI).
В UML одним из ключевых инструментов моделирования поведения является модель вариантов использования, созданная с помощью OOSE . Варианты использования — это способ указания необходимых вариантов использования системы. Обычно они используются для определения требований системы, то есть того, что система должна делать. [26]
Диаграммы [ править ]
Типы диаграмм UML |
---|
Структурные диаграммы UML |
Поведенческие UML-диаграммы |
В UML 2 имеется множество типов диаграмм, которые разделены на две категории. [6] Некоторые типы представляют структурную информацию, а остальные представляют общие типы поведения , включая несколько, которые представляют различные аспекты взаимодействий . Эти диаграммы можно классифицировать иерархически, как показано на следующей диаграмме классов: [6]
Все эти диаграммы могут содержать комментарии или примечания, объясняющие использование, ограничения или намерения.
Структурные диаграммы [ править ]
Структурные диаграммы представляют статические аспекты системы. Он подчеркивает то, что должно присутствовать в моделируемой системе. Поскольку структурные диаграммы представляют структуру, они широко используются при документировании архитектуры программного обеспечения программных систем. Например, диаграмма компонентов описывает, как программная система разбивается на компоненты, и показывает зависимости между этими компонентами.
Диаграммы поведения [ править ]
Диаграммы поведения представляют динамический аспект системы. Он подчеркивает, что должно произойти в моделируемой системе. Поскольку диаграммы поведения иллюстрируют поведение системы, они широко используются для описания функциональности программных систем. Например, диаграмма деятельности описывает бизнес- и операционную пошаговую деятельность компонентов системы.
Диаграммы взаимодействия [ править ]
Диаграммы взаимодействия, подмножество диаграмм поведения, подчеркивают поток управления и данных между вещами в моделируемой системе. Например, диаграмма последовательности показывает, как объекты взаимодействуют друг с другом в отношении последовательности сообщений.
Метамоделирование [ править ]
Группа управления объектами (OMG) разработала архитектуру метамоделирования для определения UML, называемую Meta-Object Facility . [27] MOF спроектирован как четырехуровневая архитектура, как показано на изображении справа. Он предоставляет мета-мета-модель наверху, называемую слоем M3. Эта M3-модель представляет собой язык, используемый Meta-Object Facility для создания метамоделей, называемых M2-моделями.
Наиболее ярким примером модели метаобъектов уровня 2 является метамодель 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, уровень UML неуклонно снижается с 2004 года. [34]
См. также [ править ]
- Приложения UML
- Модель бизнес-процессов и нотация (BPMN)
- Модель С4
- Структура архитектуры Министерства обороны
- DOT (язык описания графов)
- Список инструментов унифицированного языка моделирования
- МОДАФ
- Тестирование на основе моделей
- Модельно-ориентированное проектирование
- Объектно-ориентированный ролевой анализ и моделирование
- Язык спецификации процесса
- Язык системного моделирования (SysML)
Ссылки [ править ]
- ↑ Перейти обратно: Перейти обратно: а б Единый язык моделирования 2.5.1 . Официальный номер документа OMG /05.12.2017. Организация по разработке стандартов группы управления объектами (OMG SDO). Декабрь 2017.
- ↑ Перейти обратно: Перейти обратно: а б с д Руководство пользователя унифицированного языка моделирования, The (2-е изд.). Аддисон-Уэсли. 2005. с. 496. ИСБН 0321267974 . Посмотрите пример содержания: ищите историю
- ^ «ISO/IEC 19501:2005. Информационные технологии. Открытая распределенная обработка. Унифицированный язык моделирования (UML), версия 1.4.3» . Исо.орг. 1 апреля 2005 года . Проверено 7 мая 2015 г.
- ^ «ISO/IEC 19505-1:2012. Информационные технологии. Унифицированный язык моделирования группы управления объектами (OMG UML). Часть 1: Инфраструктура» . Исо.орг. 20 апреля 2012 года . Проверено 10 апреля 2014 г.
- ^ Себастьян Балтес; Стефан Диль (11 ноября 2014 г.). «Эскизы и схемы на практике» . Материалы 22-го Международного симпозиума ACM SIGSOFT по основам программной инженерии . ФСЕ 2014. Ассоциация вычислительной техники . стр. 530–541. arXiv : 1706.09172 . дои : 10.1145/2635868.2635891 . ISBN 978-1-4503-3056-5 . S2CID 2436333 .
- ↑ Перейти обратно: Перейти обратно: а б с д «Унифицированный язык моделирования OMG (OMG UML), Надстройка. Версия 2.4.1» . Группа управления объектами . Проверено 9 апреля 2014 г.
- ^ Андреас Зендлер (1997) Расширенные концепции, модели жизненного цикла и инструменты для объектно-ориентированной разработки программного обеспечения . п. 122
- ^ «Спецификация UML версии 1.1 (документ OMG ad/97-08-11)» . Омг.орг . Проверено 22 сентября 2011 г.
- ^ «УМЛ» . Омг.орг . Проверено 10 апреля 2014 г.
- ^ Генова и др. 2004 «Открытые проблемы моделирования вариантов промышленного использования»
- ^ Юбер Тардье, Арнольд Рохфельд и Рене Коллетти Метод MERISE: Принципы и инструменты (Мягкая обложка - 1983)
- ^ Эльмасри, Рамез, Б. Шамкант, Навате, Основы систем баз данных, третье изд., Аддисон-Уэсли, Менло-Парк, Калифорния, США, 2000.
- ^ Паоло Ацени; Уэсли Чу; Хунцзюнь Лу; Шуйген Чжоу; Ток Ван Лин, ред. (27 октября 2004 г.). Концептуальное моделирование – ER 2004: 23-я Международная конференция по концептуальному моделированию, Шанхай, Китай, 8–12 ноября 2004 г. Конспекты лекций по информатике 3288 (изд. 2004 г.). Спрингер .
- ^ Инго Файнерер (март 2007 г.). Формальная трактовка диаграмм классов UML как эффективного метода управления конфигурациями (PDF) (докторская диссертация). Вена: Венский технический университет.
- ^ Джеймс Даллеа; Иль-Ёль Сон; Иоанна Лампроу (1 ноября 2003 г.). «Анализ структурной обоснованности моделирования сущностей и связей». Инженерия данных и знаний . 47 (2): 167–205. дои : 10.1016/S0169-023X(03)00049-1 .
- ^ Свен Хартманн (17 января 2003 г.). Рассуждения об ограничениях участия и ограничениях Чена . ADC '03: Материалы 14-й Австралазийской конференции по базам данных. Австралийское компьютерное общество . стр. 105–113.
- ^ «УМЛ 2.0» . Омг.орг . Проверено 22 сентября 2011 г.
- ↑ Перейти обратно: Перейти обратно: а б с «УМЛ» . Омг.орг . Проверено 22 сентября 2011 г.
- ^ МОЙ БОГ. «Официальные спецификации OMG (раздел «Моделирование и метаданные»)» . Проверено 12 февраля 2016 г.
- ^ МОЙ БОГ. «о спецификации единого языка моделирования» . Проверено 22 февраля 2020 г. .
- ^ «Проблемы для списка рассылки целевой группы по пересмотру UML 2.6» . Омг.орг . Проверено 10 апреля 2014 г.
- ^ Сатиш Мишра (1997). «Визуальное моделирование и унифицированный язык моделирования (UML): введение в UML». Архивировано 20 июля 2011 г. в Wayback Machine . Корпорация Рациональное программное обеспечение. По состоянию на 9 ноября 2008 г.
- ↑ Перейти обратно: Перейти обратно: а б «UML, Истории успеха» . Проверено 9 апреля 2014 г.
- ^ Джон Хант (2000). Унифицированный процесс для практиков: объектно-ориентированное проектирование, UML и Java . Спрингер, 2000. ISBN 1-85233-275-1 . п. 5.by
- ^ Институт инженеров-электриков Джона Холта (2004). UML для системной инженерии: наблюдение за колесами IET, 2004 г., ISBN 0-86341-354-4 . п. 58
- ^ Мануэль Альмендрос-Хименес, Хесус и Ирибарн, Луис. (2007). Описание отношений вариантов использования с помощью диаграмм последовательности. Вычислить. Дж. 50. 116–128. 10.1093/comjnl/bxl053.
- ^ Иман Поэрномо (2006) « Типизированная метаобъектная система, заархивированная 30 июня 2016 года в Wayback Machine » в: Proceeding SAC '06 Proceedings of the ACM Symposium 2006 on Applied Computing . стр. 1845–1849 гг.
- ^ «Инфраструктура UML 2.4.1» . Омг.орг. 5 августа 2011 года . Проверено 10 апреля 2014 г.
- ^ Брайан Хендерсон-Селлерс ; Сесар Гонсалес-Перес (1 октября 2006 г.). «Использование и злоупотребление механизмом стереотипов в UML 1.x и 2.0». MoDELS '06: Материалы 9-й международной конференции по инженерным языкам и системам, управляемым моделями . Конспекты лекций по информатике 4199. Берлин , Германия: Springer-Verlag : 16–26. дои : 10.1007/11880240_2 .
- ^ «UML 2.5: Тебя это вообще волнует?» . «UML действительно вездесущ»
- ^ «Смерть от лихорадки UML» .
- ^ «Ивар Джейкобсон об UML, MDA и будущем методологий» .
- ^ Криль, Пол (18 октября 2016 г.). «UML будет удален из Microsoft Visual Studio» . Инфомир . Проверено 23 июля 2023 г.
- ^ «Гугл Тренды» . Гугл Тренды . Архивировано из оригинала 23 июля 2023 года . Проверено 23 июля 2023 г.
Дальнейшее чтение [ править ]
- Эмблер, Скотт Уильям (2004). Учебник по объектам: гибкая разработка на основе моделей с использованием UML 2 . Издательство Кембриджского университета. ISBN 0-521-54018-6 . Архивировано из оригинала 31 января 2010 года . Проверено 29 апреля 2006 г.
- Чонолес, Майкл Джесси; Джеймс А. Шардт (2003). UML 2 для чайников . Издательство Уайли. ISBN 0-7645-2614-6 .
- Фаулер, Мартин (2004). UML Distilled: Краткое руководство по стандартному языку объектного моделирования (3-е изд.). Аддисон-Уэсли. ISBN 0-321-19368-7 .
- Джейкобсон, Ивар ; Грейди Буч; Джеймс Рамбо (1998). Унифицированный процесс разработки программного обеспечения . Эддисон Уэсли Лонгман. ISBN 0-201-57169-2 .
- Мартин, Роберт Сесил (2003). UML для Java-программистов . Прентис Холл. ISBN 0-13-142848-9 .
- Норан, Овидиу С. «Бизнес-моделирование: UML против IDEF» (PDF) . Проверено 14 ноября 2022 г.
- Хорст Каргл. «Интерактивная метамодель UML с дополнительными примерами» .
- Пенкер, Магнус; Ханс-Эрик Эрикссон (2000). Бизнес-моделирование с помощью UML . Джон Уайли и сыновья. ISBN 0-471-29551-5 .
- Дуглас, Брюс Пауэл. «Брюс Дуглас: гибкие системы реального времени и разработка программного обеспечения» (Интернет) . Проверено 1 января 2019 г.
- Дуглас, Брюс (2014). Семинар по UML в реальном времени, 2-е издание . Ньюнес. ISBN 978-0-471-29551-8 .
- Дуглас, Брюс (2004). UML реального времени, 3-е издание . Ньюнес. ISBN 978-0321160768 .
- Дуглас, Брюс (2002). Шаблоны проектирования в реальном времени . Аддисон-Уэсли Профессионал. ISBN 978-0201699562 .
- Дуглас, Брюс (2009). Гибкость в реальном времени . Аддисон-Уэсли Профессионал. ISBN 978-0321545497 .
- Дуглас, Брюс (2010). Шаблоны проектирования для встраиваемых систем на C. Ньюнес. ISBN 978-1856177078 .
Внешние ссылки [ править ]
- Официальный сайт
- Текущая спецификация UML: Единый язык моделирования 2.5.1 . Официальный номер документа OMG /05.12.2017. Организация по разработке стандартов группы управления объектами (OMG SDO). Декабрь 2017.