Szoftver mrtkek Szoftver mrtk A fejlesztsi folyamat mrse

  • Slides: 16
Download presentation
Szoftver mértékek • Szoftver mérték: – A fejlesztési folyamat mérése – Végtermék mérése (termék

Szoftver mértékek • Szoftver mérték: – A fejlesztési folyamat mérése – Végtermék mérése (termék mérték) • Termék mérték: – Külső mértékek: • Megbízhatósági mértékek • Funkcionalitási mértékek • Teljesítmény mértékek – Belső termék mértékek: • Méret • Bonyolultság • Stílus

Projekt metrikák • • • Fejlesztés költsége (cost) Szükséges kifejtendő erőfeszítés (effort) Projekt előrehaladása

Projekt metrikák • • • Fejlesztés költsége (cost) Szükséges kifejtendő erőfeszítés (effort) Projekt előrehaladása (advancement) Fejlesztés megbízhatósága (process reliability) A termék újrafelhasználhatósága alapján (reuse)

Méret metrikák • Méret metrikák: – Nagyságrendi becslés – LOC – e. LOC •

Méret metrikák • Méret metrikák: – Nagyságrendi becslés – LOC – e. LOC • Derivátumok – Szavak – Utasítások – Alprogramok – Modulok – Forrásfájlok

Mc. Cabe • Thomas J. Mc. Cabe 1976. – FORTRAN programok – Tesztelhetőség –

Mc. Cabe • Thomas J. Mc. Cabe 1976. – FORTRAN programok – Tesztelhetőség – Modularizáció – IBM javaslat: • Max 50 sor • 25 IF THEN 33. 5 millió független végrehajtási ág – Kód tesztelési költsége – Független vezérlési utak száma (Basic path)

Mc. Cabe • • II. Control graph A szekvenciákat egyetlen csomópontba fogja V(G) =

Mc. Cabe • • II. Control graph A szekvenciákat egyetlen csomópontba fogja V(G) = e – n + 2 p ahol n csomópont, e él, p komponens Tétel: erősen összefüggő gráfban a lineárisan független körök száma V(G)

Mc. Cabe példák. a b c d e f V(G) = e – n

Mc. Cabe példák. a b c d e f V(G) = e – n + 2 p = 9 - 6 + 2 = 5

Mc. Cabe példák. Szekvencia, v = 1 - 2 + 2 = 1 Elágazás,

Mc. Cabe példák. Szekvencia, v = 1 - 2 + 2 = 1 Elágazás, v = 4 - 4 + 2 = 2 While, v = 4 - 4 + 2 = 2

Mc. Cabe • • III. Additív Összefüggő gráfokra: V(G) = pred + 1 Tulajdonságok:

Mc. Cabe • • III. Additív Összefüggő gráfokra: V(G) = pred + 1 Tulajdonságok: V(G) >= 1 Alprogramhívások hozzá vétele nem befolyásolja V(G) == 1 acsa G-ben 1 út létezik G kiegészítése (csak) egy éllel növeli V(G)-t

Mi predikátum? IF c 1>0 AND c 2<5 THEN if ( x[f(i)] < 0

Mi predikátum? IF c 1>0 AND c 2<5 THEN if ( x[f(i)] < 0 ) switch(i) { case 1: aa(); bb(); break; case 2: cc(); dd(); default: ee(); }

Mc. Cabe • • • IV. Ajánlás: kódhossz helyett a ciklomatikus bonyolultság <10 Kivétel:

Mc. Cabe • • • IV. Ajánlás: kódhossz helyett a ciklomatikus bonyolultság <10 Kivétel: case Jó stílusú programozók eleve 3 és 7 között Mások gyakran 30. . 50 Strukturált programok: Knuth mellett érvel, a goto esetenként megengedhető

Beágyazás • James W. Howatt, Albert L. Baker 1989. • Rigorous Definition and Analysis

Beágyazás • James W. Howatt, Albert L. Baker 1989. • Rigorous Definition and Analysis of Program Complexity Measures: An Example Using Nesting • Beágyazási mélység nem csak strukturált programokra – – – Elméleti start és végpont (többszöri be és kilépési pont) Predikátum csomópont hatóköre (scope) Csomópont predikáló halmaza (predicate set) ND(G) = a gráf beágyazási mélysége SN(G) = N + ND(G)

Halstead-mérték. • Maurice Halstead 1982. • Software –science metrics: length and volume • Különböző

Halstead-mérték. • Maurice Halstead 1982. • Software –science metrics: length and volume • Különböző metrikák vektora – – – Programszótár Programhossz Program tárhely mérete Szükséges erőfeszítés Fejlesztési idő

Halstead-mérték. • • N 1 operátorok összes száma N 2 operandusok összes száma n

Halstead-mérték. • • N 1 operátorok összes száma N 2 operandusok összes száma n 1 az egyedi operátorok száma n 2 az egyedi operandusok száma • Programszótár – n = n 1 + n 2 • Programhossz – N = N 1 + N 2 – n 1 log 2 n 1 + n 2 log 2 n 2 – Ezt már előre tudjuk becsülni

Halstead-mérték. • Program tárhely mérete (volume) – V = N log 2 n •

Halstead-mérték. • Program tárhely mérete (volume) – V = N log 2 n • Kapcsolat a program absztrakciós szintje (L) és V között – V* = LV = konstans – L = V* / V • Szükséges erőfeszítés (effort) – E = V / L = V 2 / V*

Információ-áramlás metrikák • Sallie Henry és Dennis Kafura 1981 • Információ-áramlás – A hívja

Információ-áramlás metrikák • Sallie Henry és Dennis Kafura 1981 • Információ-áramlás – A hívja B-t (paraméterátadással) – B visszatér értékkel, amit A felhasznál – B output változót használ • Programméret: LOC vagy e. LOC • Fan-in: belépő információáramlás + érintett adatszerkezet • Fan-out: kilépő információáramlás + érintett adatszerkezet C = méret * (fan-in + fan-out)2

Információ-áramlás metrikák II. • Nem csak paraméterek, figyelembe kell venni a globális változókat is

Információ-áramlás metrikák II. • Nem csak paraméterek, figyelembe kell venni a globális változókat is • Elegendőnek találták a modulok közötti kapcsolatokat • Ha nincsen információ-áramlás, akkor c == 0 • Javítás: vezérlésátadás, mint implicit információáramlás • Alprogram mérete elhagyható lenne…