Fujitsu: Технология отслеживания изменений в ПО с открытым исходным кодом

Продукт
Разработчики: Fujitsu
Дата премьеры системы: 2016
Технологии: Средства разработки приложений

В мае 2016 года Fujitsu объявила о разработке технологии, которая оперативно находит измененные фрагменты исходного кода, включая вновь добавленные функции, для ускорения реализации проектов с использованием открытого программного обеспечения.

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

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

Fujitsu разработала две ключевых технологии для эффективного отслеживания изменений при обновлении крупномасштабного ПО с отрытым кодом.

1. Технология оперативного сравнения путей вызова функций с графическим отображением

При отслеживании изменений исходного кода между различными версиями одного и того же программного обеспечения внимание обращается на путь вызова определенной функции. Основываясь на этой методике, Fujitsu разработала технологию, которая, путем сравнения различий между двумя версиями исходного кода в каждой точке на пути вызова функции, уточняет цели для сравнения и отображает их графически для четкого понимания. Такой подход позволил на 44% сократить время, необходимое для выделения различий, по сравнению с существующими методиками объединенного сравнения.Дмитрий Бородачев, DатаРу Облако: Наше преимущество — мультивендорная модель предоставления облачных услуг

2. Технология эффективного поиска схожих имен

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

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



Подрядчики-лидеры по количеству проектов

За всю историю
2021 год
2022 год
2023 год
Текущий год

  Солар (ранее Ростелеком-Солар) (46)
  Финансовые Информационные Системы (ФИС, FIS, Финсофт) (15)
  Форсайт (11)
  Axiom JDK (БеллСофт) ранее Bellsoft (10)
  Бипиум (Bpium) (10)
  Другие (393)

  Солар (ранее Ростелеком-Солар) (8)
  Финансовые Информационные Системы (ФИС, FIS, Финсофт) (4)
  ЛАНИТ - Би Пи Эм (Lanit BPM) (2)
  IFellow (АйФэлл) (2)
  Консом групп, Konsom Group (КонсОМ СКС) (2)
  Другие (30)

  Солар (ранее Ростелеком-Солар) (10)
  Форсайт (3)
  Banks Soft Systems, BSS (Бэнкс Софт Системс, БСС) (3)
  КРИТ (KRIT) (2)
  Cloud.ru (Облачные технологии) ранее SberCloud (2)
  Другие (13)

  Солар (ранее Ростелеком-Солар) (6)
  Unlimited Production (Анлимитед Продакшен, eXpress) (4)
  МТС Exolve (Межрегиональный ТранзитТелеком, МТТ) (4)
  Форсайт (3)
  РЖД-Технологии (3)
  Другие (23)

  Unlimited Production (Анлимитед Продакшен, eXpress) (4)
  Солар (ранее Ростелеком-Солар) (3)
  МТС Exolve (Межрегиональный ТранзитТелеком, МТТ) (2)
  Naumen (Наумен консалтинг) (1)
  Нота (Холдинг Т1) (1)
  Другие (11)

Распределение вендоров по количеству проектов внедрений (систем, проектов) с учётом партнёров

За всю историю
2021 год
2022 год
2023 год
Текущий год

  Солар (ранее Ростелеком-Солар) (2, 48)
  Microsoft (41, 47)
  Oracle (49, 26)
  Hyperledger (Open Ledger Project) (1, 23)
  IBM (33, 18)
  Другие (607, 308)

  Солар (ранее Ростелеком-Солар) (1, 8)
  Финансовые Информационные Системы (ФИС, FIS, Финсофт) (1, 4)
  Microsoft (4, 3)
  Oracle (2, 3)
  SAP SE (2, 2)
  Другие (16, 19)

  Солар (ранее Ростелеком-Солар) (1, 11)
  Banks Soft Systems, BSS (Бэнкс Софт Системс, БСС) (1, 3)
  Форсайт (1, 3)
  Cloud.ru (Облачные технологии) ранее SberCloud (1, 2)
  Сбербанк (1, 2)
  Другие (9, 9)

  Солар (ранее Ростелеком-Солар) (1, 6)
  Unlimited Production (Анлимитед Продакшен, eXpress) (1, 6)
  МТС Exolve (Межрегиональный ТранзитТелеком, МТТ) (1, 4)
  Мобильные ТелеСистемы (МТС) (1, 4)
  SL Soft (СЛ Софт) (1, 3)
  Другие (14, 24)

  Unlimited Production (Анлимитед Продакшен, eXpress) (1, 4)
  Мобильные ТелеСистемы (МТС) (2, 3)
  Солар (ранее Ростелеком-Солар) (1, 3)
  МТС Exolve (Межрегиональный ТранзитТелеком, МТТ) (1, 2)
  Т1 (1, 1)
  Другие (14, 14)

Распределение систем по количеству проектов, не включая партнерские решения

За всю историю
2021 год
2022 год
2023 год
Текущий год

  Solar appScreener (ранее Solar inCode) - 48
  Hyperledger Fabric - 23
  Windows Azure - 20
  FIS Platform - 15
  Форсайт. Мобильная платформа (ранее HyperHive) - 12
  Другие 328

  Solar appScreener (ранее Solar inCode) - 8
  FIS Platform - 4
  Java - 2
  Турбо X - 2
  Парадокс: MES Builder - 2
  Другие 22

  Solar appScreener (ранее Solar inCode) - 11
  Форсайт. Мобильная платформа (ранее HyperHive) - 3
  BSS Digital2Go - 3
  Cloud ML Space - 2
  Axiom JDK (ранее Liberica JDK до 2022) - 1
  Другие 8

  EXpress Защищенный корпоративный мессенджер - 6
  Solar appScreener (ранее Solar inCode) - 6
  МТС Exolve - 4
  Форсайт. Мобильная платформа (ранее HyperHive) - 3
  РЖД и Робин: Облачная фабрика программных роботов - 3
  Другие 14

  EXpress Защищенный корпоративный мессенджер - 4
  Solar appScreener (ранее Solar inCode) - 3
  МТС Exolve - 2
  Т1: Сфера Платформа производства ПО - 1
  BSS Digital2Go - 1
  Другие 11