Критерии оценки компьютерных программ и баз данных
21.10.2009, 22:21
Оценка может проводиться по следующим группам критериев: количественные, когда для оценки программы используется некоторая количественная характеристика (или набор таких характеристик); генетические, т. е. критерии, определяемые той дисциплиной, в рамках которой программа создавалась; структурные, позволяющие определить, насколько хорошо программа организована как текст; прагматические, которые могут быть применены при сопоставлении программы и ее цели, если эта цель формально усматривается в тексте. Среди количественных критериев наиболее приемлемыми представляются топологические критерии - оценки сложности управляющего графа программы. Сложность программы (ее фрагмента, процедуры) оценивается по формуле Мак-Кейба цикломатическим числом ее управляющего графа, которое равно: m - n + 2, где m - число дуг; n - число вершин управляющего графа. Общепризнано, что цикломатическое число не должно превышать 0, в противном случае программа считается переусложненной и трудной для понимания, отладки, модификации и др. Генетические критерии оценки программы связаны с происхождением программы, с дисциплиной, для которой она создана. С помощью подобных критериев программа может быть оценена экспертами как хорошая или плохая. Структурные критерии оценки программы связаны с оценкой организации управления в программе и ее отражением в программном тексте. Хорошо структурированная программа имеет ряд достоинств: содержит аналогичную приемам построения рассуждений последовательность; обеспечивает наглядность, читаемость, понимаемость программы как текста (а значит, и хорошую способность к повторному использованию). В хорошо структурированной программе легко усматривается множество возможных процессов вычислений; технологична. Под прагматическими критериями понимается оценка того, насколько программный текст соответствует цели программы, которая может быть формально обнаружена в программном тексте. Оценка прагматичности складывается из следующих признаков: программа, как правило, в точности решает некоторую задачу, т. е. она не должна быть избыточной по отношению к своей задаче; те средства, которые выбраны для выражения алгоритма решения задачи, должны применяться естественным образом; результаты программирования не зависят от того, как будут выполняться неопределенные действия. Метод оценки стоимости программ для ЭВМ, написанных на одном из алгоритмических языков высокого уровня (Фортран, Ада и Си++), основан на сравнении оцениваемой программы с некоторой средней программой, стоимость которой определяется известными способами на основе цен, сложившихся в настоящее время на рынке программных продуктов. Данный метод предполагает оценку качества, а не интеллектуального уровня программы, поэтому такая важная характеристика, как эффективность, считается при этом свойством алгоритма, а не самой программы. Точно так же качество программы не связывается со степенью ее корректности - предполагается, что корректность достаточно убедительна, иначе оценку программы проводить вообще нецелесообразно. Стоимость оцениваемой программы складывается из средней стоимости действующих на рынке в момент оценки программ, увеличиваемой (уменьшаемой) в зависимости от суммарного воздействия на нее указанных критериев.