Лекция Модели качества программного обеспечения Цель лекции: курса. План лекции


Метрики сложности потока управления программ



Pdf көрінісі
бет5/7
Дата19.09.2023
өлшемі0,7 Mb.
#181616
түріЛекция
1   2   3   4   5   6   7
Байланысты:
Лекция -06 2020

Метрики сложности потока управления программ 
Вторая наиболее представительная группа оценок сложности программ – это 
метрики сложности потока управления программ. Типичными представителями этой 
группы является метрика МакКейба. Как правило, с ее помощью оперируют либо 
плотностью управляющих переходов внутри программ, либо взаимосвязями этих 
переходов. И в том и в другом случае стало традиционным представление программ в виде 
управляющего ориентированного графа 
G = {V, E} 
где V – вершины, соответствующие операторам; Е – дуги, соответствующие переходам. 
Метрика МакКейба. 
Впервые графическое представление программ было предложено Т. Дж. МакКейбом 
[
4
]. В ее основе лежит идея оценки сложности ПО по числу базисных путей в управляющем 
графе, т.е. таких путей, компонуя которые можно получить всевозможные пути из входа 
графа в выходы. Основной метрикой сложности МакКейб предлагает считать 
цикломатическую сложность графа программы, или, как ее еще называют, 
цикломатическое число МакКейба, характеризующее трудоемкость тестирования 
программы. 
Для вычисления цикломатического числа МакКейба Z(G) применяется формула 
Z(G) = m – n + 2r, 
(6.2) 
где m – количество дуг (ребер) ориентированного графа G; n – количество вершин; r – 
количество компонент связности графа. 
Количество компонент связности графа можно рассматривать как количество дуг, 
которые необходимо добавить для преобразования графа в сильносвязный. Сильносвязным 
называется граф, любые две вершины которого взаимно достижимы. Для графов 
корректных программ, т.е. графов, не имеющих недостижимых от точки входа участков и 
«висячих» точек входа и выхода, сильносвязный граф, как правило, получается путем 
замыкания дугой вершины, обозначающей конец программы, на вершину, обозначающую 
точку входа в эту программу. По сути, Z(G) определяет количество линейно независимых 
контуров в сильносвязном графе. Иначе говоря, цикломатическое число МакКейба 
показывает требуемое количество проходов для покрытия всех контуров сильносвязного 
графа или количество тестовых прогонов программы, необходимых для исчерпывающего 
тестирования по критерию «работает каждая ветвь». 
К достоинствам меры относят простоту ее вычисления и повторяемость результата, 
а также наглядность и содержательность интерпретации. В качестве недостатков можно 
отметить: нечувствительность к размеру ПО, нечувствительность к изменению структуры 
ПО, отсутствие корреляции со структурированностью ПО, отсутствие различия между 
конструкциями «развилка» и «цикл», отсутствие чувствительности к вложенности циклов. 
Недостатки цикломатической меры привело к появлению ее модификаций, а также 
принципиально иных мер сложности. 
4
Watson, Arthur Н. Structured Testing: ATesting Methodology Using Cyclomatic Complexity Metric [Электронный 
ресурс] / Arthur H. Watson, Thomas J. McCabe // NIST Special Publication 500-235.—1996. — URL: 
http://hissa.nist.gov/HHRFdata/ Artifacts/ITLdoc/235/title.htm. 




Достарыңызбен бөлісу:
1   2   3   4   5   6   7




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет