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