Определите SLOC и сложность C # и C ++ из .NET
Вопрос
Я использую SourceMonitor в своем проекте в течение нескольких лет, чтобы вести учет сложности исходного кода и базового SLOC (включая комментарии) для компонентов C # и C ++.Они используются для внешней отчетности перед нашим заказчиком, поэтому я не в состоянии оспаривать их достоинства или недостатки.
Я работал над инструментом анализа репозитория, который способен предоставить мне мгновенный обзор проекта в любую дату / время.Следующий этап, который я хочу добавить, - это кэширование показателей для указанного файла и редакции.
Я знаю, что SourceMonitor может быть написан по сценарию, позволяющему мне предоставлять файлы для тестирования и извлекать показатели из результирующего файла CSV или XML.
Есть ли собственная библиотека в .NET, которую я мог бы использовать для выполнения того же самого - напримеризбегайте создания внешнего процесса и синтаксического анализа результатов.
Мне действительно нужны только следующие показатели:
- СЛОК
- Количество строк комментария
- Сложность самого сложного метода
- Название наиболее сложного метода
Мне нужно запустить это дальше C# код и обычный C++ код.
Редактировать:поскольку у меня уже есть инструмент, который предоставляет графический интерфейс и отчеты, которые я хочу, показатели должны быть написаны сценарием или сгенерированы с использованием библиотеки / API без ручных действий.В идеале я хочу получить показатели для указанного файла / редакции (а не для всего проекта), которые моя утилита автоматически перетащит из системы управления версиями.
ПРИМЕЧАНИЕ:Я назначил вознаграждение за это и был в отпуске, когда срок его действия истек...ответ NDepends МЕНЯ НЕ удовлетворяет, поскольку он рассматривает не исходный код, а саму сборку!!!
Решение 5
Хотя я так и не нашел продукт .NET, который мог бы одинаково анализировать C # и C ++, мне удалось найти простой в использовании продукт, КОДОВОЕ КОЛИЧЕСТВО который поддерживает эти языки и многие другие.
У него простая командная строка, в отличие от SourceMonitor, который использовался в моем проекте до тех пор, пока CODECOUNT не заменил его.
Другие советы
Вы можете найти открытый исходный код для C # SLOC и комментарии здесь: http://code.google.com/p/projectpilot/source/browse/#svn/trunk/ProjectPilot .Структура/Показатели
Надежным инструментом для вычисления SLOC на основе командной строки является Клок.Он поддерживает множество языков, включая C # и C ++.Поддерживаемые форматы вывода - xml, CSV и sql.
Это не усложнит вам работу и не поддается написанию сценариев (насколько я знаю), но в SlickEdit Gadgets для VS есть отличный инструмент создания отчетов SLOC, который вы можете использовать в обозревателе решений и который предоставит вам подробный отчет на уровне файла, проекта или решения.
Вы можете получить его здесь: http://www.slickedit.com/content/view/441