Разработка проекта на основе понимания смысла
Фундаментом смыслового подхода является моделирование. Основная задача состоит в получении качественной модели, отражающей суть предметной области. Смысловая модель содержит минимальное количество элементов, при удалении любого из элементов, модель перестаёт соответствовать оригиналу, то есть, перестаёт отражать смысл предметной области. Элементы, образующие смысловую модель, будем называть ключевыми элементами модели. Смысловая модель, содержащая ключевые элементы, является неполной. Полная смысловая модель включает в себя ключевые элементы и связи между ними.
Развитие смысловой модели, как правило, происходит в двух направлениях: горизонтальном и вертикальном. Горизонтальное направление подразумевает добавление к модели новых элементов, которые расширяют ключевые элементы и/или их связи. Добавление новых элементов не должно искажать её смысловое соответствие предметной области, а, следовательно, новые элементы не должны менять смысл ключевых элементов и связей между ними. Новые элементы добавляются для насыщения смысловой модели конкретным содержанием. При этом в близких предметных областях их конкретные содержания могут существенно отличаться друг от друга, при том, что единый смысл остаётся неизменным.
Вертикальное направление развития означает построение моделей, раскрывающих смыслы отдельных элементов, входящих в первичную смысловую модель (модель целого). Смысл элементов задаётся/определяется на уровне целого. Раскрытие смысла означает, что определяются под-элементы и связи между ними, аналогично тому, как раскрывался смысл целого. В свою очередь под-элементы можно развивать горизонтально, как было сказано выше и вертикально.
Основное преимущество смыслового моделирования состоит в том, что совместная работа делится на независимые части, что позволяет бесконфликтно работать большому коллективу. Каждый элемент и каждая связь между элементами имеют полное формальное описание, и при этом можно планировать горизонтальное развитие каждого элемента и связи, а значит каждый разработчик видит перспективу.
Независимо друг от друга разрабатываются не только элементы каждой подсистемы, но все уровни системы, поскольку смысл каждого элемента определяется на верхнем уровне и строго формально определяет интерфейс между уровнями. При этом, неизменность смысла гарантирует и постоянство интерфейса.
Независимость (параллельность) выполнения работ существенно облегчает администрирование, избавляет от постоянных согласований и внесения изменений, что значительно ускоряет разработку проекта, снижает конфликтность, трудозатраты и конечную стоимость продукта.