Оценка трудозатрат программиста. Утилита для подсчета количества строк.

Описание небольшой утилиты для подсчета количества строк в файлах исходных кодов. Для оценки трудозатрат на разработку программного обеспечения. Глупая необходимость.

Денис Заикин

Как бы это глупо не звучало, но трудозатраты программиста оценивают количеством строк кода, которые он написал. Это не решение нашего руководства, так требуют военные и другие гос заказчики.

Проблема в том, что посчитать количество строк в проекте, который насчитывает несколько десятков модулей (.c и .h файлов) не так просто, по крайней мере в Keil'е я такой информации не нашел. Буду рад если подскажите.

На первый раз я просмотрел каждый файл, нет не считал строки, а просто посмотрел в редакторе, благо номера строк указываются и всё сложил, да и проект был не большой, всего около 15 файлов.

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

Саму программу можно скачать на странице "Мой софт" называется LineCounter.

А теперь не много расскажу о программе.

Написана на C# .NetFW был выбран версии 2.0, так как она присутствует из коробки даже в Windows 7. Приложение консольное, это выбрано специально. Всё управление производится из командной строки с помощью аргументов.

counter.exe [/d DIR] [/m "MASK[|MASKn]"] [/n] [/sd] [/cm] [/cp] [/nc]

 Список и описание параметров.

  • /d DIR - Если параметр не задан сканирование будет происходить в директории приложения
  • /m "MASK|MASKn" - если параметр не задан сканирование будет происходить по маске *.с|*.сpp|*.h|*.s
  • /n - во время сканирования выводится имя файла и количество строк в нём
  • /cm - будет выведен отчет по каждой маске отдельно
  • /sd - сканирование будет происходить и в поддиректориях
  • /sp - результат подсчета будет скопирован в буфер обмена
  • /nc - не закрывать по окончании подсчета

Порядок самих параметров не важен.

Примеры использования:

counter.exe /d "d:\sources\poj1" /m "*.c|*.h" /sd /n /nc

Подсчитает строки во всех ".с" и ".h" файлах в директории "d:\sources\poj1" и её поддиректориях, выводя имя файла и количество строк в нём.

counter.exe /m "*.cpp" /sd /nc

Подсчитает строки во всех ".сpp" файлах в текущей директории и её поддиректориях.

counter.exe /sd /nc

Подсчитает строки во всех ".с", ".сpp", ".h" и ".s" файлах в текущей директории и её поддиректориях.

Использование с KEIL

  1. Открыть меню "Customize Tools Menu"
  2. Добавить новый элемент меню
  3. В поле "Command" ввести полный путь до исполняемого файла или выбрать нажав "..."
  4. В поле "Arguments" ввести параметры для приложения согласно описанию, для сканирования папок проекта необходимо значение параметра /d задать как "$P". То есть в итоге должно получиться /d "$P". Если необходимо вложеная папка, то пишем $Pfoldername, слитно без разделителей!
  5. Флажок "Run Independent" не устанавливаем, если хотим, что бы вывод производился в консоль Keil

Пример вывода в консоль Keil

D:\Программы\Counter\counter.exe /d "D:\Проеты\UPS\src\usr" /sd /cm
Программа для подсчета количества строк в файлах исходных кодов
Версия: 7.4.17.0                            Автор: Заикин Денис

Сканирование директории: 
D:\Проеты\UPS\src\usr
*.c
    ____________________
    файлов: 9
    строк: 1965
*.h
    ____________________
    файлов: 10
    строк: 870
_________________________________________
Файлов просмотрено:      19
Всего строк:           2835

Исходники, традиционно можно найти у меня в gitlab: linecounter