Minőségi kritériumok szoftver - Kivonat, 7. oldal

Azon kívül, hogy közvetlen célja a gyakorlatban a metrikus hossza a program (3) és a hossza a végrehajtás (2) lehet használni kimutatására tökéletlenségek programozás. Ha a hossza a program végrehajtását a hossza a számítások térhet el több mint tíz százalékkal, ezt jelzi a lehetséges jelenléte a programban a következő hat osztálya hibák:

A szekvenciák jelenlétére komplementer az üzemeltetőket, hogy az azonos operandus, például, A + C-A.

Szabad kétértelmű operandusok, például, A = D és A = C

Szabad szinonimája operandusok, például, A = B és T = B.

A jelenléte közös részkifejezésekre, például (A + B) S + D (A + B).

Felesleges feladatokat, mint például a C = A + B, ha a változó C használjuk a program csak egyszer.

Szabad kifejezések, amelyek nincsenek jelen az összecsukott állapotban a termék a tényezők, például XX + 2XY + YY nem képviseletében a (X + Y)  (X + Y).

Végrehajtása N hosszúságú (2) lehet használni, hogy előre jelezzük a tényleges száma gépi utasítások kifejezés alkalmazásával P

vagy több durván egyenlőtlenségek

Az egyenlet munkák (9) lehet használni, hogy értékelje a gazdasági felhasználásának hatékonyságát egy programozási nyelv. A relatív csökkenése programozási szinttől függően a használt nyelv mutatójaként az végrehajtásának hatékonyságát a programozási nyelv egy ipari gyakorlatban.

0L1 program szintjén lehet használni, hogy értékelje a bonyolultsága a megvalósítások algoritmus D (a kisebb memória költségek, a bonyolultabb változata a program):

Megjegyezzük, hogy a szintje a program kettős szerepe az értékelésben a nehéz vagy könnyű megérteni azt. A szakember, aki ismeri a nyelvet, hogy megértsék a program gyorsabban, mint kisebb, mint az az összeg, amely felett. De hogy valaki kevésbé járatos programozás miatt nagyobb forgalom és az alacsonyabb szinten. Azt találtuk, hogy minden leírt algoritmus különböző nyelveken, a növekvő hangerő szoftverek VL csökken azonos arányban. Ezért a termék szintű programozása térfogat állandó, potenciális térfogatával egyenlő végrehajtásának ezen algoritmus.

L  V = V * = const. (20)

Azonban, ha a nyelv nem változott, és csak akkor módosítsa az algoritmus, az egyes potenciális termék nyelvi programok térfogat állandó szinten marad, az egyenlő szintű nyelv [14]

L  V =  = const. (21)

1.3.6 Mérések ciklomatikus komplexitás McCabe

Indicator ciklomatikus komplexitás egyik leggyakoribb mérésére összetettségét szoftver projektek. Ez a mutató tudósai fejlesztették McCabe 1976, tartozik a csoport mutatóinak program bonyolultsága ellenőrzési folyamatok és az alapján kell kiszámítani a grafikont a vezérlő logika a program (control flow graph). Ez a grafikon van kialakítva, mint egy irányított gráfban, amelyben szereplők vagy számítási kifejezések képviseletében a csomópontok, és a vezérlő közötti transzfer csomópontok - formájában ívek.

Ciklomatikus komplexitás index lehetővé teszi számunkra, hogy ne csak értékelni a komplexitás végrehajtásának egyes elemeit a szoftver projekt, és állítsa be az általános teljesítményt időtartamának megítélése és a projekt költségét, hanem, hogy értékeljék a kapcsolódó kockázatokat, és tegye meg a szükséges döntéseket hozhat.

Ahhoz, hogy kiszámítja a cyclomatic számát McCabe  (G) alkalmazzuk a képlet:

ahol m - az ívek száma egy irányított gráf G;

n - a csúcsok száma;

p - az alkatrészek száma a grafikonon.

McCabe használja a következő tétel: egy erősen összefüggő gráf, a cyclomatic szám a maximális számú lineárisan független ciklus.

Amennyiben ezt tétel, az alkatrészek számát a grafikon lehet tekinteni, mint az ívek száma is hozzá, így az gráf erősen összefüggő. Erősen összefüggő gráf hívják, bármely két pont között kölcsönösen hozzáférhetőek. Grafikonok megfelelő programok, t. E. grafikonok nélkül elérhetetlenné oldalak belépési pontok és a „hátsó” belépési és kilépési pontok, erősen összefüggő gráf előállítását általában lezáró felső ív kijelölő a program végén, a felső, jelezve egy belépési pont ebben a programban.

Egy egyszerűsített képlet kiszámításához ciklomatikus komplexitás a következő:

Általános szabály, hogy a számítás ciklomatikus komplexitás logikai operátorok nem veszik figyelembe.

Az automatizált számítás index ciklomatikus komplexitás általában egyszerűsített megközelítés, amely szerint az építőiparban a grafikon nem kerül sor, és az index számítás alapjául megszámoljuk a vezérlő logika nyilatkozatok (ha, switch, stb), és a lehető legtöbb végrehajtási utak programot.

Az általános megközelítés az, hogy megbecsüljük a program bonyolultsága kiszámításával száma lineárisan független útvonalak ciklomatikus komplexitás  (G), valamint a programok mérete kontroll korlátozásával  (G) és a  (G) az alapja a tesztelési módszer. McCabe megállapította, hogy ésszerű felső határaként ciklomatikus komplexitás értéke 10. Ha a programozók a határon, hogy határon, meg kell újra írni vagy program, illetve feldaraboljuk modulokat.

A fizikai értelemben vett cyclomatic szám minden ív m = (v, u) | mM első csúcsa a grafikon kontroll (v) az eredeti, és a második (u) - végleges. Az utat az egyik csúcs a másik csúcsa a grafikon, ha áll, több mint egy ív, ívek leírják a csúcsok szekvenciájának megfelelő (V, A, ..., u), hogy az eredeti csomópont lesz az első a lista, és a végső - döntő. Áramkör - sík által határolt gyűrűs, ahol a kezdő és befejező csúcsa azonos. Minden kontúrja megegyezik korlátozza vezető út kezdeti csúcs a cél.

Cyclomatic szám határozza meg a független áramkörök polnosvyaznom grafikonon, és ennek következtében a számos különböző út vezet a kezdeti csúcs a cél.

Gyakorlati szempontból a cyclomatic szám méri a program bonyolultsága és meghatározza a tesztesetek számát elegendő, hogy teszteljék a vonatkozó kritériumot minden ágát a programot.

Értékelése során a program bonyolultsága a cyclomatic száma McCabe következő szabály: ha a cyclomatic tíznél nagyobb számokat, azt a túlzott komplexitás és meg kell osztani annak alkatrészeivel (független modult vagy alprogramot) alacsonyabb cyclomatic számát.

Ciklomatikus komplexitás index lehet számítani a modul, eljárás és egyéb szerkezeti egységek a program.

A számítás a mutatókat a projekt (és a részletes tervezés, az is lehetséges, ebben a szakaszban, és ne várják a kódoló szakasz) lehetővé teszi, hogy időben azonosítani a legbonyolultabb, amelyet magas kockázatok, szerkezeti egységek és tegyen intézkedéseket, hogy megszüntesse a kockázatot hogy változtassanak.

Vegyünk egy példát. Tegyük fel, hogy van egy program, ami beolvassa a karaktereket a bemeneti folyam, amíg amíg a „#” jel lesz kimutatható. a Pascal forráskód a 6. ábrán látható A megfelelő program vezérlő grafikon látható a 7. ábrán.

6. ábra: Az adatbevitel programot

Az előadás a program a grafikonon igényel egyetértés, hogy mi számít egy csomópontot a gráf, mint a szintaxis a kijelentés meglehetősen változatos programozási nyelvek. Ez általában figyelembe veszik csak végrehajtható utasítások kivételével az adatok leírását szereplők. Kívánatos, hogy kiválassza az ilyen üzemeltetők szintaktikai forma, amely a legmegfelelőbb megjelenítésére a grafikonon csomópontot. Lineáris a program egyes részeit helyettesíteni lehet egy node-gráf. Ebben a tekintetben a szervezeti diagramok, vagy leírás pszeudokódokra program lehet még előnyösebb forma leírása a program, mint a szöveget egy programozási nyelv. Mindenesetre kívánatos lehet átalakítani a hurkos egyenértékű szekvencia elágazás nyilatkozatok, hozzátéve, ha szükséges, az összegzés szereplők (számlálók) az ismétlések számát, hogy a „felső” vagy „alsó” végén.

7. ábra Graph adatbeviteli program menedzsment

8. ábra konvertálása beviteli program ellenőrző grafikon az adatokat a teljes gráf

Adjuk McCabe cyclomatic számát a program irányítása a grafikon látható a 7. ábrán A élek száma egyenlő öttel, ugyanazt a csúcsok száma öt, így a cyclomatic szám:

A program szervező adatbevitel, amelynek vezérlő grafikon cyclomatic száma egyenlő 2, nincs szükségtelen bonyolultsága, és tesztelni, elegendő, hogy kiválassza a két teszt, amely ágak (a, b, c) és (a, u) (4. ábra). Megjegyezzük, hogy a csúcsok v és egy programot ellenőrző grafikon lehet kombinálni, ami nem változtatja meg a cyclomatic számát. Cyclomatic száma attól függ, csak a számát ellenőrző kimutatások, amelyek feltételes kifejezések (predikátumok). Ebben az esetben a bonyolultsága az állítmány nem tartalmazza. Ha bonyolítja a feltételes kifejezés (állítmány) a nyilatkozatot a while ciklus programot szervezni adatbevitel (4. ábra) változtatásával a fejléc

míg a (ek<>„#”) Áll, míg (ek<>'#' Vagy S<>„*”) Menedzsment és a cyclomatic számát a grafikon ugyanaz marad.

Ha a program tartalmaz egyetlen elágazási nyilatkozatok (kiválasztása nélkül és kapcsolási szolgáltatók), cyclomatic szám segítségével határozható meg a kifejezést

ahol u - az összeg elágazás nyilatkozatokat.

Ha szükséges, a kiválasztás, vagy kapcsolási üzemeltetők n ágak, n lehet tekinteni, mint elágaztató szerek.

Az előnyök közé tartozik a könnyű intézkedéseket annak kiszámításához és ismétlési, valamint a láthatóságot és minősége az értelmezést. Amint hátrányokat lehet megemlíteni: érzéketlenséget a méret a szoftvert, a szoftver felépítése érzéketlenség a változás, hogy nem a korreláció szoftver strukturálása, nincs különbség a konstrukciók és a villát ciklus hiánya érzékenység a beágyazott hurok. Hátrányai cyclomatic intézkedéseket vezetett a megjelenése annak módosításait, valamint alapvetően különböző komplexitás.

Módosítása index ciklomatikus komplexitás:

A „módosított” ciklomatikus komplexitás - tekintve nem minden ága üzemeltetője feleletválasztós (switch), és az egész nyilatkozat egészére.

„Szigorú” ciklomatikus komplexitás - többek között a logikai operátorok.

„Egyszerűsített” kiszámítása ciklomatikus komplexitás - biztosítja a számítás alapja nem a grafikonon, és a számítás alapja a vezérlő utasítások.

„Tényleges” komplexitás - definíció szerint a független utak, amely kiterjeszti a vizsgálati program;

metrikus összetettsége globális adatok - kiszámítani a ciklomatikus komplexitás a modul és a növekvő számú kapcsolat a globális adatokat.