Wybrane problemy
programometrii
Dr hab. Bożena Śmiałkowska
Zachodniopomorski Uniwersytet Technologiczny w Szczecinie
Wydział Informatyki
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
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/
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ą
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ą
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
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
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
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.
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,
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ą.
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.
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
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
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
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
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
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
i
należy tak sterować wszystkimi fazami tego procesu, aby
klient był zadowolony z wytworzonego oprogramowania
– z tą ideą
zgadza się ogół
.
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
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
i
metryki
OPROGRAMOWANIE
jako gotowy produkt
Procesy wytwarzania
oprogramowania wraz z zasobami
niezbędnymi do tworzenia oprogramowania
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
i
metryki
OPROGRAMOWANIE
jako gotowy produkt
Przedsięwzięcie
programistyczne
Procesy wytwórcze firmy
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
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
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
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
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
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ż:
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
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
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
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
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
i
p
ro
c
e
s
u
w
y
tw
a
rza
n
ia
o
p
ro
gra
mow
a
n
ia
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
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
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
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
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.
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)
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:
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
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ść, ...
....
....
....
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ść,...
....
....
....
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
e
na ogólną
Wydajność
Zasobów
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
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ść
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)?
?
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
Wykład 30.05.2012
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
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
Oczekiwania względem oprogramowania to
miara przedsięwzięcia informatycznego
(projektu)
Wymagania
Software
A jaka jest rzeczywistość?
Wymagania
OPÓŹNIENIE
OPÓŹNIENIE
Software
k
Cztery wymiary bieżącej oceny przedsięwzięcia
informatycznego
oprogramowanie
koszt
zakres
czas
jako
ś
ć
krótki termin
wysoka jakość
niski koszt
wysoka
akceptacja
użytkownika
(ZAKRES)
przebieg typowy
przebieg
zalecany
przebieg
maksymalny
Realizacja oprogramowania jako kompromis
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
Podział miar produktu programowego
Pomiar produktu
oprogramowania
Miary statyczne
Miary dynamiczne
pomiary
wykonującego się
programu.
pomiary
reprezentacji
systemu, takich
jak projekt,
program,
dokumentacja
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
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?
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..
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
w
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);
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)
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
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
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
Związek miar kontrolnych i predykcyjnych
oprogramowania
Pomiary
kontrolne
Pomiary
predykcyjne
Produkt
programowy
Proces tworzenia
oprogramowania
Decyzje
menedżerskie
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ść?
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.
Rola systemów komputerowego
wspomagania procesów
pomiaru oprogramowania
5
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
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
Podsumownaie i kierunki dalszego
rozwoju programometrii
6
Rozległy i interdyscyplinarny obszar badań w programometrii
Różnorodność miar
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
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
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.
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)
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
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
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…”
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