Метрики программного обеспечения для идентификации разработчиков по их стилю кодирования - PullRequest
3 голосов
/ 14 февраля 2012

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

Меня интересует либо указатель на коллекцию таких метрик или исследований, либо отдельные метрики. Они могут быть независимыми от языка или связаны с языковой или программной парадигмой.

Я хочу использовать его для понимания и анализа различных стилей кодирования, а не для выявления плагиата.

Ответы [ 2 ]

2 голосов
/ 02 апреля 2012

Я вижу, что уже есть пара исследований, которые изучали это. Они могут помочь.

  1. Котари Дж., Шеверталов М., Стеле Э., Манкоридис С., «Вероятностный подход к идентификации авторства исходного кода» , В материалах Международной конференции по Информационные технологии, с.243-248, IEEE, 2007.

    Доступно онлайн здесь

    Цитата из резюме:

    Мы начнем с вычисления набора метрик для построения профилей для группы известных авторов с использованием примеров кода, которые проверены на подлинность. Затем мы вычисляем метрики по неидентифицированному исходному коду, чтобы определить наиболее подходящий профиль соответствия. [...] В нашем случае мы можем определить авторство с точностью более 70% при выборе одного ближайшего совпадения и с точностью более 90% при выборе трех лучших упорядоченных ближайших совпадений.

  2. Шеверталов М., Котари Дж., Стеле Э., Манкоридис С., «Об использовании метрик дискретизированного исходного кода для идентификации автора» , В Известиях 1-й Международный симпозиум по поисковой инженерии программного обеспечения, с.69-78, IEEE, 2009.

    Доступно онлайн здесь , это продолжение предыдущего исследования.

  3. Ланге Р., Манкоридис С., «Использование метрических гистограмм кода и генетических алгоритмов для идентификации авторов для программной криминалистики» , В материалах 9-й ежегодной конференции по генетике и эволюции Вычисления, стр. 2082-2089, ACM, 2007.

    Доступно онлайн здесь

    Это также относится к первой ссылке (общий автор) и обсуждает метрики более подробно. Снова цитирую из резюме:

    Наш метод включает измерение различий в распределениях гистограмм для метрик кода. Определение комбинации метрик, которая эффективна при различении стилей разработчика, является ключом к полезности этого метода. Наше тематическое исследование включает 18 показателей.

Вы также можете использовать Google Scholar для других ссылок и для поиска других статей, основанных на вышеупомянутых (используя опцию "процитировано").

1 голос
/ 16 февраля 2012

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

Кроме того, если вас интересует код .NET, вы можете найти NDepend полезным инструментом.Он позволяет вам выполнять запросы к базе кода и поддерживает 82 метрики.

...