"Интерференция слоев" вместо декомпозиции -> генераторы прог
От: salog  
Дата: 07.05.08 02:36
Оценка:
ООП — это, в частности, метод проектирования основанный на декомпозиции на объекты- черные ящики. Взаимовлияние (говоря образно — интерференция) объектов — исключается.
Собственно — замкнутость, независимость, самостоятельность и внутрення неизменность "объектов" — основа ООП или разработки на библиотеках компонент.

Однако, такой подход — весьма грубое приближение к реальности. Как правило, в любых функционирующих системах, особенно в живых наблюдается взаимовлияние объектов не только на уровне согласования входа-выхода, но и в смысле взаимной адаптации, взаимопроникновения, размазывания, в вырожденном варианте — по типу принципа голограммы (каждый кусочек способен отражать целое).

Хороший пример — такая динамическая система как речь. Первоначальные попытки декомпозиции на фонемы потерпели фиаско. Выяснилось, что буква "а" это совершенно разная буква в зависимости от положения в слове и даже во фразе. Чтобы сгенерировать речь понадобилась не одна буква (звук) "а", а несколько десятков.
В данном случае, все равно все удалось свести к дискретному набору, выбору из готовых = стабильных вариантов. Но сделано это, конечно, весьма сложно, если не сказать топорно.

Предлагаю рассмотреть (а знатоки наверняка скажут что такое уже есть) метод автоматической генерации программ предусматривающий создание компонентов на лету на базе открытых шаблонов с изменяемыми частями с учетом не только первоначальных метаданных проектирования, но и с учетом возникающего в процессе генерации приложения взаимовлияния частей и слоев систены с последующей автоматичсекой "подгонкой" их под друг друга в работающую, согласованную и оптимизированую систему (мнимизация повторов функционала, вычислений, обращений к данным).

Как вариант:
Вероятно, для решения подходит матаппарат редукции графов. Следовательно, декомпозиция системы первоначально долдна происходить не на объекты — а на функции (характеристики).
Узлы — функции, ребра — отношения. Отношения могут быть нескольких типов.
Сочетание Узел+Отношение рождают Решение (заготовку шаблона, частично конкретизированный шаблон).
Уточняющие итерации с поглощением "ребер-отношений" в конце концов приводят к программе.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.