Софтуерна метрика

Софтуерна метрика (Английска софтуерна метрика) - мярка, която ви позволява да получите числовата стойност на определено свойство на софтуера или неговите спецификации.

Тъй като количествените методи са работили добре в други области, много компютърни теоретици и практици са се опитали да превърнат този подход в разработването на софтуер. Както каза Том ДеМарко, "Не можете да контролирате това, което не можете да измерите.".

Наборът от използвани показатели включва:

Потенциални недостатъци на подхода, към който е насочена критиката:

  • Неетично: Твърди се, че е неетично да се преценява производителността на програмиста по показатели, въведени за измерване на ефективността на програмния код. Такива добре познати показатели като броя на редовете на кода и цикломатичната сложност често дават повърхностна представа за „успеха“ при избора на един или друг подход при решаването на възложените задачи, но те често се разглеждат като инструмент за оценка качеството на работата на разработчика. Този подход често води до обратен ефект, което води до появата на по-дълги конструкции и излишни незадължителни методи в кода.
  • Замяна на „управление на хора“ с „управление на числата“, което не отчита опита на служителите и другите им качества
  • Изкривяване: Процесът на измерване може да бъде изкривен от факта, че служителите са наясно с измерените стойности и се стремят да оптимизират тези показатели, а не тяхната работа. Например, ако броят на редовете на изходния код е важен показател, тогава програмистите ще са склонни да пишат възможно най-много редове и няма да използват техники за опростяване на кода, които намаляват броя на редовете.
  • Неточност: Няма показатели, които да са едновременно смислени и достатъчно точни. Броят на редовете на кода е просто броят на редовете; този индикатор не дава представа за сложността на проблема, който се решава. Анализът на функционалните точки е проектиран за по-добро измерване на сложността на кода и спецификацията, но използва личната преценка на измервателя, така че различните хора ще получат различни резултати.