Технология Fujitsu для отслеживания изменений в ПО с открытым кодом
Компания Fujitsu объявила о разработке технологии, которая оперативно находит измененные фрагменты исходного кода, включая вновь добавленные функции, для ускорения реализации проектов с использованием ПО с открытым кодом.
Открытое ПО подразумевает свободный доступ к исходному коду, который может быть многократно изменен с добавлением и удалением функций без точной фиксации переработанных участков кода. При разработке с использованием открытого ПО часть изменений может вноситься отдельными пользователями, но существует и множество правок, которые делаются параллельно большим количеством разработчиков. Это значит, что пользователь должен подтвердить исправления в исходном коде до и после изменений ПО. Иначе говоря, изменения необходимо проверить в десятках тысяч файлов исходного кода на предмет обнаружения текстовых различий или путем визуальной проверки различий в структуре вызовов функций, что потребует много времени и усилий.
При детальных проверках исходного кода вручную, например после обнаружения различий, можно указать часть имени функции и сузить области для проверки, используя функцию выборочного поиска, которая отображает варианты, соответствующие этому фрагменту кода для каждого отдельного случая. В крупномасштабном ПО существует огромное количество функций, которые необходимо проверить, и множество функций с аналогичными именами, так что такой поиск занимает слишком много времени.
Fujitsu разработала две ключевых технологии для эффективного отслеживания изменений при обновлении крупномасштабного ПО с открытым кодом. Это технология оперативного сравнения путей вызова функций с графическим отображением и технология эффективного поиска схожих имен.
Технология оперативного сравнения путей вызова функций предполагает, что при отслеживании изменений исходного кода между версиями одного и того же ПО внимание обращается на путь вызова определенной функции. Основываясь на этой методике, Fujitsu разработала технологию, которая, выявляя различия между двумя версиями исходного кода в каждой точке на пути вызова функции, уточняет цели для сравнения и отображает их графически для четкого понимания. Такой подход позволил сократить время, необходимое для выделения различий, по сравнению с существующими методиками объединенного сравнения.
Технология эффективного поиска схожих имен основана на том, что в крупномасштабном открытом ПО существует множество функций с одинаковыми именами. При вводе для поиска имени функции появилась возможность искать совпадения для тех частей, которые имеют высокий уровень реагирования. Это реализовано за счет разработки структуры данных, которая нумерует и заранее хранит соответствующие результаты поиска для различных комбинаций введенных символов.
Благодаря новым разработкам стало возможным систематически выполнять поиск измененных пунктов ПО на основании соответствующих путей вызова функций. В результате, для программы, содержащей 3,8 млн строк кода и порядка 400 измененных пунктов, время, потраченное на поиск пунктов, сократилось в 4 раза по сравнению с предыдущими попытками поиска: с 26 часов до примерно 6,5 часов.
В Fujitsu рассчитывают, что новые технологии помогут не только уменьшить расходы на разработку, но и популяризировать использование ПО с открытым исходным кодом. В будущем значительно расширится количество поддерживаемых языков, включая языки сценариев, а коммерческое распространение технологии Fujitsu планирует начать в 2016 финансовом году.