Как я могу сравнить похожие кодовые базы? - PullRequest
3 голосов
/ 22 сентября 2009

У нас есть несколько C ++ проектов, которые были построены из одной и той же кодовой базы. Между ними много общего и общего кода, но они были разработаны независимо; источник не был передан в любом случае. Классы и файлы будут переименованы, даже если базовый код не изменился, а отдельные строки будут изменены, изменены и заменены.

Я бы хотел иметь возможность сравнивать различные кодовые базы и выяснить, какая часть кода остается прежней. Это может быть довольно высокий уровень -% кода, который является тем же самым, хорошо. Мне также нужно иметь возможность автоматизировать этот процесс.

Есть ли инструмент, который я могу запустить на базах кода и получить какой-то отчет / оценку того, что часто встречается?

Ответы [ 4 ]

3 голосов
/ 22 сентября 2009

У меня нет большого опыта работы с подобными вещами, но это заставило меня вспомнить школьные годы, когда наш университет запускал любой код через программу для поиска мошенников. Это привело меня к следующей ссылке:

Обнаружение сходства исходного кода

Называет некоторое коммерческое программное обеспечение с открытым исходным кодом, которое должно соответствовать вашим потребностям.

2 голосов
/ 22 сентября 2009

Существует java-инструмент чувак , входящий в состав набора инструментов для реинжиниринга программного обеспечения MOOSE Ричарда Веттеля. Это задокументировано в его (магистерской?) Диссертации. MOOSE предоставляет гораздо больше, чем просто это, вы можете посмотреть на его Codecity.

Я использовал его на Java, C #, Delphi, XML. Это должно работать нормально на C ++ тоже. Для больших баз кода не забудьте выделить достаточно места в куче, и начните с простой метрики подобия.

0 голосов
/ 29 сентября 2009

См. Наш CloneDR , который обнаруживает точное и почти полное отсутствие дублирования кода. Вы можете применить это в своих двух системах, чтобы увидеть, что они разделяют. CloneDR работает для различных языков программирования, включая C ++.

0 голосов
/ 22 сентября 2009

Вероятно, это не решит вашу проблему полностью, но если вы хотите сравнить / изменить / объединить источники, я настоятельно рекомендую BeyondCompare из

http://www.scootersoftware.com/

Это лучшее на сегодняшний день. Насколько я знаю, он также используется создателями SO.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...