Увод у цикломатичку сложеност

Цикломатичку сложеност развио је Тхомас Ј. МцЦабе 1976. године. Препоручио је програмерима да рачунају сложеност модула на којима раде и да их поделе на мање модуле тако да кад год је цикломатска сложеност модула већа од 10. 10 је максимална цикломатичка сложеност за један програм. То је мерење сложености изворног кода које је повезано са бројним грешкама кодирања. Одређује независне стазе, што би било корисно програмерима и тестерима.

Ово помаже у тестирању софтвера и даје нам више самопоуздања да је сваки аспект нашег програма тестиран. Ово побољшава квалитет кода и такође помаже да се више концентришете на невидљиве стазе ако их има. Опћенито се израчунава развијањем графикона контролног тока кода који мјери број линеарно независних стаза кроз програм за прецизно мјерење сложености дијела кода. Ово помаже да се побољша квалитет софтвера.

Дефиниција

Цикломатична сложеност кода је број линеарно независних стаза унутар њега.

Како израчунати циклотну сложеност?

Израчунавање цикломатичне сложености програма врло је лако по следећој формули.

Цикломатска сложеност = Е - Н + 2П

  • Е => Не. ивица графикона
  • Н => Број чворова графикона
  • П => Број повезаних компоненти

Постоји алтернативна формула ако узмемо у обзир излазну тачку која се враћа до ваше улазне тачке. И створићете га као циклус.

Цикломатска сложеност = Е - Н + П

Цикломатска сложеност = Е - Н + 1

Имамо још један начин да то израчунамо. Ово је лакши начин.

  1. Нацртај граф
  2. Затим повежите излазну тачку са улазном тачком
  3. А затим пребројите рупе у графу

Погледајте следећу слику:

Ево неких напомена са графикона тока:

Ако тада још:

Док:

До-вхиле:

За:

Ако програм нема петље, његова сложеност је мања. Када програм наиђе на било коју петљу, сложеност се повећава.

Претпоставимо да имамо један ако је услов дефинисан онда смо добили сложеност као 2. Због услова имамо два услова Истинито и Лажно.

Ова техника се углавном користи у основном испитивању беле кутије. Цикломатичка сложеност представља минимум. тестова потребних за извршавање сваке стазе у коду.

Различити језици имају различите алате за мјерење цикломатичне сложености програма.

Кораци за израчунавање цикломатичке сложености су следећи

  1. Нацртајте дијаграм тока или дијаграм дијаграма из кода.
  2. Сада, у другом кораку проверите и идентификујте колико независних стаза има.
  3. Затим израчунајте цикломатичку сложеност према доле наведеној формули:

М = Е –Н + 2П

  1. Према пројекту мере мере тест случајеве.

Сада вам се може јавити питање како то заиста може израчунати. Кренимо напред и схватимо како ћемо то заправо израчунати.

Размотрите следећи пример Јава кода:

Овај програм израчунава фибонации серију као:

0 + 1 = 1

1 + 1 = 2

2 + 1 = 3

3 + 2 = 5

5 + 3 = 8

8 + 5 = 13

// Следећи програм је само да се одштампа серија фибонации

class Printno (
Public static void main(String() args)(
int max = 20 ;
int pre = 0;
int next = 1;
System.out.println(“The Fibonacii series is : ” +prev);
While(next<= max)(
System.out.println(next);
Sum = prev + next;
Prev = next;
Next =sum;
)
)
)

> јавац Принтно.јава

> јава Принтно

О / п:

Серија фибонације је: 0

1

1

2

3

5

8

13

Погледајте горњи програм. Пронаћи ћете је док је петља. Овај програм се састоји од само једне петље.

Сада је време за цртање графикона за то.

Графикон контролног тока као што следи:

Дијаграм тока

Да бисмо израчунали сложеност горе наведеног програма, прво морамо израчунати укупни бр. ивица:

Укупно бр. ивица: 6

Сада израчунајте укупан број чворова.

Укупан број чворова: 5

Формула: М = ЕН + 2п

М = 6 -5 + 2

М = 1 + 2

М = 3

Дакле, цикломатична сложеност овог програма је 3.

Комплексне кодове је тешко одржавати и ажурирати или модификовати. Као што сви знамо да цикломатичка сложеност не сме бити већа од 10.

Врсте сложености

Постоје две врсте сложености:

Суштинска сложеност :

Ова сложеност је врста кода коју не можемо игнорисати.

Нпр. Систем управљања летом је сложенији.

Случајна сложеност:

Као што име сугерира, јер се у систему догодило нешто попут исправљања грешака, крпљења, модификације итд. Углавном радимо само на сложености случајности.

Предности цикломатичне сложености:

  • Као једноставна логика, ако се сложеност смањи, погодније нам је разумети.
  • Ако је сложенији програм тамо, програмер треба да испита ниједну могућност не повећава.
  • Стазе бројене у сложености показују да је програм написан програмом сложен или да можемо наставити и смањити сложеност.
  • Смањује повезивање кода.
  • Претпоставимо да програм има цикломатску сложеност од 5. што значи да постоји 5 различитих независних стаза кроз методу.
  • То значи да је потребно 5 тест случајева да се примени овај код за тестирање.
  • Стога је увек добро добити мањи број за цикломатичну сложеност.
  • Овај поступак је потребан јер је јако спреман код врло тешко измијенити.
  • Што је већа сложеност кода, што значи да је код, такође је сложенији.

Алати који се користе за израчунавање цикломатичке сложености су

  • Цикло
  • ЦЦЦЦ
  • МцЦабе ИК
  • ГЦов
  • Буллсеие Цовераге
  • ПМД
  • ЛЦ2
  • Финдбугс
  • Јарцхитецт

Закључак

Цикломатична сложеност мерило је сложености програма. Ова мера нам помаже да схватимо потребни посао који треба обавити и колико ће софтвер бити софтвер. Цикломатична сложеност део је тестирања са беле кутије.

Препоручени чланци

Ово је водич за цикломатичну сложеност. Овде смо расправљали о начину израчунавања цикломатичке сложености? заједно са предностима и врстама сложености. Такође можете погледати следеће чланке да бисте сазнали више -

  1. Увод у Линук
  2. Увод у Ц ++
  3. Шта је ХТМЛ5?
  4. Шта је хибернација?

Категорија: