ScholarGate
Ассистент

Моделирование программного обеспечения и UML

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

Найти тему в PaperMindСкороFind papers & topics
Tools & resources
Скачать слайды
Learn & explore
ВидеоСкоро

Definition

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

Scope

Эта тема охватывает структурные модели, такие как диаграммы классов, компонентов и развертывания; поведенческие модели, такие как диаграммы вариантов использования, последовательностей, деятельности и состояний; роль моделей в анализе, проектировании и коммуникации; модельно-ориентированную инженерию и генерацию кода; а также соответствующий уровень строгости моделирования для данного проекта.

Core questions

  • Какие аспекты системы отражаются структурными по сравнению с поведенческими моделями?
  • Как основные типы диаграмм UML представляют проект?
  • Какой уровень строгости моделирования подходит для данного проекта?
  • Когда автоматическая генерация кода из моделей оправдана?

Key theories

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

Clinical relevance

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

Evidence & guidelines

Спецификация OMG UML определяет стандартную нотацию и семантику, а связанные стандарты OMG, такие как SysML и MOF, расширяют моделирование до системной инженерии и метамоделирования.

History

UML появился в середине 1990-х годов в результате объединения методов Буча, OMT и Objectory, был принят в качестве стандарта OMG в 1997 году и развивался до UML 2; модельно-ориентированные подходы и легковесное эскизирование сосуществуют с дебатами о том, насколько окупается формальное моделирование.

Debates

Тяжеловесная модельно-ориентированная разработка против легковесного эскизирования
Вопрос о том, должны ли модели быть авторитетными артефактами, управляющими генерацией кода, или неформальными эскизами для коммуникации, оспаривается; концепция «модель как программа» обещает согласованность, в то время как ориентированное на эскизы использование ценит низкие накладные расходы и адаптивность.

Key figures

  • Grady Booch
  • James Rumbaugh
  • Ivar Jacobson
  • Martin Fowler

Related topics

Seminal works

  • booch2005
  • omg2017uml
  • fowler2003

Frequently asked questions

Актуален ли UML в гибкой разработке?
Да, хотя часто используется более легковесно. Гибкие команды, как правило, используют диаграммы UML в качестве неформальных эскизов для обмена информацией и рассуждений о проекте, а не как исчерпывающие спецификации, применяя ровно столько моделирования, сколько необходимо для прояснения текущей проблемы.
Требует ли моделирование UML?
Нет. UML является наиболее широко стандартизированной нотацией, но моделирование может использовать другие нотации или предметно-ориентированные языки; основная идея — абстракция структуры и поведения, для которой UML является одним из хорошо поддерживаемых вариантов.

Methods for this concept

Related concepts