streda 21. januára 2009

Ako spočítať SLOC

Pri diskusii o veľkosti softwarového projektu, pri odhadovaní ceny projektu alebo nebodaj pri porovnávaní jednotlivých projektov je nutné používať jednotnú metodiku. In-house riešenia založené na

find . -name *.java | xargs wc -l | awk '{$c=$c+$1}END{print $c}'

síce čo-to napovedia, ale veľkí chlapci radšej siahnu po niečom trošku dômyselnejšom. Zo súčtu treba totiž odfiltrovať riadky s komentármi, prázdne riadky, includy, proste všetok balast. Tieto sú v rôznych jazykoch rôzne definované, teda pre každý jazyk potrebujeme spraviť samostatný filter.

Pri príprave jednej prezentácie som potreboval porovnať dva pomerne veľké projekty napísané v mixe rúznych jazykov (java, c, c++, python, shell, awk, ...).

Opensourcový free projekt SLOCCount mi poskytol množstvo informácií v priebehu pár sekúnd. Pozná 27 jazykov a ich mutácií (.C/.cpp/.cxx/.cc identifikuje ako c++, .php/.php[3456]/.inc ako php, ...) a je dostupný ako céčkový zdroják alebo ako rpm pre RedHat Linux 9 na Inteli. Dokonca počíta aj cenu diela podla COCOMO metodiky.

Jediným obmedzením použitia je nutnosť pri výsledkoch uviesť "generated using David A. Wheeler's 'SLOCCount'".

[SLOC | SLOCCount | COCOMO]

Žiadne komentáre: