Etapy życia oprogramowania Etapy życia oprogramowania

Transkrypt

Etapy życia oprogramowania Etapy życia oprogramowania
Modele cyklu życia
projektu informatycznego
Organizacja i Zarządzanie Projektem
Informatycznym
Jarosław Francik
marzec 2003
w prezentacji wykorzystano również materiały
przygotowane przez Michała Kolano
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Etapy życia oprogramowania
• Faza strategiczna (cele i definicja projektu)
ustalenie celów i definicji projektu; cele biznesowe
• Definiowanie wymagań
zrozumienie celów klienta i ich zamiana na formalną
specyfikację tego, co i przy jakich założeniach system ma robić
• Analiza
zrozumienie dziedziny problemu, zakresu obowiązków systemu
ustalenie celów systemu, specyfikacja problemu
• Projektowanie
w jaki sposób system ma działać, by spełnić wymagania
• Implementacja
tworzenie systemu (narzędzia, gotowe komponenty)
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Etapy życia oprogramowania
• Testowanie
weryfikacja zgodności ze specyfikacją, poprawienie błędów
• Dokumentacja
przygotowanie materiałów dla członków zespołu
projektowego oraz użytkowników
• Instalacja
uruchomienie systemu u klienta
• Wdrożenie
przygotowanie użytkowników, akceptacja, szkolenie
• Pielęgnacja
utrzymanie, konserwacja – w trakcie użytkowania systemu
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
1
Etapy życia oprogramowania
Określenie wymagań
Faza strategiczna
Projektowanie
Implementacja
Analiza
Testowanie
Pielęgnacja
Instalacja
Dokumentacja
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Modele cyklu życia projektu
• Model kaskadowy
separacja faz specyfikacji i implementacji
• Model ewolucyjny
przeplatanie się faz specyfikacji i implementacji
• Model spiralny
elementy modelu kaskadowego i ewolucyjnego
• Różne odmiany i modyfikacje
• Modele nietypowe…
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
2
Model kaskadowy
Model kaskadowy
Określenie
Określenie
wymagań
wymagań
Analiza
Analiza
Projektowanie
Projektowanie
Implementacja
Implementacja
Testowanie
Testowanie
Konserwacja
Konserwacja
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Model kaskadowy
Określenie
Określenie
wymagań
wymagań
PROTOTYP
PROTOTYP
Model kaskadowy
z prototypowaniem
Analiza
Analiza
Projektowanie
Projektowanie
zalety:
zalety:
prototypowanie:
prototypowanie:
––wstępne
wstępnewymagania
wymagania
––weryfikacja
weryfikacjaprototypu
prototypu
––pełna
pełnaspecyfikacja
specyfikacjawymagań
wymagań
cel:
cel:
Implementacja
––wczesna
demonstracja
Implementacja
wczesna
demonstracjamożliwości
możliwościsystemu
systemu
––wstępne
wstępneszkolenia
szkolenia
wady:
wady:
Testowanie
Testowanie
–– koszty
kosztyprzygotowania
przygotowaniaprototypu
prototypu
Konserwacja
––zagrożenie
Konserwacja
zagrożenie„przetrzymywaniem
„przetrzymywaniemprototypu”
prototypu”
błędów
wwspecyfikacji
–– wykrycie
Institute
of Informatics,
Silesian
University ofwymagań
Technology, Gliwice, Poland
wykrycie
błędów
specyfikacji
wymagań
Model kaskadowy
Model kaskadowy
z iteracjami
Określenie
Określenie
wymagań
wymagań
Analiza
Analiza
Projektowanie
Projektowanie
Implementacja
Implementacja
Testowanie
Testowanie
Konserwacja
Konserwacja
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
3
Model kaskadowy
• Zalety modelu kaskadowego:
– Łatwość harmonogramowania i budżetowania
– Formalny odbiór poszczególnych etapów (kamienie
milowe, milestones): monitorowanie postępu prac
– Rozliczenia finansowe z klientem
– Możliwość realizacji sterowanej dokumentami
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Model kaskadowy
• Wady modelu kaskadowego:
–
–
–
–
narzucona ścisła kolejność faz
wysoki koszt błędów ze wczesnych faz
problemy ze wprowadzaniem zmian
długa przerwa w kontaktach z klientem
…stąd modyfikacje tego modelu
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Model kaskadowy
• Model kaskadowy:
– Ułatwia zarządzanie projektem
– Utrudnia wprowadzanie zmian
– Zwiększa koszty błędów
często pożądany przez kierownictwo
część odpowiedzialności spychana jest
na zespół projektowy
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
4
Model ewolucyjny
Model ewolucyjny
Zarys
Zarys
systemu
systemu
Specyfikacja
Specyfikacja
Wersja
Wersja
początkowa
początkowa
Rozwój
Rozwój
systemu
systemu
Wersje
pośrednie
Weryfikacja
Weryfikacja
Wersja
Wersja
końcowa
końcowa
czynności przebiegające
równolegle
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Model ewolucyjny
Model ewolucyjny
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Model ewolucyjny
• Zalety:
– dobry dla małych projektów, szybki start projektu
– tolerancja dla słabo zdefiniowanych wymagań
– niski koszt błędów (krótki czas życia błędów)
• Wady:
– trudność z harmonogramowaniem
– koszty prototypowania, błądzenia
– systemy często o złej strukturze
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
5
Model ewolucyjny
• Model ewolucyjny:
– Utrudnia zarządzanie projektem
– Wprowadzanie zmian immanentną cechą tego modelu
– Zwiększa ryzyko błędów, ale zmniejsza ich koszty
rzadko preferowany przez kierownictwo
często kształtuje się tam,
gdzie brakuje dobrego zarządzania
charakterystyczny dla projektów jednoosobowych
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Modele – porównanie
model
model
model
kaskadowy ewolucyjny iteracyjny
zarządzanie
elastyczność
ryzyko błędów
koszty błędów
+
–
↓
↑
–
+
↑
↓
+
+
↓
↓
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Model iteracyjny (spiralny)
• podobny do iteracyjnego modelu kaskadowego
• nacisk na wielokrotne prototypowanie
• powtarzanie modelu kaskadowego
• każdy cykl kończy się stworzeniem prototypu,
jego weryfikacją i wyciągnięciem wniosków
• mocny punkt: zarządzanie ryzykiem
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
6
Model iteracyjny
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Model iteracyjny
Analiza
(planowanie)
Projektowanie
Testowanie
(ocena)
Konstrukcja
(prototypowanie)
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Model spiralny Boehma
Przegląd
ustalanie celów i
alternatywnych dróg
Przegląd
Przegląd
Przegląd
Przegląd
Plan cyklu życia i
akwizycji wymagań
Planowanie
następnej fazy
Planowanie tworzenia
(rozwijania)
Planowanie scalania i
testowania
Analiza
ryzyka
Analiza
ryzyka
Identyfikacja
i analiza ryzyka
prototypy
Prototyp
Analiza
ryzyka
Prototyp 3
operacyjny
Prototyp 2
Analiza
ryzyka Proto
typ 1
Koncepcja
działania
Symulacja, modele, testy wydajności
Wymagani
a
Projekt
Projekt
Walidacja
produktu szczegółowy
wymagań
Kod
Walidacja
Test jednostek
produktu
Test
Test
scalania
akceptacyjny
Obsługa
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Konstrukcja
Atestowanie
7
Model iteracyjny
• Zalety modelu iteracyjnego:
– harmonogramowanie i budżetowanie – dość łatwe,
choć utrudnione ze względu na liczbę iteracji
– możliwość wyznaczenia kamieni milowych,
choć nie tak oczywistych jak w modelu kaskadowym
– elastyczność, łatwość wprowadzania zmian
– wczesne wykrywanie błędów
– zarządzanie ryzykiem
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Model iteracyjny
• Wady modelu iteracyjnego:
– nie tak łatwe, jak w modelu kaskadowym, zarządzanie
– narzucone przez klienta wymogi dot. harmonogramu
mogą utrudniać skorzystanie z tego modelu
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Model iteracyjny
• Model iteracyjny:
– Zarządzanie projektem lekko utrudnione
– Wprowadzanie zmian immanentną cechą tego modelu
– Pozwala na wczesne wykrywanie błędów
dobry kompromis pomiędzy
modelem kaskadowym i ewolucyjnym,
dodatkowo pozbawiony wad tego ostatniego
często uważany za najdoskonalszy wytwór
inżynierii oprogramowania w tej dziedzinie
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
8
Modele – porównanie
model
model
model
kaskadowy ewolucyjny iteracyjny
zarządzanie
elastyczność
ryzyko błędów
koszty błędów
+
–
↓
↑
+
–
+
↑
↓
+
↓
↓
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Inne modele
• Programowanie odkrywcze
próbuj…
próbuj…
nie
OK?
tak
koniec
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Inne modele
Transformacje formalne
dowód
poprawności
Formalna
Formalna
specyfikacja
specyfikacja
wymagań
wymagań
dowód
poprawności
Postać
Postać
pośrednia
pośrednia
dowód
poprawności
Postać
Postać
pośrednia
pośrednia
Postać
Postać
pośrednia
pośrednia
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
System
System
(kod)
(kod)
9
Inne modele
Montaż z gotowych elementów
Specyfikacja
Specyfikacja
wymagań
wymagań
Analiza
Analiza
komponentów
komponentów
Modyfikacja
Modyfikacja
wymagań
wymagań
Projekt
Projekt
wwoparciu
oparciu
ookomponenty
komponenty
Weryfikacja
Weryfikacja
systemu
systemu
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Inne modele
Określenie
Określenie
wymagań
wymagań
Realizacja przyrostowa
Ogólny
Ogólny
projekt
projekt
Wybór
Wybór
podzbioru
podzbioru
funkcji
funkcji
Szczegółowy
Szczegółowy
projekt,
projekt,
implementacja
implementacja
testy
testy
Dostarczenie
Dostarczenie
zrealizowanej
zrealizowanej
części
części
systemu
systemu
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
10
Propagacja błędów
• Zasada 1:10
• Wyniki badań wg Pressmana
Faza
projektowania
Przed
rozpoczę
rozpoczęciem
testowania
W trakcie
testowania
Po przekazaniu
do eksploatacji
1
6,5
15
67
Koszt
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Propagacja błędów
błędy z poprzednich
etapów
Defekty
Wykrywanie
Błędy przepuszczone
Błędy wzmacniane
Nowe błędy
%
skuteczności
wykrywania
błędów
błędy przekazane
do następnego
etapu
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Propagacja błędów
bez testów
kończących
fazy
0
0
0%
10
10
6
6
projektowanie
wstępne
25
10
81
projektowanie
szczegółowe
4*1,5
0
0
0%
37
70%
10
projektowanie
wstępne
2
1,5
50%
25
projektowanie
szczegółowe
1*1,5
20%
94
25
3
15
94
0
test kodu/
jednostek
27*3
47
47
0
test scalania
5
30
50%
0
60%
25
test kodu/
jednostek
10*3
50%
24
0
24
24
0
50%
test
walidacyjny
24
50%
12
12
0
test scalania
z testami
kończącymi
fazy
test
systemowy
12
0
50%
0
test
walidacyjny
6
6
50%
3
test
systemowy
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
11
Zamiast podsumowania…
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Model projektu RUP
• RUP – Rational Unified Process
®Rational Software
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
12