Классификация метрик сложности программ
Уменьшение сложности ПО обеспечивает снижение трудоемкости проектирования,
разработки, испытаний и сопровождения, обеспечивает простоту и надежность
производимого ПО и информационной системы в целом. Целенаправленное снижение
сложности ПО представляет собой многошаговую процедуру и требует предварительного
исследования существующих показателей сложности, проведения их классификации и
соотнесения с типами программ и их местоположением в жизненном цикле. В настоящее
время многообразие показателей, в той или иной степени описывающих сложность
программ, столь велико, что для их употребления требуется предварительное
упорядочение.
При оценке сложности программ, как правило, выделяют три основные группы
метрик:
метрики размера программ;
метрики сложности потока управления программ;
метрики сложности потока данных программ.
Метрики размера программ
Оценки первой группы метрик наиболее просты и, очевидно, поэтому получили
широкое распространение. Традиционной характеристикой размера программ является
количество строк исходного текста. Под строкой понимается любой оператор программы,
поскольку именно оператор, а не отдельно взятая строка является тем интеллектуальным
«квантом» программы, опираясь на который можно строить метрики сложности ее
создания. Непосредственное измерение размера программы, несмотря на свою простоту,
дает хорошие результаты. Конечно, оценка размера программы недостаточна для принятия
решения о ее сложности, но вполне применима для классификации программ, существенно
различающихся объемами. При уменьшении различий в объеме программ на первый план
выдвигаются оценки других факторов, оказывающих влияние на сложность. Таким
образом, оценка размера программы есть оценка по номинальной шкале, на основе которой
определяются только категории программ без уточнения оценки для каждой категории.
Типичным представителем этой группы метрик является метрика Холстеда [
3
].
Основу метрики Холстеда составляют четыре измеряемые характеристики
программы:
η
1
– число уникальных операторов программы, включая символы-разделители,
имена процедур и знаки операций (словарь операторов);
η
2
– число уникальных операндов программы (словарь операндов);
N
1
– общее число операторов в программе;
N
2
– общее число операндов в программе.
Опираясь на эти характеристики, получаемые непосредственно при анализе
исходных текстов программ, Холстед вводит следующие оценки:
словарь программы η = η
1
+ η
2
, длина программы N = N
1
+ N
2
;
объем программы V = N log
2
η (бит), где под битом подразумевается логическая
единица информации – символ, оператор, операнд;
η* - теоретический словарь программы, т.е. словарный запас, необходимый для
написания программы, с учетом того, что необходимая функция уже реализована
в данном языке и, следовательно, программа сводится к вызову этой функции.
Используя длину η*, Холстед вводит оценку
3
Холстед, М. Начало науки о программах / М. Холстед. – М.: Финансы и статистика, 1981.
𝑉̂ = 𝜂
∗
log
2
𝜂
∗
,
(6.1)
с помощью которой описывается потенциальный объем программы, соответствующий
максимально компактному тексту программы, реализующей данный алгоритм.
Достарыңызбен бөлісу: |