Причины, которые значительно усложняют поддержку и развитие крупных программных продуктов. Определение схожести фрагментов кода. Процесс поиска клонов. Основные операции во время кодирования. Нативный алгоритм сравнения. Способы оптимизации алгоритма.
Аннотация к работе
Применение методов поиска дублирующегося кода в процессе разработки программного обеспеченияДубликаты (клоны) - это фрагменты кода, которые полностью идентичны другим фрагментам кода или похожи на них (то есть совпадают за исключением некоторых параметров, например, имен переменных). Для определения схожести фрагментов кода введем функцию S, множество допустимых значений которой лежит на отрезке [0, 1], т.е. В общем случае алгоритм сравнения двух фрагментов кода должен использовать анализ строк (string matching) и возвращать логическое значение «истина», если фрагменты совпадают, или «ложь» в противном случае. Согласно [1] процесс поиска клонов всегда включает два основных этапа: трансформацию кода и дальнейшее сравнение этого кода. На этапе трансформации необходимо решить как минимум две проблемы: характер преобразования кода и минимальный размер фрагмента, который будет рассматриваться в качестве единицы кода.