Часто оказывается, что предметная область богаче и шире предоставляемых языком средств описания. Например, что даёт нам Оберон?
- базовые типы
- структуры
- процедуры
- модули
Собственно, всё. Несмотря на то, что эти средства довольно выразительны и из них можно строить бесконечные комбинации, они слишком "широки" и недостаточно "глубоки". И это кажется проблемой. Я пока не могу толком сформулировать вопрос, который находится где-то между проектированием и конечным продуктом и связан с описанием абстракций предметной области.
Другими словами, ООП ощущается несколько слабым для хорошего, мощного и удобного описания предметной области. Мелковат. Приходится, грубо говоря, из мелких винтиков и дощечек лепить вещи, которые удобнее было бы описывать через более крупные и специализированные понятия.
Функциональные языки и прочие руби со скалами - жалкие потуги обрести способы такого описания, как мне кажется - не сочтите за троллинг, потому что не сильно далеко они ушли от обыкновенного ООП как способа нарезать реальность на куски.
Что может нам предложить программная инженерия в XXI веке для решения этой проблемы? Или мне только кажется, что это проблема?
Что касается описания предметной деятельности, то и я не раз задумывался об этом.
В любом случае потребуется доходить до уровня винтиков и болтиков если не на уровне байтов, то на уровне минимальных элементов описания деятельности. А на их основе строить саму спецификацию.