Cykl życia
Cykl życia
oprogramowania
oprogramowania
AUTORZY: Filip Jakubowski-Drzewiecki,
AUTORZY: Filip Jakubowski-Drzewiecki,
Tomasz Ściwiarski
Tomasz Ściwiarski
1.06.21
2
Filip Jakubowski-Drzewiecki, To
masz Ściwiarski
Plan Prezentacji
Plan Prezentacji
•
Wstęp.
Wstęp.
•
Modele cyklu życia oprogramowania.
Modele cyklu życia oprogramowania.
•
Omówienie faz cyklu życia
Omówienie faz cyklu życia
oprogramowania.
oprogramowania.
•
Podsumowanie.
Podsumowanie.
1.06.21
3
Filip Jakubowski-Drzewiecki, To
masz Ściwiarski
Różne modele cykli
Różne modele cykli
Kaskadowy
Kaskadowy
Realizacja kierowana dokumentami
Realizacja kierowana dokumentami
Prototypowanie
Prototypowanie
Programowanie odkrywcze
Programowanie odkrywcze
Spiralny
Spiralny
Formalne transformacje
Formalne transformacje
1.06.21
4
Filip Jakubowski-Drzewiecki, To
masz Ściwiarski
Model Kaskadowy
Model Kaskadowy
(Wodospadu, Liniowy)
(Wodospadu, Liniowy)
Określenie wymagań
Określenie wymagań
Analiza
Analiza
Projektowanie
Projektowanie
Implementacja
Implementacja
Testowanie
Testowanie
Konserwacja
Konserwacja
1.06.21
5
Filip Jakubowski-Drzewiecki, To
masz Ściwiarski
Realizacja kierowana
Realizacja kierowana
dokumentami
dokumentami
Każda faza kończy się opracowaniem szeregu
Każda faza kończy się opracowaniem szeregu
dokumentów
dokumentów
Zaleta:
Zaleta:
Przerwanie realizacji w dowolnym czasie i wznowienie
Przerwanie realizacji w dowolnym czasie i wznowienie
jej przez inną firmę
jej przez inną firmę
Wady:
Wady:
Ponad 50% więcej nakładu pracy na opracowanie
Ponad 50% więcej nakładu pracy na opracowanie
dokumentów zgodnych ze standardem.
dokumentów zgodnych ze standardem.
Przerwy w realizacji przedsięwzięcia niezbędne
Przerwy w realizacji przedsięwzięcia niezbędne
dla weryfikacji dokumentów przez klienta
dla weryfikacji dokumentów przez klienta
1.06.21
6
Filip Jakubowski-Drzewiecki, To
masz Ściwiarski
Prototypowanie
Prototypowanie
Ogólne określenie wymagań
Ogólne określenie wymagań
Budowa prototypu
Budowa prototypu
Weryfikacja prototypu przez klienta
Weryfikacja prototypu przez klienta
Pełne określenie wymagań
Pełne określenie wymagań
Realizacja pełnego systemu zgodnie
Realizacja pełnego systemu zgodnie
z modelem kaskadowym
z modelem kaskadowym
1.06.21
7
Filip Jakubowski-Drzewiecki, To
masz Ściwiarski
Prototypowanie c.d.
Prototypowanie c.d.
Zalety:
Zalety:
Wczesna
Wczesna
demonstracja
demonstracja
działającej wersji
działającej wersji
systemu
systemu
Możliwość
Możliwość
szkolenia przed
szkolenia przed
wykonaniem
wykonaniem
systemu
systemu
Wady:
Wady:
Dodatkowy koszt
Dodatkowy koszt
budowy prototypu
budowy prototypu
Długi czas
Długi czas
oczekiwania na
oczekiwania na
całkowitą wersję
całkowitą wersję
programu w
programu w
stosunku do
stosunku do
oczekiwania na
oczekiwania na
prototyp
prototyp
1.06.21
8
Filip Jakubowski-Drzewiecki, To
masz Ściwiarski
Programowanie
Programowanie
odkrywcze
odkrywcze
1.
1.
Określenie ogólnego wymagania
Określenie ogólnego wymagania
2.
2.
Budowa systemu
Budowa systemu
3.
3.
Testowanie systemu
Testowanie systemu
4.
4.
Jesli niedziała to powrót do punktu
Jesli niedziała to powrót do punktu
2
2
5.
5.
Dostarczenie systemu
Dostarczenie systemu
1.06.21
9
Filip Jakubowski-Drzewiecki, To
masz Ściwiarski
Programowanie
Programowanie
odkrywcze c.d.
odkrywcze c.d.
Zaleta:
Zaleta:
Możliwość stosowania w wypadkach,
Możliwość stosowania w wypadkach,
kiedy trudno jest określić wymagania
kiedy trudno jest określić wymagania
klienta
klienta
Wady:
Wady:
Praktycznie niemożliwe zachowanie
Praktycznie niemożliwe zachowanie
sensownej struktury
sensownej struktury
Testowanie może odbywać się prawie
Testowanie może odbywać się prawie
wyłącznie przy bezpośrednim udziale
wyłącznie przy bezpośrednim udziale
klienta
klienta
1.06.21
10
Filip Jakubowski-Drzewiecki, To
masz Ściwiarski
Realizacja przyrostowa
Realizacja przyrostowa
Zalety:
Zalety:
Skrócenie przerw w kontaktach z klientem
Skrócenie przerw w kontaktach z klientem
Możliwość wczesnego wykorzystania przez
Możliwość wczesnego wykorzystania przez
klienta dostarczonych frgmentów systemu
klienta dostarczonych frgmentów systemu
Opóźnienie realizacja fragmentu systemu nie
Opóźnienie realizacja fragmentu systemu nie
wpływa na opóźnienie realizacji całego
wpływa na opóźnienie realizacji całego
przedsięwzięcia
przedsięwzięcia
Wada:
Wada:
Dodatkowy koszt związany z realizacją
Dodatkowy koszt związany z realizacją
niezależnego fragmentu systemu
niezależnego fragmentu systemu
1.06.21
11
Filip Jakubowski-Drzewiecki, To
masz Ściwiarski
Montaż z gotowych
Montaż z gotowych
elementów
elementów
(programowanie z półki)
(programowanie z półki)
Zalety:
Zalety:
Wysoka niezawodność
Wysoka niezawodność
Zmniejszenie ryzyka błedów
Zmniejszenie ryzyka błedów
Potencjalna redukcja kosztów
Potencjalna redukcja kosztów
Wady:
Wady:
Dodatkowy koszt przygotowania elementów
Dodatkowy koszt przygotowania elementów
do ponownego użycia
do ponownego użycia
Ryzyko uzależnienia się od dostawcy
Ryzyko uzależnienia się od dostawcy
elementów
elementów
Brak narzędzi wspomagających ten rodzaj
Brak narzędzi wspomagających ten rodzaj
pracy
pracy
1.06.21
12
Filip Jakubowski-Drzewiecki, To
masz Ściwiarski
Model spiralny
Model spiralny
Analiza rezyka
Analiza rezyka
Konstrukcja (model kaskaowy)
Konstrukcja (model kaskaowy)
Atestowanie
Atestowanie
Planowanie
Planowanie
1.06.21
13
Filip Jakubowski-Drzewiecki, To
masz Ściwiarski
Formalne transformacje
Formalne transformacje
Formalna specyfikacja wymagań
Formalna specyfikacja wymagań
Postać pośrednia...
Postać pośrednia...
Kod
Kod
1.06.21
14
Filip Jakubowski-Drzewiecki, To
masz Ściwiarski
Formalne transformacje
Formalne transformacje
c.d.
c.d.
Zaleta:
Zaleta:
Wysoka niezawodność tak stworzonego
Wysoka niezawodność tak stworzonego
oprogramowania
oprogramowania
Wady:
Wady:
Trudność formalnego wyspecyfikowania
Trudność formalnego wyspecyfikowania
wymagań
wymagań
Mała efektywność kodu uzyskanego w ten
Mała efektywność kodu uzyskanego w ten
sposób
sposób
Brak dobrze rozwiniętych, uniwersalnych
Brak dobrze rozwiniętych, uniwersalnych
języków formalnej specyfikacji wymagań
języków formalnej specyfikacji wymagań
1.06.21
15
Filip Jakubowski-Drzewiecki, To
masz Ściwiarski
Faza Strategiczna (1)
Faza Strategiczna (1)
Czynności Fazy Strategicznej
Czynności Fazy Strategicznej
Dokonanie serii rozmów (wywiadów) z przedstawicielami
Dokonanie serii rozmów (wywiadów) z przedstawicielami
klienta
klienta
Określenie celów przedsięwzięcia z punktu widzenia klienta
Określenie celów przedsięwzięcia z punktu widzenia klienta
Określenie zakresu oraz kontekstu przedsięwzięcia
Określenie zakresu oraz kontekstu przedsięwzięcia
Ogólne określenie wymagań, wykonanie zgrubnej analizy i
Ogólne określenie wymagań, wykonanie zgrubnej analizy i
projektu systemu
projektu systemu
Propozycja kilku możliwych rozwiązań (sposobów realizacji
Propozycja kilku możliwych rozwiązań (sposobów realizacji
systemu)
systemu)
Oszacowanie kosztów oprogramowania
Oszacowanie kosztów oprogramowania
Analiza rozwiązań
Analiza rozwiązań
Prezentacja wyników fazy strategicznej przedstawicielom
Prezentacja wyników fazy strategicznej przedstawicielom
klienta oraz korekta wyników
klienta oraz korekta wyników
Określenie wstępnego harmonogramu przedsięwzięcia oraz
Określenie wstępnego harmonogramu przedsięwzięcia oraz
struktury zespołu realizatorów
struktury zespołu realizatorów
Określenie standardów, zgodnie z którymi realizowane będzie
Określenie standardów, zgodnie z którymi realizowane będzie
przedsięwzięcie
przedsięwzięcie
1.06.21
16
Filip Jakubowski-Drzewiecki, To
masz Ściwiarski
Faza Strategiczna
Faza Strategiczna
Wyodrębnienie w procesie projektowania klienta,
Wyodrębnienie w procesie projektowania klienta,
użytkownika i wykonawcę.
użytkownika i wykonawcę.
Określenie celów z punktu widzenia klienta.
Określenie celów z punktu widzenia klienta.
Określenie ograniczeń klienta.
Określenie ograniczeń klienta.
Zakres przedsięwzięcia
Zakres przedsięwzięcia
: określenie fragmentu
: określenie fragmentu
procesów informacyjnych zachodzących w organizacji,
procesów informacyjnych zachodzących w organizacji,
które będą objęte przedsięwzięciem. Na tym etapie
które będą objęte przedsięwzięciem. Na tym etapie
może nie być jasne, które funkcje będą wykonywane
może nie być jasne, które funkcje będą wykonywane
przez oprogramowanie, a które przez personel, inne
przez oprogramowanie, a które przez personel, inne
systemy lub standardowe wyposażenie sprzętu.
systemy lub standardowe wyposażenie sprzętu.
Kontekst przedsięwzięcia:
Kontekst przedsięwzięcia:
systemy, organizacje,
systemy, organizacje,
użytkownicy zewnętrzni, z którymi tworzony system
użytkownicy zewnętrzni, z którymi tworzony system
ma współpracować.
ma współpracować.
Decyzje Strategiczne i ograniczenia
Decyzje Strategiczne i ograniczenia
1.06.21
17
Filip Jakubowski-Drzewiecki, To
masz Ściwiarski
Faza Strategiczna (3)
Faza Strategiczna (3)
Studium i ocena problemu
Studium i ocena problemu
Wybór narzędzi modelowania i
Wybór narzędzi modelowania i
prognozowania.
prognozowania.
Problem może się nie kalkulować (np.
Problem może się nie kalkulować (np.
finansowo).
finansowo).
Określanie możliwych terminów.
Określanie możliwych terminów.
Ocena Ryzyka
Ocena Ryzyka
1.06.21
18
Filip Jakubowski-Drzewiecki, To
masz Ściwiarski
Faza Strategiczna (4)
Faza Strategiczna (4)
Na koszt oprogramowania składa się:
Na koszt oprogramowania składa się:
koszt sprzętu będącego częścią
koszt sprzętu będącego częścią
tworzonego systemu
tworzonego systemu
koszt wyjazdów i szkoleń
koszt wyjazdów i szkoleń
koszt zakupu narzędzi
koszt zakupu narzędzi
nakład pracy
nakład pracy
1.06.21
19
Filip Jakubowski-Drzewiecki, To
masz Ściwiarski
Faza Analizy
Faza Analizy
Rezultaty Fazy Strategicznej
Rezultaty Fazy Strategicznej
Dokument będący podstawą dalszych prac i rozmów.
Dokument będący podstawą dalszych prac i rozmów.
definicję celów przedsięwzięcia
definicję celów przedsięwzięcia
opis zakresu przedsięwzięcia
opis zakresu przedsięwzięcia
opis systemów zewnętrznych, z którymi system będzie
opis systemów zewnętrznych, z którymi system będzie
współpracować
współpracować
ogólny opis wymagań
ogólny opis wymagań
ogólny model systemu
ogólny model systemu
opis proponowanego rozwiązania
opis proponowanego rozwiązania
oszacowanie kosztów
oszacowanie kosztów
wstępny harmonogram prac
wstępny harmonogram prac
Raport oceny rozwiązań, zawierający informację o rozważanych
Raport oceny rozwiązań, zawierający informację o rozważanych
rozwiązaniach oraz przyczynach wyboru jednego z nich.
rozwiązaniach oraz przyczynach wyboru jednego z nich.
Opis wymaganych zasobów - pracownicy, oprogramowanie,
Opis wymaganych zasobów - pracownicy, oprogramowanie,
sprzęt, lokale, ...
sprzęt, lokale, ...
Definicje standardów.
Definicje standardów.
Harmonogram fazy analizy
Harmonogram fazy analizy
1.06.21
20
Filip Jakubowski-Drzewiecki, To
masz Ściwiarski
Faza Analizy (1)
Faza Analizy (1)
Celem fazy analizy jest ustalenie
Celem fazy analizy jest ustalenie
wymagań klienta wobec
wymagań klienta wobec
tworzonego systemu. Dokonywana
tworzonego systemu. Dokonywana
jest zamiana celów klienta na
jest zamiana celów klienta na
konkretne wymagania
konkretne wymagania
zapewniające osiągnięcie tych
zapewniające osiągnięcie tych
celów.
celów.
Klient rzadko wie, jakie wymagania
Klient rzadko wie, jakie wymagania
zapewnią osiągniecie jego celów.
zapewnią osiągniecie jego celów.
1.06.21
21
Filip Jakubowski-Drzewiecki, To
masz Ściwiarski
Faza Analizy (2)
Faza Analizy (2)
Wywiady i przeglądy
Wywiady i przeglądy
.
.
Studia na istniejącym
Studia na istniejącym
oprogramowaniem
oprogramowaniem
..
..
Studia wymagań systemowych
Studia wymagań systemowych
.
.
Studia osiągalności
Studia osiągalności
..
..
Prototypowanie
Prototypowanie
.
.
1.06.21
22
Filip Jakubowski-Drzewiecki, To
masz Ściwiarski
Faza Analizy (3)
Faza Analizy (3)
Dostępne źródła informacji
Dostępne źródła informacji
Wywiady i przeglądy
Wywiady i przeglądy
.
.
Studia na istniejącym
Studia na istniejącym
oprogramowaniem
oprogramowaniem
..
..
Studia wymagań systemowych
Studia wymagań systemowych
.
.
Studia osiągalności
Studia osiągalności
..
..
Prototypowanie
Prototypowanie
.
.
1.06.21
23
Filip Jakubowski-Drzewiecki, To
masz Ściwiarski
Faza Analizy (4)
Faza Analizy (4)
Dostępne narzędzia analizy
Dostępne narzędzia analizy
Język naturalny
Język naturalny
Formalizm matematyczny
Formalizm matematyczny
.
.
Język naturalny strukturalny
Język naturalny strukturalny
Tablice, formularze
Tablice, formularze
.
.
Diagramy blokowe
Diagramy blokowe
Diagramy kontekstowe
Diagramy kontekstowe
Diagramy przypadków użycia
Diagramy przypadków użycia
1.06.21
24
Filip Jakubowski-Drzewiecki, To
masz Ściwiarski
Faza Analizy (5)
Faza Analizy (5)
Wymaganie Funkcjonalne
Wymaganie Funkcjonalne
Określenie użytkowników systemu.
Określenie użytkowników systemu.
Określenie dostępnych funkcji dla użytkowników.
Określenie dostępnych funkcji dla użytkowników.
Określenie środowiska zewnętrznego dla
Określenie środowiska zewnętrznego dla
systemu.
systemu.
Wymagania Niefunkcjonalne
Wymagania Niefunkcjonalne
Wymagania dotyczące produktu
Wymagania dotyczące produktu
. (ograniczenia
. (ograniczenia
dla programu)
dla programu)
Wymagania dotyczące procesu
Wymagania dotyczące procesu
. (np. standardy)
. (np. standardy)
Wymagania zewnętrzne
Wymagania zewnętrzne
. (środowiskowe np.
. (środowiskowe np.
zew. Baza danych)
zew. Baza danych)
1.06.21
25
Filip Jakubowski-Drzewiecki, To
masz Ściwiarski
Faza Analizy (6)
Faza Analizy (6)
Kluczowe Czynniki Sukcesu
Kluczowe Czynniki Sukcesu
Zaangażowanie właściwych osób ze strony
Zaangażowanie właściwych osób ze strony
klienta
klienta
Pełne rozpoznanie wymagań, wykrycie
Pełne rozpoznanie wymagań, wykrycie
przypadków i dziedzin szczególnych i
przypadków i dziedzin szczególnych i
nietypowych. Błąd popełniany w tej fazie polega
nietypowych. Błąd popełniany w tej fazie polega
na koncentrowaniu się na sytuacjach typowych.
na koncentrowaniu się na sytuacjach typowych.
Sprawdzenie kompletności i spójności
Sprawdzenie kompletności i spójności
wymagań. Przed przystąpieniem do dalszych
wymagań. Przed przystąpieniem do dalszych
prac, wymagania powinny być przejrzane pod
prac, wymagania powinny być przejrzane pod
kątem ich kompletności i spójności.
kątem ich kompletności i spójności.
Określenie wymagań niefunkcjonalnych w
Określenie wymagań niefunkcjonalnych w
sposób umożliwiający ich weryfikację
sposób umożliwiający ich weryfikację
1.06.21
26
Filip Jakubowski-Drzewiecki, To
masz Ściwiarski
Faza Projektowania (1)
Faza Projektowania (1)
Wynikiem jest
Wynikiem jest
logiczny model systemu
logiczny model systemu
,
,
opisujący sposób realizacji przez system
opisujący sposób realizacji przez system
postawionych wymagań, lecz
postawionych wymagań, lecz
abstrahujących od szczegółów
abstrahujących od szczegółów
implementacyjnych.
implementacyjnych.
W odróżnieniu, celem fazy
W odróżnieniu, celem fazy
projektowania
projektowania
jest udzielenie odpowiedzi na pytanie:
jest udzielenie odpowiedzi na pytanie:
Jak system ma być zaimplementowany?
Jak system ma być zaimplementowany?
Wynikiem jest opis sposobu implementacji.
Wynikiem jest opis sposobu implementacji.
1.06.21
27
Filip Jakubowski-Drzewiecki, To
masz Ściwiarski
Faza Projektowania (2)
Faza Projektowania (2)
Tematy i techniki Analizy
Tematy i techniki Analizy
Budowa statycznego modelu klas
Budowa statycznego modelu klas
Analiza funkcji i przypadków użycia
Analiza funkcji i przypadków użycia
Weryfikacja klas i obiektów
Weryfikacja klas i obiektów
Identyfikacja i definiowanie metod oraz
Identyfikacja i definiowanie metod oraz
komunikatów
komunikatów
Modelowanie stanów i przejść między stanami
Modelowanie stanów i przejść między stanami
Modelowanie procesów i przepływów danych
Modelowanie procesów i przepływów danych
Modelowanie przepływu sterowania
Modelowanie przepływu sterowania
Inne
Inne
1.06.21
28
Filip Jakubowski-Drzewiecki, To
masz Ściwiarski
Faza Projektowania (3)
Faza Projektowania (3)
Metodyka wykorzystująca pojęcia obiektowości dla celów
modelowania pojęciowego oraz analizy i projektowania
systemów informatycznych.
Podstawowym składnikiem jest diagram klas, będący zwykle
wariantem notacyjnym i pewnym rozszerzeniem diagramów
encja-związek.
Diagram klas zawiera: klasy, w ramach klas specyfikacje
atrybutów i metod, związki generalizacji, związki asocjacji i
agregacji, liczności tych związków, różnorodne ograniczenia
oraz inne oznaczenia.
Uzupełnieniem tego diagramu są inne: diagramy dynamiczne
uwzględniające stany i przejścia pomiędzy tymi stanami,
diagramy interakcji ustalające zależności pomiędzy
wywołaniami metod, diagramy funkcjonalne (będące zwykle
pewną mutacją diagramów przepływu danych), itd.
Koncepcja przypadków użycia (use cases) zakłada
odwzorowanie struktury systemu z punktu widzenia jego
użytkownika.
1.06.21
29
Filip Jakubowski-Drzewiecki, To
masz Ściwiarski
Faza Projektowania (4)
Faza Projektowania (4)
Przykładowe wymagania które można zdefiniować
Wymagania dotyczące funkcji systemu
Wymagania dotyczące wydajności systemu
Wymagania dotyczące zewnętrznych interfejsów
Wymagania dotyczące wykonywanych operacji
Wymagania dotyczące wymaganych zasobów
Wymagania dotyczące sposobów weryfikacji
Wymagania dotyczące sposobów testowania
Wymagania dotyczące dokumentacji
Wymagania dotyczące ochrony
Wymagania dotyczące przenośności
Wymagania dotyczące jakości
Wymagania dotyczące niezawodności
Wymagania dotyczące pielęgnacyjności
Wymagania dotyczące bezpieczeństwa
1.06.21
30
Filip Jakubowski-Drzewiecki, To
masz Ściwiarski
Faza Implementacji
Faza Implementacji
Niezawodność oprogramowania
Unikanie błędów
Niebezpieczne techniki
Zasada ograniczonego dostępu
Mocna kontrola typu
Tolerancja błędów
Porównywanie wyników różnych wersji
Transakcja: jednostka działalności systemu
Typowe środowiska implementacyjne
Czynniki sukcesu i rezultaty fazy
implementacji
1.06.21
31
Filip Jakubowski-Drzewiecki, To
masz Ściwiarski
Faza Instalacji
Faza Instalacji
Szkolenie użytkowników końcowych i administratorów
systemu
Instalacja sprzętu i przeniesienie oprogramowania
Wypełnienie baz danych
Nadzorowane korzystanie z systemu, często równoległe
z tradycyjnym sposobem pracy
Usuwanie błędów w oprogramowaniu i dokumentacji
użytkowej
Przekazanie systemu klientowi
1.06.21
32
Filip Jakubowski-Drzewiecki, To
masz Ściwiarski
Konserwacja
Konserwacja
Modyfikacje poprawiające: polegają na
usuwaniu z oprogramowania błędów
popełnionych w fazach wymagań, analizy,
projektowania i implementacji .
Modyfikacje ulepszające: polegają na
poprawie jakości oprogramowania.
Modyfikacje dostosowujące: polegają na
dostosowaniu oprogramowania do zmian
zachodzących w wymaganiach użytkownika
lub w środowisku komputerowym.
1.06.21
33
Filip Jakubowski-Drzewiecki, To
masz Ściwiarski
Faza Testowania
Faza Testowania
Dwa główne cele testowania:
wykrycie i usunięcie błędów w systemie
ocena niezawodności systemu
Peer Review (Audyt)
UAT (User Acceptance Testing)
UAT (User Acceptance Testing)
Bug Tracking
Bug Tracking
1.06.21
34
Filip Jakubowski-Drzewiecki, To
masz Ściwiarski
Bibliografia
Bibliografia
„
„
Wprowadzeni do Inżynierii
Wprowadzeni do Inżynierii
Oprogramowania” -Kazimierz Subieta –
Oprogramowania” -Kazimierz Subieta –
Wydawnictwo PJWSTK
Wydawnictwo PJWSTK
„
„
Inżynieria oprogramowania” – Andrzej
Inżynieria oprogramowania” – Andrzej
Jaszkiewicz – Wydawnictwo Helion
Jaszkiewicz – Wydawnictwo Helion
http://cs.wwc.edu/~aabyan/435/Process
http://cs.wwc.edu/~aabyan/435/Process
http://searchcio.techtarget.com/searchC
http://searchcio.techtarget.com/searchC
IO/downloads/LifeCycleModelling.pdf
IO/downloads/LifeCycleModelling.pdf