Единый язык моделирования - Unified Modeling Language
В Единый язык моделирования (UML) является универсальным, развивающим, язык моделирования в области программная инженерия который предназначен для предоставления стандартного способа визуализации дизайна системы.[1]
Первоначально создание UML было мотивировано желанием стандартизировать разрозненные системы обозначений и подходы к разработке программного обеспечения. Он был разработан Грейди Буч, Ивар Якобсон и Джеймс Рамбо в Рациональное программное обеспечение в 1994–1995 годах, с последующим развитием под их руководством до 1996 года.[1]
В 1997 году UML был принят в качестве стандарта Группа управления объектами (OMG), и с тех пор ею управляет. В 2005 году UML был также опубликован Международная организация по стандартизации (ISO) как утвержденный стандарт ISO.[2] С тех пор стандарт периодически пересматривался, чтобы охватить последнюю версию UML.[3]
История
До UML 1.0
UML развивается со второй половины 1990-х годов и берет свое начало в объектно-ориентированного программирования методы, разработанные в конце 1980-х - начале 1990-х годов. Временная шкала (см. Изображение) показывает основные моменты истории объектно-ориентированных методов моделирования и обозначений.
Первоначально он основан на обозначениях Метод Буча, то техника объектного моделирования (OMT) и объектно-ориентированная разработка программного обеспечения (OOSE), который он интегрировал в единый язык.[4]
Rational Software Corporation принят на работу Джеймс Рамбо из General Electric в 1994 году и после этого компания стала источником двух самых популярных подходов к объектно-ориентированному моделированию того времени:[5] Рамбо техника объектного моделирования (OMT) и Грейди Буч метод. Вскоре в их усилиях им помогли Ивар Якобсон, создатель объектно-ориентированная разработка программного обеспечения (OOSE), который присоединился к ним в Rational в 1995 году.[1]
UML 1.x
Под техническим руководством этих троих (Рамбо, Якобсон и Буч) консорциум под названием UML Партнеры была организована в 1996 году для завершения Единый язык моделирования (UML) спецификации, и предложить ее Группе управления объектами (OMG) для стандартизации. В партнерстве также были дополнительные заинтересованные стороны (например, HP, DEC, IBM и Microsoft ). Проект UML 1.0 UML Partners был предложен OMG консорциумом в январе 1997 года. В том же месяце партнеры UML сформировали группу, призванную определять точное значение языковых конструкций под председательством Крис Кобрин и администрируется Эдом Эйкхольтом для завершения спецификации и интеграции ее с другими усилиями по стандартизации. Результат этой работы, UML 1.1, был представлен OMG в августе 1997 года и принят OMG в ноябре 1997 года.[1][6]
После первого выпуска была сформирована целевая группа.[1] для улучшения языка, в результате чего было выпущено несколько незначительных изменений, 1.3, 1.4 и 1.5.[7]
Разработанные стандарты (как и исходный стандарт) были отмечены как неоднозначные и непоследовательные.[8][9]
Обозначение мощности
Как и в случае с базой данных Chen, Bachman и ISO Диаграммы ER, модели классов указаны для использования "просмотра" мощности, хотя несколько авторов (Merise,[10] Эльмасри и Наватх[11] среди других[12]) предпочитают ту же сторону или «ищите здесь» для ролей и минимальной и максимальной мощности. Недавние исследователи (Feinerer,[13] Dullea et al.[14]) показали, что метод "просмотра", используемый в диаграммах UML и ER, менее эффективен и менее согласован при применении к п-арные отношения порядка строго больше 2.
Файнерер говорит: «Проблемы возникают, если мы работаем в рамках семантики просмотра, используемой для ассоциаций UML. Хартманн[15] исследует эту ситуацию и показывает, как и почему различные преобразования терпят неудачу », и:« Как мы увидим на следующих нескольких страницах, сквозная интерпретация привносит ряд трудностей, которые препятствуют расширению простых механизмов с двоичных на п-арочные ассоциации ".
UML 2
Основная версия UML 2.0 заменила версию 1.5 в 2005 году, которая была разработана расширенным консорциумом для дальнейшего улучшения языка, чтобы отразить новый опыт использования его функций.[16]
Хотя UML 2.1 никогда не выпускался как формальная спецификация, версии 2.1.1 и 2.1.2 появились в 2007 году, а затем UML 2.2 в феврале 2009 года. UML 2.3 был официально выпущен в мае 2010 года.[17] UML 2.4.1 был официально выпущен в августе 2011 года.[17] UML 2.5 был выпущен в октябре 2012 года как «Выполняемая» версия и официально выпущен в июне 2015 года.[17] Официальная версия 2.5.1 была принята в декабре 2017 года.[18]
Спецификация UML 2.x состоит из четырех частей:
- Надстройка, определяющая обозначения и семантику для диаграмм и их элементов модели
- Инфраструктура, определяющая базовую метамодель, на которой основана надстройка.
- В Язык объектных ограничений (OCL) для определения правил для элементов модели
- Обмен диаграммами UML, который определяет, как обмениваются макеты диаграмм UML 2
До UML 2.4.1 последними версиями этих стандартов были:[19]
- Надстройка UML версии 2.4.1
- Инфраструктура UML версии 2.4.1
- OCL версии 2.3.1
- UML Diagram Interchange версии 1.0.
Начиная с версии 2.5, спецификация UML была упрощена (без надстройки и инфраструктуры), и теперь последние версии этих стандартов:[20]
- Спецификация UML 2.5.1
- OCL версии 2.4
Он продолжает обновляться и улучшаться целевой группой по пересмотру, которая решает любые проблемы с языком.[21]
Дизайн
UML предлагает способ визуализировать архитектурные схемы системы на диаграмме, включая такие элементы, как:[4]
- любой виды деятельности (вакансии);
- индивидуальный составные части системы;
- и как они могут взаимодействовать с другими программные компоненты;
- как будет работать система;
- как сущности взаимодействуют с другими (компоненты и интерфейсы);
- внешний пользовательский интерфейс.
Первоначально предназначенный для объектно-ориентированной проектной документации, UML был расширен до более широкого набора проектной документации (как указано выше),[22] и был признан полезным во многих контекстах.[23]
Методы разработки программного обеспечения
UML сам по себе не является методом разработки;[24] однако он был разработан, чтобы быть совместимым с ведущими объектно-ориентированными методами разработки программного обеспечения того времени, например OMT, Метод Буча, Цель и особенно RUP что он изначально предназначался для использования, когда начиналась работа в Rational Software.
Моделирование
Важно различать модель UML и набор диаграмм системы. Диаграмма - это частичное графическое представление модели системы. Набор диаграмм не обязательно должен полностью покрывать модель, и удаление диаграммы не меняет модель. Модель также может содержать документацию, которая управляет элементами модели и диаграммами (например, письменными вариантами использования).
Диаграммы UML представляют собой два разных представления модели системы:[25]
- Статический (или структурный) вид: подчеркивает статическую структуру системы с помощью объектов, атрибутов, операций и отношений. Это включает в себя диаграммы классов и схемы составных структур.
- Динамический (или поведенческий) view: подчеркивает динамическое поведение системы, показывая взаимодействие между объектами и изменения внутреннего состояния объектов. Это представление включает диаграммы последовательности, диаграммы деятельности и диаграммы состояний.
Модели UML можно обменивать Инструменты UML используя Обмен метаданными XML (XMI) формат.
В UML одним из ключевых инструментов моделирования поведения является модель вариантов использования, обусловленная OOSE. Сценарии использования - это способ указать требуемые способы использования системы. Обычно они используются для определения требований системы, то есть того, что система должна делать.[26]
Диаграммы
Типы диаграмм UML |
---|
Структурные диаграммы UML |
Диаграммы поведенческого UML |
В UML 2 есть много типов диаграмм, которые делятся на две категории.[4] Некоторые типы представляют структурный информации, а остальные представляют собой общие типы поведение, в том числе несколько, которые представляют разные аспекты взаимодействия. Эти диаграммы можно классифицировать иерархически, как показано на следующей диаграмме классов:[4]
Эти диаграммы могут содержать комментарии или примечания, объясняющие использование, ограничения или намерения.
Структурные схемы
Структурные диаграммы подчеркивают то, что должно присутствовать в моделируемой системе. Поскольку структурные диаграммы представляют структуру, они широко используются при документировании программная архитектура программных систем. Например, диаграмма компонентов описывает, как программная система разбивается на компоненты, и показывает зависимости между этими компонентами.
Диаграммы поведения
Диаграммы поведения подчеркивают, что должно происходить в моделируемой системе. Поскольку диаграммы поведения иллюстрируют поведение системы, они широко используются для описания функциональности программных систем. Например, диаграмма деятельности описывает пошаговые бизнес- и операционные действия компонентов в системе.
Диаграммы взаимодействия
Диаграммы взаимодействия, подмножество диаграмм поведения, подчеркивают поток управления и данные среди вещей в моделируемой системе. Например, схема последовательности показывает, как объекты общаются друг с другом относительно последовательности сообщений.
Метамоделирование
Группа управления объектами (OMG) разработала метамоделирование архитектура для определения UML, называемая Мета-объектный объект.[27] MOF представляет собой четырехуровневую архитектуру, как показано на рисунке справа. Он предоставляет мета-метамодель вверху, называемую слоем M3. Эта M3-модель - это язык, используемый Meta-Object Facility для построения метамоделей, называемых M2-моделями.
Наиболее ярким примером модели мета-объекта уровня 2 является метамодель UML, которая описывает сам UML. Эти M2-модели описывают элементы M1-слоя и, следовательно, M1-модели. Это могут быть, например, модели, написанные на UML. Последний слой - это M0-слой или уровень данных. Он используется для описания экземпляров системы во время выполнения.[28]
Мета-модель может быть расширена с помощью механизма, называемого стереотипы. Это было раскритиковано как недостаточное / несостоятельное Брайан Хендерсон-Селлерс и Сезар Гонсалес-Перес в статье «Использование и злоупотребления стереотипным механизмом в UML 1.x и 2.0».[29]
Принятие
UML продается во многих контекстах.[23][30]
Иногда к нему относились как к дизайну Серебряная пуля, что приводит к проблемам. Неправильное использование UML включает чрезмерное использование (проектирование с его помощью каждой части системы, что не является необходимым) и предположение, что новички могут проектировать с его помощью.[31]
Он считается большим языком, на котором многие конструкции. Некоторые люди (в том числе Якобсон ) считают, что размер UML мешает его изучению (и, следовательно, использованию).[32]
Смотрите также
- Приложения UML
- Модель и обозначение бизнес-процессов (BPMN)
- C4 модель
- Тестирование на основе модели
- Модельно-ориентированная инженерия
- Объектно-ориентированный ролевой анализ и моделирование
- Язык моделирования систем (SysML)
- Список инструментов единого языка моделирования
Рекомендации
- ^ а б c d е Руководство пользователя унифицированного языка моделирования, (2-е изд.). Эддисон-Уэсли. 2005. с. 496. ISBN 0321267974., Смотрите образец содержания, ищите историю
- ^ «ISO / IEC 19501: 2005 - Информационные технологии - Открытая распределенная обработка - Унифицированный язык моделирования (UML) версии 1.4.2». Iso.org. 1 апреля 2005 г.. Получено 7 мая 2015.
- ^ «ISO / IEC 19505-1: 2012 - Информационные технологии - Унифицированный язык моделирования группы управления объектами (OMG UML) - Часть 1: Инфраструктура». Iso.org. 20 апреля 2012 г.. Получено 10 апреля 2014.
- ^ а б c d "Унифицированный язык моделирования OMG (OMG UML), надстройка. Версия 2.4.1". Группа управления объектами. Получено 9 апреля 2014.
- ^ Андреас Зендлер (1997) Расширенные концепции, модели жизненного цикла и инструменты для объектно-ориентированной разработки программного обеспечения. п. 122
- ^ «Спецификация UML версии 1.1 (документ OMG ad / 97-08-11)». Omg.org. Получено 22 сентября 2011.
- ^ «UML». Omg.org. Получено 10 апреля 2014.
- ^ Génova et alia 2004 "Открытые проблемы моделирования сценариев промышленного использования"
- ^ «Будет ли UML 2.0 гибким или неудобным?» (PDF). Получено 22 сентября 2011.
- ^ Юбер Тардье, Арнольд Рохфельд и Рене Коллетти La method MERISE: Principes et outils (Мягкая обложка - 1983)
- ^ Эльмасри, Рамез, Б. Шамкант, Навате, Основы систем баз данных, третье изд., Аддисон-Уэсли, Менло-Парк, Калифорния, США, 2000.
- ^ ER 2004: 23-я Международная конференция по концептуальному моделированию, Шанхай, Китай, 8-12 ноября 2004 г. В архиве 27 мая 2013 г. Wayback Machine
- ^ «Формальное рассмотрение диаграмм классов UML как эффективного метода управления конфигурацией 2007» (PDF). Получено 22 сентября 2011.
- ^ "Джеймс Даллеа, Иль-Йол Сон, Иоанна Лампроу - Анализ структурной достоверности в моделировании отношений сущностей 2002" (PDF). Получено 22 сентября 2011.
- ^ ""Рассуждения об ограничениях участия и ограничениях Чена "S Hartmann - 2003" (PDF). Получено 17 августа 2013.
- ^ «UML 2.0». Omg.org. Получено 22 сентября 2011.
- ^ а б c «UML». Omg.org. Получено 22 сентября 2011.
- ^ «Спецификация UML 2.5.1». Omg.org. Получено 24 октября 2018.
- ^ МОЙ БОГ. «Формальные спецификации OMG (параграф« Моделирование и метаданные »)». Получено 12 февраля 2016.
- ^ МОЙ БОГ. "о спецификации единого языка моделирования". Получено 22 февраля 2020.
- ^ «Проблемы со списком рассылки целевой группы по версии UML 2.6». Omg.org. Получено 10 апреля 2014.
- ^ Сатиш Мишра (1997). «Визуальное моделирование и унифицированный язык моделирования (UML): введение в UML». Корпорация Rational Software. По состоянию на 9 ноября 2008 г.
- ^ а б «UML, истории успеха». Получено 9 апреля 2014.
- ^ Джон Хант (2000). Единый процесс для практиков: объектно-ориентированный дизайн, UML и Java. Спрингер, 2000. ISBN 1-85233-275-1. п. 5. дверь
- ^ Институт инженеров-электриков Джона Холта (2004 г.). UML для системной инженерии: наблюдая за колесами ИЭПП, 2004 г., ISBN 0-86341-354-4. п. 58
- ^ Мануэль Альмендрос-Хименес, Хесус и Ирибарн, Луис. (2007). Описание взаимосвязей вариантов использования с помощью диаграмм последовательностей. Comput. J .. 50. 116-128. 10.1093 / comjnl / bxl053.
- ^ Иман Поэрномо (2006) "Типизированное средство мета-объекта " в: Proceeding SAC '06 Proceedings of the 2006 ACM симпозиум по прикладным вычислениям. С. 1845–1849.
- ^ «Инфраструктура UML 2.4.1». Omg.org. 5 августа 2011 г.. Получено 10 апреля 2014.
- ^ Б. Хендерсон-Селлерс; К. Гонсалес-Перес (2006). «Использование и злоупотребления стереотипным механизмом в UML 1.x и 2.0». в: Инженерные языки и системы на основе моделей. Springer Berlin / Heidelberg.
- ^ «UML 2.5: вас это вообще волнует?». «UML действительно повсеместен»
- ^ "Смерть от лихорадки UML".
- ^ «Ивар Якобсон о UML, MDA и будущем методологий».
- Статья основана на материалах, взятых из Бесплатный онлайн-словарь по вычислительной технике до 1 ноября 2008 г. и зарегистрированы в соответствии с условиями «перелицензирования» GFDL, версия 1.3 или новее.
дальнейшее чтение
- Эмблер, Скотт Уильям (2004). Учебник по объектам: разработка на основе гибкой модели с помощью UML 2. Издательство Кембриджского университета. ISBN 0-521-54018-6.
- Чонолес, Майкл Джесси; Джеймс А. Шардт (2003). UML 2 для чайников. Wiley Publishing. 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). Получено 28 декабря 2005.
- Хорст Каргл. «Интерактивная метамодель UML с дополнительными примерами».
- Пенкер, Магнус; Ханс-Эрик Эрикссон (2000). Бизнес-моделирование с помощью UML. Джон Вили и сыновья. ISBN 0-471-29551-5.
- Дуглас, Брюс Пауэл. «Брюс Дуглас: разработка гибких систем и программного обеспечения в реальном времени» (Интернет). Получено 1 января 2019.
- Дуглас, Брюс (2014). Мастерская UML в реальном времени, 2-е издание. Newnes. ISBN 978-0-471-29551-8.
- Дуглас, Брюс (2004). UML в реальном времени, третье издание. Newnes. ISBN 978-0321160768.
- Дуглас, Брюс (2002). Шаблоны проектирования в реальном времени. Эддисон-Уэсли Профессионал. ISBN 978-0201699562.
- Дуглас, Брюс (2009). Гибкость в реальном времени. Эддисон-Уэсли Профессионал. ISBN 978-0321545497.
- Дуглас, Брюс (2010). Шаблоны проектирования для встроенных систем на C. Newnes. ISBN 978-1856177078.