"На самом деле(tm)" тут очень интересная ситуация. Требуется решение прямой и обратной задачи. Я попытался рассмотреть "в деталях" как происходит написание кода (пока только у меня в голове, разумеется) и пришел к выводу, что это крайне нелинейный процесс состящий из этапов "моделирования/дизайна или преобразования модельных данных в\из форму переменных и создание алгоритмов", "валидации алгоритма", "анализа (мысленного) исполнения алгоритма на предмет "реализуемости" в языке" и свертки последнего в "программный код". Соответственно, в конце идет этап "верификации (тестирования)". И может присутствовать оптимизация на разных этапах. Это все давно известно, плюс-минус варианты. Интересно другое: в программном коде "растворена" исходная модель и "истинный" алгоритм работы. И для настоящего программирования (валидации и оптимизации) необходимо умение ее извлекать. Это называет "реверс-инженирингом" и это в-общем, непросто.
Боюсь, что непросто не отражает всей глубины проблемы (:
А кто мешает хранить рядом с кодом исходную модель и истинный алгоритм (раз уж они в каком-то виде присутствуют)? Тогда можно эволюционировать не код, а модель. А код из нее генерировать.
"Просто - все, что ты хорошо знаешь." Ну да, так и придется сделать, хоть это и неспортивно(tm), т.к. связь между программой и моделью односторонняя. Теперь важно не скатиться в описание модели на языке спецификаций, т.е. обычное программирование "в-профиль".
no subject
no subject
А кто мешает хранить рядом с кодом исходную модель и истинный алгоритм (раз уж они в каком-то виде присутствуют)? Тогда можно эволюционировать не код, а модель. А код из нее генерировать.
no subject