Существуют ли какие-либо инструменты, которые будут вычислять метрики кода (например, количество строк кода, цикломатическую сложность, взаимосвязь, согласованность) для вашего проекта и с течением времени создавать график, показывающий тенденции?
87
Ответы:
В своем последнем проекте я использовал SourceMonitor . Это хороший бесплатный инструмент для анализа метрик кода.
Вот выдержка с официального сайта SourceMonitor:
Для .NET помимо NDepend, который является просто лучшим инструментом, я могу порекомендовать vil .
Следующие инструменты могут выполнять анализ тенденций:
источник
Sonar - это определенно инструмент, который вы должны рассмотреть, особенно для проектов Java. Однако он также будет обрабатывать код PHP или C / C ++, Flex и Cobol.
Вот скриншот, на котором показаны некоторые показатели по проекту:
альтернативный текст http://sonar.codehaus.org/wp-content/uploads/2009/05/squid-metrics.png
Обратите внимание, что вы можете попробовать этот инструмент, используя их демонстрационный сайт по адресу http://nemo.sonarsource.org.
источник
NDepend для .net
источник
Я также искал инструмент / плагин для метрик кода для своей IDE, но, насколько я знаю, нет ни одного (для eclipse), который также показывает график сложности за указанный период времени. Однако я нашел плагин eclipse metrics , он может обрабатывать:
И, используя его, я не упустил вариант построения графиков, который вы ищете.
Я думаю, что если вы не найдете какие-либо плагины / инструменты, которые могут обрабатывать графики с течением времени, вам следует выбрать инструмент, который вам больше всего подходит и предлагает вам всю необходимую информацию; даже если данная информация предназначена только для текущей сборки вашего проекта.
В качестве дополнительного примечания, плагин eclipse metrics позволяет экспортировать данные во внешний файл (ссылка ведет к примеру), поэтому, если вы используете инструмент управления версиями, а вы должны!, Вы всегда можете экспортировать данные для конкретного создайте и сохраните файл вместе с исходным кодом, чтобы у вас все еще был (базовый) способ вернуться во времени и проверить различия.
источник
имейте в виду, что вы измеряете, то и получаете. loc ничего не говорит о производительности или эффективности.
оцените программиста по строкам кода, и вы получите .. строк кода. тот же аргумент относится и к другим показателям.
otoh .. http://www.crap4j.org/ - очень консервативный и полезный показатель. он устанавливает сложность по отношению к охвату.
источник
NDepend, я его и использую как нельзя лучше для этой цели. Проверьте это: http://www.codeproject.com/KB/dotnet/NDepend.aspx
источник
Что касается инструмента NDepend, он имеет 82 различных метрики кода, от количества строк кода до ранга метода (популярность), цикломатической сложности, отсутствия согласованности методов, процентного покрытия (извлеченного из NCover или VSTS), глубины наследования .. .
С помощью своей системы правил NDepend также может находить проблемы и оценивать технический долг, что является интересной метрикой кода (количество усилий разработчиков для исправления проблем по сравнению с количеством времени разработки, испорченного в год, чтобы проблемы не устранялись).
Все эти показатели подробно описаны здесь .
источник
Если вы находитесь в .NET пространство, Developer Express' CodeRush обеспечивает LOC, цикломатическая сложность и (довольно отлично, имхо) Обслуживание Сложность анализа кода в режиме реального времени.
(Извините за ссылку «Сложность обслуживания»; она попадает в кеш Google. Похоже, что оригинал - это автономный банкомат).
источник
Atlassian FishEye - еще один отличный инструмент для работы. Он интегрируется с вашей системой контроля версий (в настоящее время поддерживает CVS, SVN и Perforce) и таким образом анализирует все ваши файлы. Однако анализ довольно прост, и сам продукт является коммерческим (но по очень разумной цене, IMO).
Вы также можете получить для него надстройку под названием Crucible, которая упрощает экспертную проверку кода.
источник
Для Visual Studio .NET (по крайней мере, C # и VB.NET) я считаю, что бесплатные StudioTools чрезвычайно полезны для измерения показателей. Он также добавляет ряд функций, имеющихся в коммерческих инструментах, таких как ReSharper .
источник
Code Analyzer - это простой инструмент, который генерирует такие метрики.
(источник: teel.ws )
источник
Для Python pylint может предоставить некоторые показатели качества кода.
источник
Также есть плагин метрик кода для отражателя , если вы используете .NET.
источник
Я бы порекомендовал Code Metrics Viewer Exention для визуальной студии.
Очень легко сразу проанализировать решение, также сделайте сравнение, если вы добились прогресса ;-)
Подробнее об особенностях читайте здесь
источник
Что касается PHP, я считаю, например, что phpUnderControl включает метрики через phpUnit (если я не ошибаюсь).
Помните, что метрики часто бывают ошибочными. Например, кодер, работающий над тривиальными проблемами, создаст больше кода и будет лучше смотреться на ваших графиках, чем кодер, который взламывает сложные проблемы.
источник
Если вам нужен анализ тенденций, действительно ли это означает что-то, что нужно измерить, помимо SLOC?
Даже если вы просто выполняете команду grep для завершающих точек с запятой и подсчитываете количество возвращенных строк, вам нужна согласованность в методике измерения SLOC. Таким образом, сегодняшнее измерение можно значимо сравнить с измерением в прошлом месяце.
Я действительно не могу понять, что даст тренд циклометрической сложности МакКейба? Я думаю, что CC следует больше использовать для моментального снимка качества, чтобы обеспечить обратную связь с разработчиками.
Изменить: Ооо. Просто подумал о паре других измерений, которые могут быть полезны. Комментарии в процентах от SLOC и тестового покрытия. Ни то, ни другое вы не хотите упускать. Возвращаться к модификациям любого из них никогда не было так хорошо, как делать их "в самый разгар момента!"
HTH.
ура,
Роб
источник
Scitools 'Understand действительно может генерировать для вас множество метрик кода. У меня нет большого опыта работы с функциями метрик кода, но функции статического анализа в целом были хорошими, а цена была очень разумной. Поддержка была отличной.
источник
Project Code Meter предоставляет отчет о дифференциальной истории разработки (в формате Excel), который показывает ваши показатели прогресса кодирования в SLOC, времени и процентах производительности (оценка времени основана на цикломатической сложности и других показателях). Затем в Excel вы можете легко построить нужный график.
см. эту статью, которая описывает это шаг за шагом: http://www.projectcodemeter.com/cost_estimation/help/FN_monsizing.htm
источник
Для Java вы можете попробовать наш инструмент QualityGate, который вычисляет более 60 показателей исходного кода, отслеживает все изменения во времени, а также предоставляет общую оценку ремонтопригодности исходного кода.
источник