Салют! Сегодня на повестке дня - «Что такое UML? Это не язык, это — алфавит»
Часть 1:
Часто представляют, что UML — это единый язык для описания всего. Это не совсем так.
UML (Unified Modeling Language) — это, в первую очередь, набор нотаций. Как алфавит. Вы же не пишете все подряд, используя все буквы сразу? Вы составляете из букв слова, а из слов — предложения, подходящие для конкретной ситуации.
Так и с UML. Это инструментарий с правилами, из которого вы выбираете нужную «диаграмму» для решения конкретной задачи.
❓Для чего его используют? Главное — донести мысль.
Основная цель UML — визуализировать, специфицировать, проектировать и документировать артефакты разрабатываемой системы.
Проще говоря, чтобы:
1. Понять самому. Разложить сложную систему на части и увидеть взаимосвязи.
2. Объяснить другим. Донести архитектурные идеи до команды разработчиков, стейкхолдеров, тестировщиков.
3. Зафиксировать договоренности. Создать документацию, которая станет источником истины.
🧑💻 Как часто используют? Реальность против идеала.
Здесь есть разрыв между «как в книгах» и «как в жизни».
- В классических водопадных (Waterfall) проектах UML использовали часто и много, создавая полный комплект документации на этапе проектирования.
- В современных гибких методологиях (Agile, Scrum) подход изменился. Полные, детализированные диаграммы, которые долго рисовать и поддерживать, — это анти-паттерн. Они устаревают быстрее, чем код.
📈 Сегодня UML используют выборочно и прагматично:
- «На салфетке» (on a napkin). Быстро набросать схему взаимодействия на доске или в миро/ FigJam во время обсуждения. Это 80% пользы от UML.
- Для ключевых, сложных моментов. Описать архитектуру системы (Component Diagram), сложное бизнес-правило (State Machine Diagram) или запутанный процесс (Activity Diagram).
- В документации на высокоуровневом уровне. Чтобы новые члены команды или стейкхолдеры могли быстро войти в курс дела.
‼️Вывод: UML жив и актуален, но не как объемный документ, а как инструмент для коммуникации и проработки сложных мест.
_______________
🤝 В связке с какими нотациями используют?
1. BPMN (Business Process Model and Notation) — лучший друг и дополнение.
Это самая распространенная связка. BPMN идеально подходит для моделирования бизнес-процессов: кто, что, кому передает, какие решения принимает. Это взгляд бизнеса.
UML подхватывает эстафету на уровне системных требований и архитектуры.
· Пример: Сначала вы описываете процесс «Оформление заказа» в BPMN (с участием Клиента, Менеджера, Курьера). Затем вы берете часть этого процесса, которую должна автоматизировать система, и детализируете ее на UML Sequence Diagram (какие сообщения передаются между фронтендом, бэкендом и базой данных) или UML Activity Diagram (логика внутри системы).
2. User Stories / Use Cases.
Текстовая пользовательская история («Как [Пользователь], я хочу [сделать что-то], чтобы [получить пользу]») часто слишком абстрактна.
Ее прекрасно дополняет:
· UML Use Case Diagram: чтобы показать границы системы и всех акторов.
· UML Activity Diagram: чтобы детализировать сценарий успешного выполнения и альтернативные сценарии.
3. C4 Model (Context, Containers, Components, Code).
C4 — это современный и очень популярный подход для описания архитектуры программного обеспечения. Многие диаграммы C4-модели (особенно на уровнях Component и Code) можно прекрасно рисовать с использованием нотаций UML (Component Diagram, Class Diagram). C4 дает структуру, а UML — конкретный синтаксис.
Выбор всегда за вами, с чем компоновать UML, и вообще компоновать ли.
Продолжение следует 👇
Источник: @ba_and_sa
Post #2509
3.57K

- ❤ 8
- 👍 6