TGViewer
Unity Architect: архитектура unity проектов Unity Architect: архитектура unity проектов @uniarchitect · 5.23K subscribers
Post #109 3.92K
НЕВЫРАЗИТЕЛЬНОСТЬ

Ранее я уже писал про построение диаграмм.
Тогда мои я смотрел на эту тему через призму практики.
Но спустя время у меня пара более весомых аргументов в пользу того что сила диаграмм недостаточна в разработке ПО.

1️⃣ аргумент:

Мысленный эксперимент:
🔹 Подумайте о фиче над которой вы работали(-ете) последнее время.
🔹 Попытайтесь формально и недвусмысленно представить себе ее описание или представление.
Со всеми связями, зависимостями и внутренними элементами.
🔹 А теперь опишите это так, чтобы человек который не имеет ни малейшего понятия об этом, смог в точности воспроизвести то, что вы описали.

Именно эта проблема емко выражается словом невыразительность:
🔻Невыразительность или Inexpressiveness — термин употребляемый чаще всего математиками, означающий невозможность как формально, так и строго выразить, смоделировать, представить описанную проблему.

И в отличие от физических, механических или геометрических конструкций в физическом мире, проектирование ПО осуществляется в абстрактном мире.
И то, чего достаточно для отображения физического мира не достаточно для абстрактного.

Отсюда 3ий закон инженерной разработки:
Теорема 1.3. Природа ПО проистекает из неосязаемости изучаемых абстрактных объектов, сложных внутренних связей программных систем, адаптивности к внешним объектам и окружения, и когнитивной сложности для их явного описания.
Software Engineering Foundations, Wang, p26

И следствие из него:
Следствие 1.2. Силы выражения диаграмм недостаточно в разработке ПО, поскольку они делают дизайн и спецификации расплывчатыми.


Архитектура ПО представляет собой создание сложных объектов, часто опирающихся на физический мир, с не менее сложными связями между ними.
И вся эта сложность может быть выражена только на уровне профессиональных обозначений или математически.

❗️Для понимания см. картинку к посту:
Т.е. не на уровне L1, L2 - уровне реальных объектов и диаграмм, а на уровнях L4, L5.

Именно эта разница вызывает проблему, упомянутую прошлой статье про диаграммы:
Очень сложно отразить адекватно все связи с реальным классом так, чтобы это было удобно воспринимать


2️⃣ аргумент:
Евгений Куприянов, который ведет канал Системный Сдвиг провел опрос среди подписчиков касательно использования UML на проектах.

Вот несколько выводов оттуда (цитирую, упрощая местами формулировки):
— Большинство аналитиков рисуют диаграммы, но многие не для того, чтобы разобраться или что-то спроектировать, а потому, что в документации есть такой раздел. Некоторые даже не знают, куда эта документация дальше пойдет.
— UML используется совсем не так, как был придуман. От всего UML осталась диаграмма последовательности (и она ого-го как используется!), диаграмма вариантов использования и диаграмма состояний.
— Диаграммы в основном скорее формальные, но не идеально формальные.

UML — как латынь для некоторых наук. Мёртв-не мёртв, а лучше знать хотя бы основы и понимать, как его правильно применять сейчас. Lingua Franca для разработки.


Выводы:
🔸Диаграммы недостаточно выразительны для точного описания сложных программных систем, что приводит к риску неправильного понимания и интерпретации.
🔸Архитектура ПО оперирует абстрактными объектами и связями, которые сложно адекватно передать с помощью диаграмм, особенно на уровнях, связанных с реальными объектами.
🔸UML и другие диаграммы часто используются формально и не всегда помогают в проектировании, что ставит под сомнение их практическую ценность в разработке ПО.
з.ы. жаль ребят кто должен рисовать схемы по долгу специфики работы (аналитики, поставил за вас свечку 🕯)

Более подробно, невыразительность, как одно из ограничений инженерной разработки, мы будем разбирать на моем курсе!
Посмотреть план курса 🫡

Сохраняй себе, чтобы не потерять и делись с коллегами 📞
Ставь 👍 если тебе заходит такого рода контент!

#software_engineering@UniArchitect
  • 👍 23
  • 🤪 2
More from @uniarchitect
  1. Jul 24, 2026Post #199
  2. Jul 12, 2026AI НЕ ДЕЛАЕТ ВАС ПРОДУКТИВНЕЕ Незыблемый факт: AI уже очень хорош в маленьких задачах. Нап…
  3. Jul 9, 2026Post #196
  4. Jul 7, 2026UNITY BUILD PIPELINE ПО КИРПИЧИКАМ Полгода назад я решил попробовать активность в блоге, г…
  5. Jul 4, 2026ПРОКЛЯТИЕ ПЕРЕИСПОЛЬЗУЕМОСТИ Делюсь болью. Я последние 5 лет на разных уровнях у разработч…
  6. Jun 29, 2026AI КАК РЕДАКТОР, А НЕ АВТОР Это вторая статья из серии про AI. Первая тут. Когда я запуска…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →