Качество программ принято характеризовать числом ошибок на 1000 строк кода. Эта характеристика получается в результате регрессионного анализа числа выявленных ошибок в последовательных версиях кода с последующей экстраполяцией в отдаленное будущее. Данная процедура является очень трудоемкой даже для крупных компаний. Проверить достоверность такой оценки для обычных пользователей как правило довольно сложно. Такая проблема возникает из-за недоступности исходных данных. Существуют различные способы оценки числа ошибок в программе, например, модель Шумана, Муса, Ла Падула, Джелинского-Моранды, Шика-Волвертона, модель переходных вероятностей, статистическая модель Миллса, простая интуитивная модель, модель Липова, Коркорэна, Бернулли, Нельсонаи т.д.. Часто приходится иметь дело с программами, в которых формально нет ошибок, при этом их качество на первый взгляд не очевидно. В данной статье предложен новый метод количественной оценки качества программ, написанных на языке Perl. Данный метод позволяет выявить места в программах, где могут быть допущены ошибки. В отличие от существующих алгоритмов данный метод позволяет оценивать качество программы, анализируя стиль написания ее кода. Предлагаемый метод оценки качества применим к любым программам, написанным на алгоритмических языках высокого уровня с открытыми кодами (Python, Perl, PHP и т. д.).В том числе его можно использовать для сравнения качества и выбора программ, решающих одну и ту же задачу. The program quality is used to be characterized with error number per 1000 code lines. This parameter is calculated by a statistical regressive analysis of error numbers for successive code versions, with a subsequent extrapolation for the future. This procedure is very tedious even for large companies. It is very hard to verify this estimate for common users, as they have no initial data. There are a lot of methods to estimate code error number, e.g., models Shooman, Musa, Bell-LaPadula, Jelinski-Moranda, Schick-Wolverton, Mills, Lipov, Corcoran, Bernoulli simple intuitive software reliability model, Nelson's software reliability. But often we deal with programs that formally have no errors, at the same time their quality is not evident. The method is proposed to estimate quantitatively a code quality for Perl-routines. This method can identify weaknesses in certain program components, where errors are possible. The proposed method is based on programming style analysis. The method is applicable for any programs with open sources (Python, Perl, PHP, etc). The method can be used for quality comparison and choice of the programs solving similar tasks.
Read full abstract