Модификация программы
В процессе функционирования отлаженного программного обеспечения возможно обнаружение в нем ошибок (так называемые подводные камни) и появление необходимости модификации и расширения его функций.
Под модификацией понимается внесение изменений в уже отлаженную и правильно функционирующую программу. Такие изменения связаны в основном с изменением алгоритма решения задачи, а также с созданием любого достаточно сложного комплекса программ.
Внесение даже простых изменений в программу большого объема и сложной структуры — это далеко не тривиальная задача, так как они затрагивают большое число управляющих и информационных связей, что может вызвать появление нежелательных эффектов.
Как правило, программист не в состоянии предвидеть все подобные эффекты, и для того, чтобы быть уверенным в работоспособности модифицированной программы, повторно осуществляет процесс отладки и верификации модифицированной программы.
Однако задача модификации программ существенно упрощается, если программисту будут автоматически сообщаться возможные эффекты необходимого изменения и связанные с данным изменением потенциальные места появления ошибок.
Для такой автоматизации можно использовать технику, применяемую при оптимизации программ, а именно, методы и алгоритмы, осуществляющие глобальный анализ управляющих и информационных связей программы.
Методы, используемые при оптимизации программ, поз-воляют более целенаправленно модифицировать программу за счет явного проявления изменений, вносимых в управляющий и информационный графы программы.
Автоматизация процесса модификации программ (помимо своего прямого назначения) облегчит выполнение отладки и верификации программ, так как эти процессы тесно связаны между собой.
Опыт построения систем, являющихся прообразом систем модификации программ, позволяет говорить о некотором стандартном наборе моди-фикационных процедур, аналогичных оптимизационным процедурам. Выделение набора модификационных процедур позволяет строить системы модификации программ так же, как системы оптимизации программ.
Здесь также следует подчеркнуть, что в связи со сложностью управляющих и информационных связей программы, управ-ляемая модификация, в частности, диалог человек—ЭВМ, имеет особое значение в системах модификации программ (так же, как и в системах оптимизации программ и в других рассмотренных системах).
Назад