1
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
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
Etapy życia oprogramowania
Określenie wymagań
Projektowanie
Implementacja
Testowanie
Pielęgnacja
Faza strategiczna
Analiza
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…
2
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Model kaskadowy
Model kaskadowy
Określenie
wymagań
Określenie
wymagań
Projektowanie
Projektowanie
Implementacja
Implementacja
Testowanie
Testowanie
Konserwacja
Konserwacja
Analiza
Analiza
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Model kaskadowy
Model kaskadowy
z prototypowaniem
Określenie
wymagań
Określenie
wymagań
Projektowanie
Projektowanie
Implementacja
Implementacja
Testowanie
Testowanie
Konserwacja
Konserwacja
Analiza
Analiza
PROTOTYP
PROTOTYP
prototypowanie:
– wstępne wymagania
– weryfikacja prototypu
– pełna specyfikacja wymagań
cel:
–
wykrycie błędów w specyfikacji wymagań
prototypowanie:
– wstępne wymagania
– weryfikacja prototypu
– pełna specyfikacja wymagań
cel:
–
wykrycie błędów w specyfikacji wymagań
zalety:
– wczesna demonstracja możliwości systemu
– wstępne szkolenia
wady:
–
koszty przygotowania prototypu
– zagrożenie „przetrzymywaniem prototypu”
zalety:
– wczesna demonstracja możliwości systemu
– wstępne szkolenia
wady:
–
koszty przygotowania prototypu
– zagrożenie „przetrzymywaniem prototypu”
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Model kaskadowy
Model kaskadowy
z iteracjami
Określenie
wymagań
Określenie
wymagań
Projektowanie
Projektowanie
Implementacja
Implementacja
Testowanie
Testowanie
Konserwacja
Konserwacja
Analiza
Analiza
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
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
3
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Model ewolucyjny
Model ewolucyjny
Zarys
systemu
Zarys
systemu
Specyfikacja
Specyfikacja
Rozwój
systemu
Rozwój
systemu
Weryfikacja
Weryfikacja
Wersja
początkowa
Wersja
początkowa
Wersja
końcowa
Wersja
końcowa
Wersje
pośrednie
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
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
↓
↑
koszty błędów
↑
↓
ryzyko błędów
+
–
elastyczność
–
+
zarządzanie
model
ewolucyjny
model
kaskadowy
↓
↓
↑
koszty błędów
↓
↑
↓
ryzyko błędów
+
+
–
elastyczność
+
–
+
zarządzanie
model
iteracyjny
model
ewolucyjny
model
kaskadowy
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
4
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Model iteracyjny
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Model iteracyjny
Projektowanie
Analiza
(planowanie)
Testowanie
(ocena)
Konstrukcja
(prototypowanie)
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Model spiralny Boehma
Analiza
ryzyka
Analiza
ryzyka
Analiza
ryzyka
Analiza
ryzyka Proto
typ 1
Prototyp 2
Prototyp 3
Prototyp
operacyjny
Symulacja, modele, testy wydajności
Koncepcja
działania Wymagani
a
Walidacja
wymagań
Projekt
produktu
Walidacja
produktu
Obsługa
Test
akceptacyjny
Test
scalania
Test jednostek
Kod
Projekt
szczegółowy
Planowanie scalania i
testowania
Planowanie tworzenia
(rozwijania)
Plan cyklu życia i
akwizycji wymagań
Przegląd
Przegląd
Przegląd
Przegląd
Identyfikacja
i analiza ryzyka
prototypy
Przegląd
ustalanie celów i
alternatywnych dróg
Planowanie
następnej fazy
Konstrukcja
Atestowanie
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
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
5
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Modele – porównanie
↓
↓
↑
koszty błędów
↓
↑
↓
ryzyko błędów
+
+
–
elastyczność
+
–
+
zarządzanie
model
iteracyjny
model
ewolucyjny
model
kaskadowy
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Inne modele
• Programowanie odkrywcze
OK?
nie
tak
koniec
próbuj…
próbuj…
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Inne modele
Transformacje formalne
Formalna
specyfikacja
wymagań
Formalna
specyfikacja
wymagań
System
(kod)
System
(kod)
Postać
pośrednia
Postać
pośrednia
Postać
pośrednia
Postać
pośrednia
dowód
poprawności
dowód
poprawności
dowód
poprawności
Postać
pośrednia
Postać
pośrednia
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Inne modele
Montaż z gotowych elementów
Specyfikacja
wymagań
Specyfikacja
wymagań
Analiza
komponentów
Analiza
komponentów
Modyfikacja
wymagań
Modyfikacja
wymagań
Projekt
w oparciu
o komponenty
Projekt
w oparciu
o komponenty
Weryfikacja
systemu
Weryfikacja
systemu
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Inne modele
Realizacja przyrostowa
Określenie
wymagań
Określenie
wymagań
Ogólny
projekt
Ogólny
projekt
Wybór
podzbioru
funkcji
Wybór
podzbioru
funkcji
Szczegółowy
projekt,
implementacja
testy
Szczegółowy
projekt,
implementacja
testy
Dostarczenie
zrealizowanej
części
systemu
Dostarczenie
zrealizowanej
części
systemu
6
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Propagacja błędów
• Zasada 1:10
• Wyniki badań wg Pressmana
Faza
Faza
projektowania
projektowania
Przed
Przed
rozpocz
rozpocz
ę
ę
ciem
ciem
testowania
testowania
W
W
trakcie
trakcie
testowania
testowania
Po
Po
przekazaniu
przekazaniu
d
d
o
o
eksploatacji
eksploatacji
Koszt
1
6,5
15
67
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Propagacja błędów
Błędy wzmacniane
Błędy przepuszczone
Nowe błędy
%
skuteczności
wykrywania
błędów
błędy z poprzednich
etapów
błędy przekazane
do następnego
etapu
Defekty
Wykrywanie
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Propagacja błędów
0
0
10
0%
6
6
25
0%
10
10
81
25
20%
37
94
0
0
50%
47
0
0
50%
24
50%
94
47
24
12
projektowanie
wstępne
projektowanie
szczegółowe
4*1,5
test kodu/
jednostek
27*3
test scalania
test
walidacyjny
test
systemowy
0
0
10
70%
2
1,5
25
50%
3
5
30
25
60%
15
24
0
0
50%
12
0
0
50%
6
50%
24
12
6
3
projektowanie
wstępne
projektowanie
szczegółowe
1*1,5
test kodu/
jednostek
10*3
test scalania
test
walidacyjny
test
systemowy
bez testów
kończących
fazy
z testami
kończącymi
fazy
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Zamiast podsumowania…
Institute of Informatics, Silesian University of Technology, Gliwice, Poland
Model projektu RUP
• RUP – Rational Unified Process
®Rational Software