Cykl życia Cykl życia
oprogramowania oprogramowania
AUTORZY: Filip Jakubowski-Drzewiecki, AUTORZY: Filip Jakubowski-Drzewiecki,
Tomasz Ściwiarski Tomasz Ś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.
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
Model Kaskadowy Model Kaskadowy
(Wodospadu, Liniowy) (Wodospadu, Liniowy)
Określenie wymagań Określenie wymagań
Analiza Analiza
Projektowanie Projektowanie
Implementacja Implementacja
Testowanie Testowanie
Konserwacja Konserwacja
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
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
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
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
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
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
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
Model spiralny Model spiralny
Analiza rezyka Analiza rezyka
Konstrukcja (model kaskaowy) Konstrukcja (model kaskaowy)
Atestowanie Atestowanie
Planowanie Planowanie
Formalne transformacje Formalne transformacje
Formalna specyfikacja wymagań Formalna specyfikacja wymagań
Postać pośrednia... Postać pośrednia...
Kod Kod
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ń
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 klientaOkreślenie celów przedsięwzięcia z punktu widzenia klienta
Określenie zakresu oraz kontekstu przedsięwzięciaOkreś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 oprogramowaniaOszacowanie 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
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 ma użytkownicy zewnętrzni, z którymi tworzony system ma współpracować.
współpracować.
Decyzje Strategiczne i ograniczenia Decyzje Strategiczne i ograniczenia
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
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
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ęciadefinicję celów przedsięwzięcia
opis zakresu przedsięwzięciaopis 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 systemuogólny model systemu
opis proponowanego rozwiązaniaopis proponowanego rozwiązania
oszacowanie kosztówoszacowanie kosztów
wstępny harmonogram pracwstę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 analizyHarmonogram fazy analizy
Faza Analizy (1) Faza Analizy (1)
Celem fazy analizy jest ustalenie Celem fazy analizy jest ustalenie
wymagań klienta wobec tworzonego wymagań klienta wobec tworzonego
systemu. Dokonywana jest zamiana systemu. Dokonywana jest zamiana
celów klienta na konkretne celów klienta na konkretne
wymagania zapewniające wymagania zapewniające
osiągnięcie tych celów.
osiągnięcie tych celów.
Klient rzadko wie, jakie wymagania Klient rzadko wie, jakie wymagania zapewnią osiągniecie jego celów.
zapewnią osiągniecie jego celów.
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 . .
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 . .
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
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 systemu. Określenie środowiska zewnętrznego dla 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. zew. . (środowiskowe np. zew.
Baza danych)
Baza danych)
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ę
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.
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
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.
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
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
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
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.
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
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 .html
.html