Ответ эксперта

Как отличить заимствование кода от совпадений из-за платформ и библиотек?

Вопрос по направлению: Экспертиза исходного кода на Java

Ответ

Совпадения в промышленных проектах на Java возникают постоянно и по естественным причинам. Значительная часть кода — это подключённые библиотеки, код, созданный инструментами и средой разработки автоматически, и обязательные конструкции применяемых платформ. В системах на Spring и Hibernate такой типовой части особенно много: описания компонентов, слои доступа к данным, отображение объектов на таблицы у двух независимых команд выглядят очень похоже. Поэтому первый шаг исследования — исключить всё это из сравнения; иначе схожими окажутся любые два проекта.

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

Итогом становится описание характера и объёма совпадений и признаков переработки кода. Вывод о нарушении прав из этого автоматически не следует — такую оценку даёт суд. Подробнее о задаче рассказано на странице сравнения исходного кода.

Актуализировано
Обсудить задачу

Нужна экспертиза или консультация?

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

  • Подберём специалиста
  • Поможем с вопросами
  • Оценим срок и стоимость
Оценить материалы или позвоните 8 (800) 333-24-09 Бесплатный звонок по России