13a Pomiary jakosci

background image

Pomiary w

Pomiary w

inżynierii

inżynierii

oprogramowania

oprogramowania

Jarosław Kuchta

Jarosław Kuchta

Dokumentacja i Jakość

Dokumentacja i Jakość

Oprogramowania

Oprogramowania

background image

Dokumentacja i Jakość
Oprogramowania

2

Pomiary w inżynierii

oprogramowania

Cel pomiarów

Cel pomiarów

ocena jakości produktu

ocena jakości produktu

ocena procesów (produktywności ludzi)

ocena procesów (produktywności ludzi)

stworzenie podstawy dla szacowania

stworzenie podstawy dla szacowania

ocena korzyści (nowe techniki i narzędzia)

ocena korzyści (nowe techniki i narzędzia)

ocena potrzeby nowych narzędzi lub szkoleń

ocena potrzeby nowych narzędzi lub szkoleń

background image

Dokumentacja i Jakość
Oprogramowania

3

Pomiary w inżynierii

oprogramowania

Kategorie pomiarów

Kategorie pomiarów

pomiary bezpośrednie (np. długość, czas)

pomiary bezpośrednie (np. długość, czas)

pomiary pośrednie

pomiary pośrednie

background image

Dokumentacja i Jakość
Oprogramowania

4

Pomiary w inżynierii

oprogramowania

Kategorie pomiarów w

Kategorie pomiarów w

inżynierii

inżynierii

oprogramowania

oprogramowania

Metryki techniczne

Metryki techniczne

złożoność, modularność

złożoność, modularność

Metryki jakości

Metryki jakości

spełnienie wymagań

spełnienie wymagań

użytkownika

użytkownika

Metryki produktywności

Metryki produktywności

wydajność procesu

wydajność procesu

wytwarzania

wytwarzania

Metryki zorientowane na rozmiar

Metryki zorientowane na rozmiar

odnoszą się do rozmiaru kodu

odnoszą się do rozmiaru kodu

Metryki zorientowane na funkcje

Metryki zorientowane na funkcje

odnoszą się do liczby funkcji

odnoszą się do liczby funkcji

Metryki zorientowane na ludzi

Metryki zorientowane na ludzi

odnoszą się do pracy ludzkiej

odnoszą się do pracy ludzkiej

Metryki

techniczne

Metryki jakości

Metryki

produktywności

Metryki

zorientowane na

rozmiar

Metryki

zorientowane na

funkcje

Metryki

zorientowane na

ludzi

background image

Dokumentacja i Jakość
Oprogramowania

5

Pomiary w inżynierii

oprogramowania

Metryki zorientowane

Metryki zorientowane

na rozmiar (1)

na rozmiar (1)

Metryki bezpośrednie

Metryki bezpośrednie

wielkość kodu [KLOC]

wielkość kodu [KLOC]

wielkość dokumentacji [strony]

wielkość dokumentacji [strony]

pracochłonność [osobomiesiące]

pracochłonność [osobomiesiące]

koszt

koszt

liczba defektów

liczba defektów

background image

Dokumentacja i Jakość
Oprogramowania

6

Pomiary w inżynierii

oprogramowania

Metryki zorientowane

Metryki zorientowane

na rozmiar (2)

na rozmiar (2)

Metryki pośrednie

Metryki pośrednie

produktywność = wielkość

produktywność = wielkość

kodu/pracochłonność

kodu/pracochłonność

awaryjność = ilość defektów/wielkość kodu

awaryjność = ilość defektów/wielkość kodu

kosztowność = koszt/wielkość kodu

kosztowność = koszt/wielkość kodu

udokumentowanie = wielkość

udokumentowanie = wielkość

dokumentacji/wielkość kodu

dokumentacji/wielkość kodu

background image

Dokumentacja i Jakość
Oprogramowania

7

Pomiary w inżynierii

oprogramowania

Metryki zorientowane

Metryki zorientowane

na rozmiar (za i

na rozmiar (za i

przeciw)

przeciw)

Za

Za

wielkość kodu może

wielkość kodu może

być łatwo policzona

być łatwo policzona

wielkość kodu jest

wielkość kodu jest

używana w wielu

używana w wielu

modelach szacowania

modelach szacowania

oprogramowania

oprogramowania

wpływ wielkości kodu

wpływ wielkości kodu

jest dobrze

jest dobrze

udokumentowany

udokumentowany

Przeciw

Przeciw

wielkość kodu jest

wielkość kodu jest

zależna od języka

zależna od języka

programowania

programowania

zwięzłe, krótkie

zwięzłe, krótkie

programy mają gorsze

programy mają gorsze

wskaźniki

wskaźniki

nie nadają się dla

nie nadają się dla

języków

języków

nieproceduralnych

nieproceduralnych

szacowanie wielkości

szacowanie wielkości

kodu jest konieczne

kodu jest konieczne

przed rozpoczęciem

przed rozpoczęciem

kodowania

kodowania

background image

Dokumentacja i Jakość
Oprogramowania

8

Pomiary w inżynierii

oprogramowania

Metryki zorientowane

Metryki zorientowane

na funkcje

na funkcje

punkty funkcyjne (FP – Function Points)

punkty funkcyjne (FP – Function Points)

punkty funkcjonalne (FP – Feature Points)

punkty funkcjonalne (FP – Feature Points)

background image

Dokumentacja i Jakość
Oprogramowania

9

Pomiary w inżynierii

oprogramowania

Punkty funkcyjne (1)

Punkty funkcyjne (1)

Parametr pomiarowy

Liczb

a

Współczynnik wagowy

Liczba

ważona

Prosty

Średni

Złożony

Liczba wejść od

użytkownika

× 3

4

6 =

Liczba wyjść do

użytkownika

× 4

5

7 =

Liczba interakcji z

użytkownikiem

× 3

4

6 =

Liczba plików

× 7

10

15 =

Liczba interfejsów

zewnętrznych

× 5

7

10 =

Liczba punktów

background image

Dokumentacja i Jakość
Oprogramowania

10

Pomiary w inżynierii

oprogramowania

Punkty funkcyjne (2)

Punkty funkcyjne (2)

1.

1.

Czy system wymaga wiarygodnego zachowywania i odzyskiwania danych?

Czy system wymaga wiarygodnego zachowywania i odzyskiwania danych?

2.

2.

Czy wymagane jest przekazywanie danych?

Czy wymagane jest przekazywanie danych?

3.

3.

Czy występują funkcje przetwarzania rozproszonego?

Czy występują funkcje przetwarzania rozproszonego?

4.

4.

Czy wydajność jest krytyczna?

Czy wydajność jest krytyczna?

5.

5.

Czy system ma pracować w istniejącym, trudnym środowisku operacyjnym?

Czy system ma pracować w istniejącym, trudnym środowisku operacyjnym?

6.

6.

Czy system wymaga wprowadzania danych

Czy system wymaga wprowadzania danych

on-line

on-line

?

?

7.

7.

Czy dane wprowadzane

Czy dane wprowadzane

on-line

on-line

wymagają transakcji wejściowych

wymagają transakcji wejściowych

zbudowanych na wielu ekranach lub operacjach?

zbudowanych na wielu ekranach lub operacjach?

8.

8.

Czy główne pliki są aktualizowane

Czy główne pliki są aktualizowane

on-line

on-line

?

?

9.

9.

Czy wejścia, wyjścia, pliki lub interakcje są złożone?

Czy wejścia, wyjścia, pliki lub interakcje są złożone?

10.

10.

Czy wewnętrzne przetwarzanie jest złożone?

Czy wewnętrzne przetwarzanie jest złożone?

11.

11.

Czy kod jest zaprojektowany do powtórnego wykorzystania?

Czy kod jest zaprojektowany do powtórnego wykorzystania?

12.

12.

Czy konwersja i instalacja jest zawarta w projekcie?

Czy konwersja i instalacja jest zawarta w projekcie?

13.

13.

Czy system został zaprojektowany dla wielu instalacji w różnych

Czy system został zaprojektowany dla wielu instalacji w różnych

organizacjach?

organizacjach?

14.

14.

Czy aplikacja jest zaprojektowana w sposób przyjazny dla użytkownika i

Czy aplikacja jest zaprojektowana w sposób przyjazny dla użytkownika i

tak, by ułatwiać wprowadzanie zmian?

tak, by ułatwiać wprowadzanie zmian?

F

i

:

brak wpływu incydentalnie

umiarkowanieśrednio znacząco zasadniczo

0

1

2

3

4

5

background image

Dokumentacja i Jakość
Oprogramowania

11

Pomiary w inżynierii

oprogramowania

Punkty funkcyjne (3)

Punkty funkcyjne (3)

FP = liczba punktów × [0,65 + 0,01 x

FP = liczba punktów × [0,65 + 0,01 x

Sum(F

Sum(F

i

i

)]

)]

Metryki pośrednie

Metryki pośrednie

produktywność = FP/pracochłonność

produktywność = FP/pracochłonność

awaryjność = ilość defektów/FP

awaryjność = ilość defektów/FP

kosztowność = koszt/FP

kosztowność = koszt/FP

udokumentowanie = wielkość

udokumentowanie = wielkość

dokumentacji/FP

dokumentacji/FP

background image

Dokumentacja i Jakość
Oprogramowania

12

Pomiary w inżynierii

oprogramowania

Punkty funkcjonalne

Punkty funkcjonalne

Parametr pomiarowy

Liczb

a

Waga

Liczba

ważona

Liczba wejść od

użytkownika

×

4

=

Liczba wyjść do

użytkownika

×

5

=

Liczba interakcji z

użytkownikiem

×

4

=

Liczba plików

×

7

=

Liczba interfejsów

zewnętrznych

×

7

=

Algorytmy

×

3

=

Liczba punktów

background image

Dokumentacja i Jakość
Oprogramowania

13

Pomiary w inżynierii

oprogramowania

Punkty funkcyjne/

Punkty funkcyjne/

funkcjonalne

funkcjonalne

(za i przeciw)

(za i przeciw)

Za

Za

są niezależne od języka

są niezależne od języka

programowania

programowania

nadają się zarówno dla

nadają się zarówno dla

języków

języków

proceduralnych jak i

proceduralnych jak i

nieproceduralnych

nieproceduralnych

mogą być stosowane

mogą być stosowane

we wczesnych fazach

we wczesnych fazach

planowania

planowania

Przeciw

Przeciw

obliczenia mają

obliczenia mają

charakter częściowo

charakter częściowo

subiektywny

subiektywny

dane są trudne do

dane są trudne do

zebrania

zebrania

nie mają

nie mają

bezpośredniego

bezpośredniego

znaczenia fizycznego

znaczenia fizycznego

background image

Dokumentacja i Jakość
Oprogramowania

14

Pomiary w inżynierii

oprogramowania

Zależność LOC/FP dla

Zależność LOC/FP dla

różnych języków

różnych języków

programowania

programowania

Język programowania

Język programowania

LOC/FP

LOC/FP

Asembler

Asembler

300

300

COBOL

COBOL

100

100

FORTRAN

FORTRAN

100

100

PASCAL

PASCAL

90

90

ADA

ADA

70

70

Języki obiektowe

Języki obiektowe

30

30

Języki czwartej

Języki czwartej

generacji

generacji

20

20

Generatory kodu

Generatory kodu

15

15

background image

Dokumentacja i Jakość
Oprogramowania

15

Pomiary w inżynierii

oprogramowania

Metryki złożoności

Metryki złożoności

metryka Halsteada

metryka Halsteada

metryka cyklometryczna McCabe’a

metryka cyklometryczna McCabe’a

background image

Dokumentacja i Jakość
Oprogramowania

16

Pomiary w inżynierii

oprogramowania

Metryki Halsteada (1)

Metryki Halsteada (1)

n

n

1

1

– liczba różnych operatorów w programie

– liczba różnych operatorów w programie

n

n

2

2

– liczba różnych operandów w programie

– liczba różnych operandów w programie

N

N

1

1

– całkowita liczba operatorów

– całkowita liczba operatorów

N

N

2

2

– całkowita liczba operandów

– całkowita liczba operandów

background image

Dokumentacja i Jakość
Oprogramowania

17

Pomiary w inżynierii

oprogramowania

Metryki Halsteada –

Metryki Halsteada –

przykład (1)

przykład (1)

Sub

Sub

Sort(X,N)

Sort(X,N)

Dim

Dim

X(N)

X(N)

If

If

N<2

N<2

Return

Return

For

For

I = 2

I = 2

To

To

N

N

For

For

J = 1

J = 1

To

To

I

I

IF

IF

X(I)<X(J)

X(I)<X(J)

Then

Then

Save = X(I)

Save = X(I)

X(I) = X(J)

X(I) = X(J)

X(J) = Save

X(J) = Save

End If

End If

Next

Next

Next

Next

End Sub

End Sub

Lp

Lp

Operator

Operator

Liczba

Liczba

1

1

koniec instrukcji

koniec instrukcji

7

7

2

2

indeksowanie

indeksowanie

6

6

3

3

=

=

5

5

4

4

IF

IF

2

2

5

5

FOR

FOR

2

2

6

6

,

,

2

2

7

7

<

<

2

2

8

8

RETURN

RETURN

1

1

9

9

koniec programu

koniec programu

1

1

n

n

1

1

=9

=9

N

N

1

1

=28

=28

background image

Dokumentacja i Jakość
Oprogramowania

18

Pomiary w inżynierii

oprogramowania

Metryki Halsteada –

Metryki Halsteada –

przykład (2)

przykład (2)

Sub

Sub

Sort(X,N)

Sort(X,N)

Dim

Dim

X(N)

X(N)

If

If

N<2

N<2

Return

Return

For

For

I = 2

I = 2

To

To

N

N

For

For

J = 1

J = 1

To

To

I

I

IF

IF

X(I)<X(J)

X(I)<X(J)

Then

Then

Save = X(I)

Save = X(I)

X(I) = X(J)

X(I) = X(J)

X(J) = Save

X(J) = Save

End If

End If

Next

Next

Next

Next

End Sub

End Sub

Lp

Lp

Operand

Operand

Liczba

Liczba

1

1

X

X

6

6

2

2

I

I

5

5

3

3

J

J

4

4

4

4

N

N

2

2

5

5

2

2

2

2

6

6

Save

Save

2

2

7

7

1

1

1

1

n

n

2

2

=7

=7

N

N

2

2

=22

=22

background image

Dokumentacja i Jakość
Oprogramowania

19

Pomiary w inżynierii

oprogramowania

Metryki Halsteada (3)

Metryki Halsteada (3)

długość programu:

długość programu:

N

N

=

=

N1 + N2

N1 + N2

rozmiar słownika:

rozmiar słownika:

n = n

n = n

1

1

+ n

+ n

2

2

objętość algorytmu:

objętość algorytmu:

V

V

=

=

N

N

log

log

2

2

(

(

n

n

)

)

stosowana zamiast LOC

stosowana zamiast LOC

objętość funkcji powinna być od 20 do 1000

objętość funkcji powinna być od 20 do 1000

objętość pliku powinna być od 100 do 8000

objętość pliku powinna być od 100 do 8000

poziom trudności:

poziom trudności:

D = (n

D = (n

1

1

/2)*(N

/2)*(N

2

2

/n

/n

2

2

)

)

wyznacza stopień odporności na błędy

wyznacza stopień odporności na błędy

poziom programu:

poziom programu:

L = 1/D

L = 1/D

wysiłek implementacyjny

wysiłek implementacyjny

:

:

E = V*D

E = V*D

czas na implementację:

czas na implementację:

T = E/18

T = E/18

(w sekundach)

(w sekundach)

liczba potencjalnych błędów

liczba potencjalnych błędów

:

:

B = E

B = E

(2/3)

(2/3)

/ 3000

/ 3000

background image

Dokumentacja i Jakość
Oprogramowania

20

Pomiary w inżynierii

oprogramowania

Metryka złożoności

Metryka złożoności

cyklometrycznej

cyklometrycznej

McCabe’a

McCabe’a

R

1

R

2

R

3

R

4

R

5

v(G) = 5

oznacza liczbę potencjalnych ścieżek wykonania
dla funkcji powinna nie większa niż 15
dla plików powinna nie większa niż 100

background image

Dokumentacja i Jakość
Oprogramowania

21

Pomiary w inżynierii

oprogramowania

Spójność grafów

Spójność grafów

Spójność grafu

Spójność grafu

spójność słaba

spójność słaba

nierozdzielność (węzłowa, krawędziowa)

nierozdzielność (węzłowa, krawędziowa)

spójność silna

spójność silna

background image

Dokumentacja i Jakość
Oprogramowania

22

Pomiary w inżynierii

oprogramowania

Ankiety

Ankiety

(kwestionariusze)

(kwestionariusze)

Brak metryk obiektywnych

Brak metryk obiektywnych

Duża subiektywność

Duża subiektywność

Wymuszenie obiektywności – pytania

Wymuszenie obiektywności – pytania

tak/nie

tak/nie

Duża liczba pytań

Duża liczba pytań

niechęć do odpowiedzi

niechęć do odpowiedzi

nierzetelność odpowiedzi

nierzetelność odpowiedzi

Wiarygodność oceny

Wiarygodność oceny

Duża liczba oceniających

Duża liczba oceniających

background image

Dokumentacja i Jakość
Oprogramowania

23

Pomiary w inżynierii

oprogramowania

Bibliografia

Bibliografia

Pressman R.S.,

Pressman R.S.,

Software engineering. A

Software engineering. A

practitioner’s approach

practitioner’s approach

, McGraw-Hill,

, McGraw-Hill,

International Edition, 1992

International Edition, 1992

Halstead Maurice,

Halstead Maurice,

Elements of Software

Elements of Software

Science

Science

, Elsevier Science Ltd, 1977

, Elsevier Science Ltd, 1977

http://www-ivs.cs.uni-magdeburg.de/sw-en

http://www-ivs.cs.uni-magdeburg.de/sw-en

g/us/experiments/hals/

g/us/experiments/hals/

http://yunus.hacettepe.edu.tr/~sencer/co

http://yunus.hacettepe.edu.tr/~sencer/co

mplexity.html

mplexity.html


Document Outline


Wyszukiwarka

Podobne podstrony:
MAPA MYŚLI pomiar jakości kształcenia
Pomiary jakosci energii Konfere Nieznany
10 POMIAR JAKOŚCI DZIAŁALNOŚCI SZKÓŁ OGÓLNOKSZTAŁCĄCYCHid 10691 ppt
Pomiar jakosci energii elektryc Nieznany
E. Zysnarska - Pomiar jakości życia, Jakość życia
MAPA MYŚLI pomiar jakości kształcenia
Pomiary jakosci energii Konfere Nieznany
Urban W 2008 Ocena metod pomiaru jakosci uslug
10 POMIAR JAKOŚCI DZIAŁALNOŚCI SZKÓŁ OGÓLNOKSZTAŁCĄCYCHid 10691 ppt
System pomiarów jakości energii elektrycznej współpracujący z urządzeniami EAZ
Metody pomiaru jakości w zarządzaniu marketingiem usług
Jakość i właściwości pomiarowe zdjęć lotniczych druk
10.Analiza jakościowa wyników pomiaru, Analiza jakościowa wyników pomiaru
Pomiar Dydaktyczny, 11 ocenianie, ANALIZA JAKOŚCIOWA I ILOŚCIOWA

więcej podobnych podstron