background image

Wybrane problemy 
programometrii 

Dr  hab. Bożena Śmiałkowska
Zachodniopomorski Uniwersytet Technologiczny w Szczecinie 
Wydział Informatyki

background image

Plan wykładu:

1

2

3

4

Wprowadzenie – podstawowe definicje 

Podstawy programometrii

Przegląd i analiza miar i metryk   
oprogramowania

Rola systemów komputerowego 
wspomagania procesów pomiaru 
oprogramowania

Kierunki dalszego rozwoju i 
podsumowanie

5

background image

Wprowadzenie

1

 Czym zajmuje się programometria?
 pomiar, miara, metryka, system pomiarowy
 Niepewność pomiarów
 Zadania systemu pomiarowego
 co określa strategie pomiarowe
 Kalibracja, certyfikacja, akredytacja, standaryzacja i walidacja pomiarów
Różnice między pomiarami w metrologii i programometrii/

background image

Co to jest programometria i jaki jest jej 
związek z pomiarami?

Programometria

to dział inżynierii 

oprogramowania zajmujący się pomiarami parametrów 
oprogramowania i wielkości z nim związanych. 

Dziedziną, która zajmuje się 

pomiarami

jest 

metrologia

Metrologia 

to dziedzina wiedzy, obejmująca 

wszystkie zagadnienia teoretyczne i praktyczne 
związane z pomiarami  

(nazwa pochodzi od słów greckich 

metron – mierzyć, logos – nauka)

Istnieje analogia między metrologią a programometrią

background image

Pomiar, metryka, miara – definicje ogólne

1

Pod pojęciem

pomiaru 

rozumie się proces, w którym 

atrybutom obiektów świata rzeczywistego przypisuje 
się liczby lub symbole, tak by charakteryzowały one te 
obiekty w jasno określony sposób. 

Przypisanie atrybutom 

obiektów liczb, symboli

Wynik pomiaru –

miara 

wyrażona najczęściej w 
jednostkach zgodnych z 
tzw. metryką

background image

Pomiar oprogramowania w programometrii

1

Pomiar oprogramowania 

- to sekwencja 

elementarnych operacji, które polegają na przetwarzaniu 
takich własności oprogramowania jak fizyczna natura, 
funkcjonalność, zbiór własności oprogramowania itd. a 
ich wynik to 

miara oprogramowania

Przypisanie własnościom 

oprogramowania ich miar

(Wynik pomiaru) 

miara

background image

Miary a metryki

Metryka oprogramowania

– miara pewnej własności 

oprogramowania lub jego specyfikacji. 

Standard IEEE 1061-1998 określa 

metrykę jako funkcję 

odwzorowującą jednostkę oprogramowania w 
wartość liczbową.

Tak wyliczona wartość jest interpretowalna jako 

stopień 

spełnienia pewnej własności jakości

jednostki 

oprogramowania.

Metryka

to proponowana (uznana, postulatywna) miara

background image

Przykład

1

Przypisanie wyników pomiaru 

oprogramowaniu

Ilość linii 

kodu

Metryka

Długość kodu 

źródłowego

OPROGRAMOWANIE

Metryka

Złożoność 

oprogramowani

a

background image

Niepewność pomiaru

Z pomiarem związana jest 

niepewność

pomiaru.

Wynik pomiaru składa się z wartość miary oraz 
niepewności pomiaru.

Wynik pomiaru =wartość miary + niepewność pomiaru

Pomiar 

można szacować miarą oraz 

przedziałem ufności miary. 

background image

Szacowanie niepewności pomiaru

Niepewność można szacować za pomocą: 

określenia zasady pomiarowej

, wielkości 

mierzonej i wielkości wpływających na pomiar, 

identyfikacji źródeł

niepewności, 

przyjęcie 

rozkładów gęstości

prawdopodobieństwa 

estymacji

odchyleń standardowych, 

wyznaczenia 

współczynników wrażliwości

,

zestawienia

budżetu

niepewności, 

obliczenia wartości 

niepewności złożonej

.

A dla tych pomiarów, które są mierzalne, 

background image

System pomiarowy

to odpowiednio 

zorganizowany zestaw elementów stanowiących 
całość organizacyjną i takich, które objęte są 
wspólnym sterowaniem ukierunkowanym na 
wydobycie informacji pomiarowej z obiektu 
badanego i przekazania jej obserwatorowi w 
użytecznej formie.

Podstawowym 

narzędziem realizacji 

technicznej pomiarów

jest system pomiarowy

Pomiar

realizowany 

w systemie pomiarowym

jest również źródłem naukowej interpretacji świata 
zewnętrznego. Pozwala przypisać oceny cechom 
obiektów, które nas interesują.

background image

Podstawowe zadania ogólnego systemu 
pomiarowego 

Proces

lub

obiekt

pomiaru

Akwizycja

danych

Analiza
danych

Prezentacja

danych

Akwizycja

danych

to

zbieranie

miar

z

czujników,

przetworników,

urządzeń

pomiarowych

w

celu

ich

dalszego przetworzenia.

Zebrane dane stanowią źródło analizy i prezentacji
wyników pomiaru.

background image

Strategia pomiaru określa

szczegóły 
przebiegu 

pomiaru i 

sposobu 

opracowania 

wyników 

pomiaru

dobór 

konfiguracji 

środowiska 

pomiarowego

sposób dostępu 

do  obiektu 

pomiaru na 

stanowisku 

pomiarowym i 

plan pomiaru

background image

Kalibracja  pomiaru 

(wzorcowanie)

czynność 

przeprowadzana na 

obiekcie wzorcowym o 

znanych wartościach 

pomiaru gdy pomiar w 

warunkach rzeczywistego 

użytkowania obiektu nie 

jest możliwy lub jest 

utrudniony

Standaryzacja

pomiarów

Kalibracja, certyfikacja, standaryzacja 
pomiarów

Akredytacja

postępowanie, w którym 
upoważniona jednostka 
wydaje formalne 
oświadczenie, że 
organizacja lub osoba są 
kompetentne do 
wykonywania 
określonych zadań. Wiąże 
się to z inspekcją 
dotyczącą jakości 
wykonywanych 

usług

przez akredytowaną 
jednostkę

Proces 
wprowadzania 
jednakowych norm 
pomiarowych

background image

Certyfikacja

Wydawanie dokumentu 
stwierdzającego zgodność 
wyrobu z deklarowanymi przez 
wytwórcę lub określonymi w 
przepisach i normach 
właściwościami. Dokument 
zawiera wyniki  wzorcowania i 
poświadcza, że spełnione są  
wymagania metrologiczne i jest 
zwykle wydawany przez  
akredytowane laboratorium
pomiarowe

Udokumentowanie pomiarów

Działanie mające na celu 
potwierdzenie w sposób 
udokumentowany i zgodny z 
założeniami, że procedury, 
procesy, urządzenia, materiały, 
czynności i systemy 
rzeczywiście prowadzą do 
zaplanowanych wyników. 

Walidacja

background image

Podstawową różnicę między „dobrze rozwiniętymi" 
naukami, jakimi jak fizyka a nieco „słabiej dobrze 
rozwiniętymi" naukami, takimi jak psychologia i 
socjologia, stanowi 

stopień, w jakim 

wykorzystywane są pomiary

(Roberts, 1979)

Miara w wielu dziedzinach techniki wyrażona 
jest 

liczbowo

w odpowiednich do tej miary 

jednostkach.

Miary w programometrii wyrażane są również w 

kategoriach klasyfikacyjnych

Różnice między pomiarami w metrologii i 
programometrii

background image

Podstawy programometrii 

2

 Dylemat – w jakich miarach dokonywać pomiaru oprogramowania ?
 Obszary badań i pomiarów w programometrii
 Klasyfikacja systemów pomiarowych w programometrii

Skale, formy i typy pomiaru oprogramowania

 Kategorie miar oprogramowania

background image

Dylemat – w jakich miarach dokonywać 
pomiaru oprogramowania ?

Nie ma ogólnej zgody

co do tego, w jaki sposób

pomierzone cechy oprogramowania składają się na 
syntetyczny wskaźnik jego oceny.

Istnieje wiele miar

oprogramowania. 

Mimo to, często oceny produktów programistycznych są

oparte na metodach spekulacyjnych i 

uproszczeniach

oraz dodatkowych założeniach,

algorytmach, wzorach i heurystykach.

Wg twórcy wielu koncepcji to 

klient stanowi o 

rentowności procesu produkcji oprogramowania

należy tak sterować wszystkimi fazami tego procesu, aby 
klient był zadowolony z wytworzonego oprogramowania 
– z tą ideą 

zgadza się ogół

.

background image

Jakość produktu na podstawie procesu 
jego wytwarzania (koncepcja TQM)

Ulepsz proces

Utwórz produkt

Zdefiniuj proces

Zdefiniuj proces

Oceń jakość

produktu

Opracuj standard 

Opracuj standard 

procesu

Odpowiedni
a

jakość ?

Nie                               Tak

background image

Kategorie miar oprogramowania

1

Ze względu na 

wysokie koszty wytwarzania i 

cenę gotowego produktu

oprogramowania a także 

na koncepcję 

TQM

pomiaru produktów pomiar 

oprogramowania powinien obejmować nie tylko sam 
produkt ale również proces jego wytwarzania w oparciu 
o

metryki produktu i procesu wytwarzania 

oprogramowania

Pomiar

Wyniki pomiaru

Miary

metryki

OPROGRAMOWANIE 

jako gotowy produkt

Procesy wytwarzania 

oprogramowania wraz z zasobami

niezbędnymi do tworzenia  oprogramowania

background image

Kategorie miar oprogramowania

1

Proces wytwarzania oprogramowania można mierzyć 
na poziomie:

pojedynczego projektu – przedsięwzięcia 
programistycznego,

firmy świadczącej usługi programistyczne

Pomiar

Wyniki pomiaru

Miary

metryki

OPROGRAMOWANIE 

jako gotowy produkt

Przedsięwzięcie 

programistyczne

Procesy wytwórcze firmy

background image

Obszary badań i pomiarów w programometrii

1

Bada procesy  i 

systemy pomiarowe

Pogramometria

dziedzinę inżynierii 

oprogramowania

Oprogramowania

(gotowego produktu)

Cyklu wytwarzania 
oprogramowania

Określa

metryki pomiarowe

Oprogramowania 

(gotowego produktu)

Procesów wytwarzania 
oprogramowania

Przedsięwzięć 
informatycznych 
(pojedynczego projektu)

Prowadzenia 
przedsięwzięć 
informatycznych

background image

Klasyfikacja systemów pomiarowych w 
programometrii

Badawczo-
rozwojowe

stosowane w 
pomiarach 
naukowych, w 
obszarze metodologii i 
inżynierii 
oprogramowania, 
poszerzają praktykę 
stosowalności metod 
inżynierii 
oprogramowania

Pomiarowo-

kontrolne 

stanowią integralna 
cześć każdego 
procesu wytwarzania 
oprogramowania – tu 
narzędzia 
komputerowego 
wspomagania 
wytwarzania 
oprogramowania 
przyczyniają się do 
automatyzacji 
pomiarów

Pomiarowo-

diagnostyczne

służą detekcji, lokalizacji, 
identyfikacji usterek 
programowych, defektów i 
uszkodzeń, identyfikacji 
odchyłek od miar jakości 
oprogramowania

background image

Skale i formy pomiaru w programometrii

Skale pomiarowe w klasyfikacji

Skala 

nominalna

Skala 

porządkowa

Skala 

interwałowa

Skala 

stosunkowa

Np. podział 
modeli na 
kaskadowy, 
spiralny, itp,

porównuje i szereguje elementy 
(Np. zgodny, częściowo zgodny, 
niezgodny z modelem, itp..)

Np. ocenia się trzy produkty A, B,C napisane Np. w 
języku C++ i dokonuje pomiaru częstości defektów –
mówimy wówczas, że A ma 2 razy wyższą częstość 
defektów niż B i  1,5 razy niższą niż C

Np. Skala 

Celsjusza i 

Fahrenheita

background image

Formy (poziomy) pomiaru

Pomiar w skali stosunkowej  i interwałowej 

można wyrazić w jednostkach liczbowych

Pomiary mogą być wielopoziomowe

Kolejne poziomy pomiarów tworzą 
hierarchiczny system i są tworzone z 
zachowaniem zasady, że im wyższy poziom 
pomiaru tym bardziej można przeprowadzić 
zaawansowaną analizę 

Każdy 

wyższy poziom

skali pomiarowej 

można 

zredukować do skali niższego

poziomu ale nie odwrotnie

background image

Typy miar używane w programometrii

Liczba

Kategoria,

Stosunek,

Proporcja,

Odsetek,

Tempo,

Sześć Sigma – pomiar stosowany w standardach 
jakości – ma on z góry określoną częstość defektów 
(3,4 części na milion) 

Korelacja 

background image

Korelację należy stosować ostrożnie

Brak korelacji liniowej

między dwoma 

zmiennymi (niewielki współczynnik korelacji) nie 
oznacza, że między zmiennymi nie ma jakiejkolwiek 
zależności 

Korelacja 

nie określa zależności 

przyczynowo-skutkowej

Dla zbadania zależności przyczynowo-skutkowych 
muszą być spełnione trzy warunki:

1)

Przyczyna poprzedza efekt 

2)

Istnieje silna korelacja między przyczyną i 
skutkiem

3)

Obserwowana zależność nie może być 
zależnością pozorną

Ponieważ:

background image

Przegląd i analiza miar i metryk  

oprogramowania

3

 Ogólny podział miar oprogramowania
 Przykładowe miary procesu (organizacji)
 Wybrane miary przedsięwzięć  informatycznych (projektu)
 Miary produktu 
 Analiza miar oprogramowania i wnioski

background image

Co mierzy programometria?

Proces 

programowy

ogół czynności 

związanych z 

wytwarzaniem 

oprogramowania, w 

celu uwiarygodnienia 

przed klientem 

dojrzałości 

kompetencyjnej 

Miary 

organizacji

(procesu)

Przedsięwzięcie 

informatyczne

w celu lepszej 

estymacji czasu i 

kosztu, kontroli jakości 

realizowanych zadań, 

oceny produktywności 

i, ogólnie, poddawane 

są kontroli 

przedsięwzięcia

Miary 

przedsięwzięcia

(projektu)

Produkt 

programowy

zarówno jego jakość, 

jak również inne, 

niejakościowe cechy 

produktu

Miary 

programów 

jako 

produktów

background image

Miary produktu

Opisują cechy produktu

Miary    

procesu  

programowego

Mogą być użyte 
do poprawy 
produkcji i serwisu 
oprogramowania

Miary projektu

Opisują cechy 

charakterystyczne i 

działanie projektu

Miary oprogramowania 

Niektóre 

miary można 

zaliczyć do 

kilku 

kategorii 

jednocześnie

background image

Wybrane miary procesów programowych

Proces 

programowy

ogół czynności 

związanych z 

wytwarzaniem 

oprogramowania, w 

celu uwiarygodnienia 

przed klientem 

dojrzałości 

kompetencyjnej 

Miary 

organizacji

Przedsięwzięcie 

informatyczne

ogół czynności 

kontrolnych w celu 

lepszej estymacji 

czasu i kosztu, 

jakości realizowanych 

zadań, oceny 

produktywności

Miary 

przedsięwzięć

Produkt 

programowy

ogół czynności 

związanych z  

jakością produktu, i 

inne niejakościowe 

jego cechy 

Miary 

programów 

jako 

produktów

background image

Wpływ różnych czynników na proces 
wytwarzania oprogramowania

Celowość, zakres 

przedsięwzięcia

Zgodność 

rozwiązań z 

warunkami 

procesu 

wytwarzania 

oprogramowania

Integralność 

rozwiązań

Bezpieczeństwo 

rozwiązań

Niezawodność 

oprogramowania

Inne metryki 

oprogramowania

czynniki techniczne

czynniki funkcjonalne

Czynniki 
ekonomiczne,  
organizacyjne, 
prawne, społeczne, itp

M

e

try

k

p

ro

c

e

s

w

y

tw

a

rza

n

ia

 

o

p

ro

gra

mow

a

n

ia

background image

2

pozwala ocenić sposób realizacji (dojrzałość) procesu 

programowego (jako całości)

pozwala na wyróżnienie tych procesów głównych, które

realizowane są poprawnie, i tych które nie są

miary procesu powinny być zbierane z wielu 

przedsięwzięć i uśrednione z dłuższego okresu czasu

wysoka ocena dojrzałości ułatwia przekonanie klienta, 

że organizacja jest w stanie dostarczyć 
oprogramowanie na czas, w ramach budżetu, o dobrej 
jakości

Pomiar procesów programowych

background image

Monitorowanie odbywa się przez:

porównanie planów z realnymi dokonaniami (ocena postępu prac)

identyfikowanie odchyleń od planu

podejmowanie działań korygujących

modyfikacje

modyfikacje

rezultaty planu

efekty działań

organizacja 

przedsięwzięcia

organizacja działań

CO OSIĄGNĄĆ
plan punktów kontrolnych
plan odpowiedzialności

CO OSIĄGNĄĆ
plan działań
zakres odpowiedzialności działania

poziom operacyjny

poziom taktyczny

Monitorowanie procesów programowych

background image

Normy jakości dla procesu programowego

ISO 9001

ISO 9002

ISO 9003

Modele systemu 

jakości

ISO 9004

Elementy systemu 

jakości

ISO 9000

Wytyczne wyboru 

modelu

ISO 8402

Terminologia

ISO/IEC 1508

Bezpieczeństwo 

oprogramowania 

systemów 

krytycznych

IEC/TC 56

Niezawodność 

oprogramowania 

systemów 

krytycznych

Oprogramowanie jest

rozumiane jako jeden

z rodzajów wyrobów

background image

Jakość jako metryka procesu programowego 

przedsięwzięcia 3

Plan jakości

przedsięwzięcia 3

Plan jakości

przedsięwzięcia 1

przedsięwzięcia 2

Plan jakości

przedsięwzięcia 2

Firmowy podręcznik

jakości

Model jakości

ISO 9000

Firmowy proces

jakości

Zarządzanie 

jakością

przedsięwzięć

Wspomaga

jego egzemplarzem jest

jest używany przy 

opracowaniu

dokumentuje

jego egzemplarzem 
jest

background image

Polityka jakości

to ogólne intencje i zamierzenia  danej organizacji w 

odniesieniu do jakości [ISO8402] wyrażana w sposób formalny przez zarząd firmy.

Polityka i system jakości

• Musi być zdefiniowana i udokumentowana;
• Muszą być określone cele i zaangażowanie w jakość;
• Musi być zgodna z działaniami przedsiębiorstwa i oczekiwaniami klienta;
• Musi być zakomunikowana i rozumiana na wszystkich szczeblach zarządzania.

System jakości

to struktura organizacyjna, przydział odpowiedzialności, 

procedury postępowania, zasoby użyte do implementacji polityki jakości w danej 
organizacji [ISO8402]

• pełnomocnik lub zespół do spraw jakości;

• księga jakości: udokumentowane procedury systemu jakości.

background image

Miara procesów wytwarzania 
oprogramowania to zgodność z zasadami 
zarządzania jakością

Ukierunkowanie na klienta (również klient wewnętrzny)

Przywództwo (budowa wizji, identyfikacja wartości)

Zaangażowanie ludzi (satysfakcja, motywacja, szkolenia)

Podejście procesowe i pomiary

Podejście systemowe

Ciągłe doskonalenie

Rzetelna informacja (zbieranie i zabezpieczanie danych do 

podejmowania obiektywnych decyzji)

Partnerstwo dla jakości (bliskie związki producentów z klientami)

background image

Inne ekonomiczne miary procesu 
procesów programowych

Reklama i promocja produktu

Renoma producenta

Rodzaj i zakres gwarancji oraz innych usług dla klientów

Przyzwyczajenia klientów

Sposób wyceny rozmaitych wersji produktu

Inwestycje niezbędne wewnątrz firmy

Koszty reorganizacji firmy

Koszty szkoleń

Koszty zakupu narzędzi CASE

Nakłady na dokładne testowanie oprogramowania

Zwrot nakładów następuje zwykle po pewnym czasie i często nie 
może być traktowany jako pewny. 

Jakość produktu jest tylko jednym z czynników 
wpływających na wynik ekonomiczny firmy. Inne aspekty to:

background image

Obiekty pomiaru procesu programowego

Obiekty

Atrybuty bezpośrednio mierzalne

Wskaźniki
syntetyczne

Specyfikacje rozmiar, ponowne użycie, modularność,

nadmiarowość, funkcjonalność,
poprawność składniową, ...

zrozumiałość,
pielęgnacyjność, ...

Projekty

rozmiar, ponowne użycie, modularność,
spójność, funkcjonalność,...

jakość, złożoność,
pielęgnacyjność, ...

Kod

rozmiar, ponowne użycie, modularność,
spójność, złożoność, strukturalność, ...

niezawodność,
używalność,
pielęgnacyjność, ...

Dane
testowe

rozmiar, poziom pokrycia,...

jakość,...

....

....

....

2

background image

Obiekty pomiaru oprogramowania

2

Obiekty

Atrybuty bezpośrednio mierzalne

Wskaźniki
syntetyczne

Specyfikacja
architektury

czas, nakład pracy, liczba zmian
wymagań, ...

jakość, koszt,
stabilność, ...

Projekt
szczegółowy

czas, nakład pracy, liczba znalezionych
usterek specyfikacji,...

koszt, opłacalność,
...

Testowanie

czas, nakład pracy, liczba znalezionych
błędów kodu, ...

koszt, opłacalność,
stabilność, ...

....

....

....

background image

Obiekty pomiaru oprogramowania

2

Obiekty

Atrybuty bezpośrednio mierzalne

Wskaźniki
syntetyczne

Personel

wiek, cena, ...

wydajność,
doświadczenie,
inteligencja, ...

Zespoły

wielkość, poziom komunikacji,
struktura,...

wydajność, jakość,
...

Oprogramo
wanie

cena, wielkość, ...

używalność,
niezawodność, ...

Sprzęt

cena, szybkość, wielkość pamięci

niezawodność, ...

Biura

wielkość, temperatura, oświetlenie,...

wygoda, jakość,...

....

....

....

background image

Wydajność

Wartość

Koszt

Jakość

Ilość

Personel

Zasoby

Złożoność

Niezawodność

Defekty

Wielkość

Funkcjonalność

Czas

Pieniądze

Sprzęt

Oprogramowanie

Ograniczenia
środowiskowe

Trudność 
problemu

Przykładowe miary wydajności zasobów

Czynniki 
wpływając

na ogólną
Wydajność
Zasobów

background image

CMM: Capability Maturity Model

1. 

Początkowy

2. 

Zarządzany (powtarzalny)

3. 

Zdefiniowany

4. 

Zarządzany ilościowo

5. 

Optymalizujący

Poziom dojrzałości organizacyjnej firmy  

wytwarzającej oprogramowanie

SEI, Pittsburg, USA

1989-1993

background image

Niedojrzałość i dojrzałość procesów 
programowych

Improwizacja podczas 
procesu wytwórczego

Proces jest wyspecyfikowany, 
ale specyfikacja nie jest 
stosowana 

Doraźne  reagowanie w 
sytuacji kryzysów

Harmonogram i budżet są 
przekraczane

Funkcjonalność jest 
stopniowo okrajana

Jakość produktu jest niska

Brak obiektywnych kryteriów 
oceny

Zdolność do  budowy 
oprogramowania jest cechą 
organizacji a nie personelu

Proces jest zdefiniowany, 
znany i wykorzystywany

Proces jest obserwowany i 
ulepszany

Prace są planowane i 
monitorowane 

Role i odpowiedzialności są 
zdefiniowane

Obiektywna, ilościowa ocena

Niedojrzałość

Dojrzałość

background image

Problemy z dojrzałością procesu 
wytwarzania oprogramowania

Czy dojrzały, realizowany na wysokim 
poziomie kompetencji proces wytwarzania 
oprogramowania musi skutkować
osiągnięciem sukcesu (realizacją 
oprogramowania na czas, w ramach 
zaplanowanego budżetu, dobrej jakości)?

?

background image

Pomiary przedsięwzięć informatycznych 
(projektów)

Proces 

programowy

ogół czynności 

związanych z 

wytwarzaniem 

oprogramowania, w 

celu uwiarygodnienia 

przed klientem 

dojrzałości 

kompetencyjnej 

Miary 

organizacji

Przedsięwzięcie 

informatyczne

ogół czynności 

kontrolnych w celu 

lepszej estymacji czasu 

i kosztu, jakości 

realizowanych zadań, 

oceny produktywności

Miary 

przedsięwzięć

Produkt 

programowy

ogół czynności 

związanych z  

jakością produktu, i 

inne niejakościowe 

jego cechy 

Miary 

programów 

jako 

produktów

background image

Wykład 30.05.2012

background image

Pomiary przedsięwzięcia informatycznego

3

Pomiary procesu programowego, analizowane 

nie 

na poziomie całej organizacji, lecz na 

pojedynczo 

realizowanych przedsięwzięciach

Pomiary przedsięwzięcia pozwalają na:

– ocenę stanu realizacji przedsięwzięcia
– śledzenie potencjalnych zagrożeń
– wyodrębnienie obszarów krytycznych
– przydzielanie pracownikom zadań w projekcie
– bieżącą ocenę jakości powstającego produktu
– kontrolę czynników kosztowych przedsięwzięcia i 

kontrolę harmonogramu realizacji projektu

background image

Pomiary przedsięwzięcia informatycznego

3

Obowiązują tu zwykle takie miary jakie wynikają z 

nadrzędnego procesu programowego

(organizacji) ale są i inne

Pomiar przedsięwzięcia programistycznego jest

zależy od przyjętej

w przedsięwzięciu metod

prowadzenia projektu –

metodyki

Miary przedsięwzięcia zależą również 

od 

techniki prowadzenia przedsięwzięcia

od paradygmatów programowych

Miary przedsięwzięcia informatycznego 

zależą

również od miar oceny produktu

oprogramowania

background image

Oczekiwania względem oprogramowania to 
miara przedsięwzięcia informatycznego 
(projektu)

Wymagania

Software

A jaka jest rzeczywistość?

Wymagania

OPÓŹNIENIE

OPÓŹNIENIE

Software

k

background image

Cztery wymiary bieżącej oceny przedsięwzięcia 
informatycznego 

oprogramowanie

koszt

zakres

czas

jako

ś

ć

background image

krótki termin

wysoka jakość

niski koszt

wysoka 

akceptacja 

użytkownika

(ZAKRES)

przebieg typowy

przebieg 

zalecany

przebieg 

maksymalny

Realizacja oprogramowania jako kompromis

background image

Miary w produktu programowego

Proces 

programowy

ogół czynności 

związanych z 

wytwarzaniem 

oprogramowania, w 

celu uwiarygodnienia 

przed klientem 

dojrzałości 

kompetencyjnej 

Miary 

organizacji

Przedsięwzięcie 

informatyczne

ogół czynności 

kontrolnych w celu 

lepszej estymacji 

czasu i kosztu, 

jakości realizowanych 

zadań, oceny 

produktywności

Miary 

przedsięwzięć

Produkt 

programowy

ogół czynności 

związanych z  

jakością produktu, i 

inne niejakościowe 

jego cechy

Miary 

programów 

jako 

produktów

background image

Podział miar produktu programowego

Pomiar produktu      

oprogramowania

Miary statyczne

Miary dynamiczne

pomiary 
wykonującego się 
programu.

pomiary 
reprezentacji 
systemu, takich 
jak projekt, 
program, 
dokumentacja

background image

Różnorodne metryki uwzględniają m.in. następujące 
aspekty

wrażliwość na błędy,

możliwości testowania,

częstotliwość występowania awarii,

dostępność systemu,

propagacja błędów,

ilość linii kodu, złożoność kodu, 

złożoność programu,

złożoność obliczeniowa, 

funkcjonalną, modułową,

łatwość implementacji,

rozmiar dokumentacji,

ilość zadań wykonanych 

terminowo i po terminie,

współzależność zadań,

wielkość i koszt projektu,

czas trwania projektu,

zagrożenia projektu (ryzyko),

czas gotowości produktu,

kompletność wymagań, 

kompletność planowania,

stabilność wymagań,

odpowiedniość posiadanych 

zasobów sprzętowych,

materiałowych i ludzkich,

efektywność zespołu, efektywność

poszczególnych osób.

Miary produktu - oprogramowania

background image

Miary produktu - oprogramowania

4

Koszt 

Produktywność

Jakość

Niezawodność

Złożoność

Złożoność obliczeniowa 

(algorytmiczna)

Zgodność ze standardami

Otwartość

Przenaszalność

Rozwijalność

Użyteczność

Efektywność

Podatność na modyfikacji

Satysfakcja użytkownika

Wielkość funkcjonalna (FP)

Długość (np. LOC, software 

science)

Sterowalność (np. V(G) )

Ergonomiczność

Sposób użycia danych

Pielęgnowalność

Miary wielokryterialne

tzw. efekt skali

Zrównoważony System Miar i 

tzw. Strategiczna Karta Wyników

Dojrzałość realizacyjna

oprogramowania

Różne metryki hybrydowe

Istnieją ich setki i wiele wiele 

innych

Które miary 

wybrać do oceny 

produktu?

background image

Podstawowa metryka 
oprogramowania to jego jakość

Zapewnienie jakości to

zespół działań

zmierzających do wytworzenia

u wszystkich

zainteresowanych

przekonania

,

że dostarczony

produkt właściwie realizuje

swoje funkcje

i odpowiada aktualnym

wymaganiom i standardom

.

Jakość oprogramowania można wyrazić technicznymi

czynnikami

mierzalnymi

oraz

niemierzalnymi

obiektywnie czynnikami psychologicznymi.

Podstawą obiektywnych wniosków co do jakości

oprogramowania są

pomiary parametrów

użytkowych

(niezawodności, szybkości działania, itp..

background image

Jakość oprogramowania – metryką 
oprogramowania jako produktu

Jakość gotowych produktów programistycznych jest

bardzo trudna do zmierzenia

ze względu na:

eksplozję danych testowych,

złożoność oprogramowania,

wieloaspektowość,

identyczność wszystkich kopii produktu,

niską przewidywalność wszystkich aspektów

zastosowań oprogramowania w długim czasie.

Gotowe oprogramowanie może mieć zastosowanie 

różnej skali

a przy zmianie skali 

pomiary jakości mogą

okazać się nieadekwatne

,

Pomiary mogą być 

bardzo kosztowne, czasochłonne 

lub niewykonalne

(z powodu niemożliwości stworzenia 

środowiska pomiarowego przed wdrożeniem); 

background image

4

ISO/IEC 9126 Software engineering - Product 

quality

Miary jakości produktu programowego

Part 1: Quality model (2001)

Part 2: External metrics (2003)

Part 3: Internal metrics (2003)

Part 4: Quality in use metrics (2004)

background image

ISO/IEC 9126:2001

Jakość produktu programowego

funkcjonalność

niezawodność

użyteczność

efektywność

konserwowalność

przenośność

dopasowanie

dokładność

łatwość 

współdziałania

bezpieczeństwo

dojrzałość

odporność na 

błędy

odzyskiwalność

zrozumiałość
wyuczalność
operacyjność
atrakcyjność

efektywność 

czasowa

zużycie 

zasobów

analizowalność

zmienialność

stabilność

testowalność

adaptowalność

instalowalność

zgodność

zastępowalność

Jakość użytkowa

efektywność

produktywność

bezpieczeństwo

satysfakcja

background image

4

Związki między miarami jakości produktu 
programowego i procesu jego wytwarzania

wpływa na

wpływa na

wpływa na

zależy od

zależy od

zależy od

jakość

procesu

atrybuty

jakości

wewnętrznej

atrybuty

jakości

zewnętrznej

atrybuty

jakości

użytkowej

Kontekst użycia

Miara 

procesu

Miara 

wewnętrzna

Miara 

zewnętrzna

Miara 

jakości 

użytkowej

Proces

Produkt programowy

Wynik działania produktu

background image

Związki między atrybutami zewnętrznymi i 
wewnętrznymi jakości oprogramowania

Wygoda 

użytkownika

Przenośność

Niezawodność

Zdatność do

pielęgnacji

Liczba parametrów

procedur

Złożoność 

cykliczna

Wielkość programu

w wierszach kodu

Liczba komunikatów

o błędach

Wielkość podręcznika

użytkownika

background image

Związek miar kontrolnych i predykcyjnych 
oprogramowania

Pomiary

kontrolne

Pomiary

predykcyjne 

Produkt 

programowy

Proces tworzenia

oprogramowania

Decyzje 

menedżerskie

background image

europejskie

amerykańskie

japońskie

Zgodność ze 

specyfikacją

Satysfakcja 

użytkownika

Wszystko co 

można poprawić

Niezgodność ze 

specyfikacją

Niespełnienie 

oczekiwań 

użytkownika

Wszystko co 

można poprawić 

(każdy 

mankament)

Obiektywne 

mierzalne kryteria 

techniczne

Subiektywne 
niemierzalne 

oceny 

użytkownika 

Subiektywne i 

obiektywne oceny  

i kryteria

specyfikacje i 

badania kontrolne, 

testowanie, 

nadzorowanie 

procesu, 

standaryzacja

analiza wymagań, 

badania 

konkurencji, 

ocena satysfakcji 

klienta

system 

kompleksowy, 

ciągłe 

doskonalenie

producent

producent

każdy

producent, ekspert

klient, użytkownik, 

laik

każdy

Różne podejścia do problemu jakości

Podejście:

Co podlega ocenie 
jakości

Kiedy jest zła jakość

Jak się mierzy jakość?

Rodzaj systemu 
pomiarowego

Kto odpowiada za 
jakość ?

Kto weryfikuje jakość?

background image

Norma IEEE-730

Norma IEEE-730 podaje 

ogólne ramy planu zapewniania 

jakości.

Powinien on obejmować następujące zagadnienia:

• analiza punktów widzenia
• referencje wykonawcy
• zarządzanie przedsięwzięciem informatycznym
• dokumentacja
• standaryzacja działań
• przeglądy i audyty
• zarządzanie konfiguracją oprogramowania
• raport napotykanych trudności i podjętych działań prewencyjnych
• wykorzystywane metody i narzędzia
• kontrola kodu, mediów, dostawców
• zarządzanie hurtowniami danych
• pielęgnacja

Norma IEEE-730 uzupełniono i uszczegółowiono normą IEEE-983. 

background image

Rola systemów komputerowego

wspomagania procesów 

pomiaru oprogramowania

5

background image

Komputerowe 

wspomaganie 

przedsięwzięć

informatycznych

( np.. CASE, program do 

zarządzania projektami

zarządzania wersjami, 

PRINCE2, Mind Manager, 

CMTJava - narzędzie do 

wyznaczania metryk w 

programach w języku Java 

itp., )

Pakiety wspomagające 
diagnostykę
programów

(programy testujące)

Pakiety 
wspomagające 
organizację

(np.. Hudson w firmie Tieto)

Rodzaje systemów  komputerowego 
wspomagania procesów pomiaru 
oprogramowania

Pakiety 
gromadzące dane i 
historię pomiarów

background image

Ze względu na kompleksowość można podzielić na:

• Cząstkowe
• Pośrednie
• Zintegrowane
• Dedykowane
• Otwarte
• Doradcze
• Wspomagające zarządzanie zasobami
• Elastyczne

Typy narzędzi wspomagających

background image

Podsumownaie i kierunki dalszego 

rozwoju programometrii

6

Rozległy i interdyscyplinarny obszar badań w programometrii
Różnorodność miar

background image

Rozległy i interdyscyplinarny obszar badań w 

programometrii

Obszar

zagadnień

technicznych

Aspekty

ekonomiczne

prawne

społeczno-

polityczne

analiza systemowa

metody optymalizacji i

symulacji 

Metodyki, techniki wytwarzania
Teoria pomiaru, 
Paradygmaty programowania

Monitorowanie i diagnostyka

Analiza ekonometryczna
(ryzyko, koszty, czas, efekty,
Produktywność)
Działanie w zespole 
Kompetencje-role

regulacje prawne

rynek zbytu

Komputerowe 
wspomaganie 
procesów 
wytwarzania,

Pakiety 
wspomagające 
diagnostykę

Pakiety 
wspomagające 
procesy

background image

Różne kategorie pomiarów w programometrii

Metryki techniczne

Metryki jakości

Metryki produktywności

Metryki zorientowane 

na rozmiar

Metryki zorientowane 

na funkcje

Metryki zorientowane 

na ludzi

Miary 
projektu

Miary produktu

Miary

procesu 

programowego

background image

Inne uwagi ogólne o metrykach… programów

Metryki 

są tworzone i stosowane na bazie 

doświadczenia i zdrowego rozsądku,

co obniża ich 

wartość dla tzw. „teoretyków informatyki”.

Metryki powinny być wykorzystywane jako metody 
wspomagania ekspertów. Metryki stosowane 

formalistycznie mogą być groźne.

Najlepiej jest stosować zestawy metryk

, co pozwala 

zmniejszyć błędy pomiarowe.

Przede wszystkim zdrowy rozsądek i doświadczenie.

Pomimo pochodzenia empirycznego, metryki skutecznie 
pomagają w szybkiej i mniej subiektywnej ocenie 
oprogramowania.

Specjalizacja metryk w kierunku konkretnej klasy 
oprogramowania powinna dawać lepsze i bardziej 
adekwatne oceny niż metryki uniwersalne.

Wskazane jest wspomaganie metod opartych na 
metrykach narzędziami programistycznymi.

background image

Inne wnioski…

5

Porównanie miar oprogramowania 

jest 

utrudnione

ze względu na indywidualny charakter 

przedsięwzięć informatycznych, programów, procesów
programowych, miar, braku jednolitego standardu
odniesienia, itp. 

Miary oprogramowania mają często wartości 

kategoryczne (np. miary jakości)

Metryk jakości

należy używać 

na wszystkich 

trzech poziomach

pomiaru oprogramowania 

(proces programowy, przedsięwzięcie programistyczne,

gotowy produkt programowy)

background image

Dylematy programometrii

Programometria dostarcza narzędzi oceny programów i

tak długo jak długo będą programy  wytwarzane tak 
długo należy stosować metody programometrii

Zmienne paradygmaty oprogramowania

wymuszają powoływanie nowych metryk programów

Nowe zastosowania oprogramowania

mogą

wymuszać konieczność  użycia nowych metryk 
oprogramowania

Obszar badawczy programomerii musi być 

ukierunkowany na  nowe metryki

i procesy pomiaru

wynikające z rozwoju metod wytwarzania
oprogramowania, nowych metod projektowania, 
testowania i nowych paradygmatów będących
podstawą procesów wytwarzania oprogramowania

background image

Jednym z problemów związanych z gromadzeniem 
ocen oprogramowania i przedsięwzięć 
informatycznych jest zrozumienie –

analiza pomiarów, 

co te dane naprawdę oznaczają

,

Łatwo jest niewłaściwie zinterpretować dane i 
wyciągnąć niepoprawne wnioski,

W celu obiektywizacji pomiarów oprogramowania 
wydaje się niezbędną 

integracja metod oceny

oprogramowania na poziomie procesu jego 
wytwarzania, na poziomie oceny oprogramowania jako 
produktu gotowego  oraz na obu poziomach łącznie

Podsumowanie

background image

Podsumowanie

5

Dla określenia związku między mirami i rzetelnej oceny

oprogramowania 

wymagana jest integracji źródeł

pomiaru

(danych)

Integracja metod oceny oprogramowania wymaga budowy

zintegrowanej 

ontologii metryk

Gdy pojawi się nowy sposób pomiaru, nowe źródła

danych pomiarowych to dzięki ontologiom możliwe będzie
utworzenie nowej szerszej ontologii 

Pomiar to atrybut cywilizacji

Montaigne napisał o świeżo odkrytym
Nowym Świecie:
„…Jeszcze przed zaledwie pięćdziesięciu 
laty nie znano tu ani pisma, ani wagi, ani 
miary, ani ubrań, ani zboża, ani wina…”

background image

Literatura:

Kan S.H.: Metryki i modele w inżynierii jakości oprogramowania.  PWN SA, 
Warszawa, 2006

Flasiński M.: Wstęp do analitycznych metod projektowania systemów 

informatycznych. WNT, 1997

Jaszkiewicz A.: Inżynieria oprogramowania

Roger S. Pressman, Praktyczne podejście do inżynierii oprogramowania, 
WNT, Warszawa 2004 

Berard V.B.: Metrics for Object-Oriented Software Engineering

Subieta K.: Budowa i integracja systemów informacyjnych

Kulik P.: Software Metrics: State of the Art – 1999

Bliźniuk G.:Miary złożoności i jakości oprogramowania