Моделирование программного обеспечения и UML
Моделирование программного обеспечения представляет систему посредством абстракций, которые отражают ее структуру и поведение, а унифицированный язык моделирования (UML) является стандартной графической нотацией для выражения таких моделей.
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 является одним из хорошо поддерживаемых вариантов.