Cykl życia oprogramowania AUTORZY: Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski
Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski Plan Prezentacji Wstęp. Modele cyklu życia oprogramowania. Omówienie faz cyklu życia oprogramowania. Podsumowanie. 2019-01-18 Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski
Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski Różne modele cykli Kaskadowy Realizacja kierowana dokumentami Prototypowanie Programowanie odkrywcze Spiralny Formalne transformacje 2019-01-18 Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski
Model Kaskadowy (Wodospadu, Liniowy) Określenie wymagań Analiza Projektowanie Implementacja Testowanie Konserwacja 2019-01-18 Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski
Realizacja kierowana dokumentami Każda faza kończy się opracowaniem szeregu dokumentów Zaleta: Przerwanie realizacji w dowolnym czasie i wznowienie jej przez inną firmę Wady: Ponad 50% więcej nakładu pracy na opracowanie dokumentów zgodnych ze standardem. Przerwy w realizacji przedsięwzięcia niezbędne dla weryfikacji dokumentów przez klienta 2019-01-18 Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski
Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski Prototypowanie Ogólne określenie wymagań Budowa prototypu Weryfikacja prototypu przez klienta Pełne określenie wymagań Realizacja pełnego systemu zgodnie z modelem kaskadowym 2019-01-18 Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski
Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski Prototypowanie c.d. Zalety: Wczesna demonstracja działającej wersji systemu Możliwość szkolenia przed wykonaniem systemu Wady: Dodatkowy koszt budowy prototypu Długi czas oczekiwania na całkowitą wersję programu w stosunku do oczekiwania na prototyp 2019-01-18 Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski
Programowanie odkrywcze Określenie ogólnego wymagania Budowa systemu Testowanie systemu Jesli niedziała to powrót do punktu 2 Dostarczenie systemu 2019-01-18 Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski
Programowanie odkrywcze c.d. Zaleta: Możliwość stosowania w wypadkach, kiedy trudno jest określić wymagania klienta Wady: Praktycznie niemożliwe zachowanie sensownej struktury Testowanie może odbywać się prawie wyłącznie przy bezpośrednim udziale klienta 2019-01-18 Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski
Realizacja przyrostowa Zalety: Skrócenie przerw w kontaktach z klientem Możliwość wczesnego wykorzystania przez klienta dostarczonych frgmentów systemu Opóźnienie realizacja fragmentu systemu nie wpływa na opóźnienie realizacji całego przedsięwzięcia Wada: Dodatkowy koszt związany z realizacją niezależnego fragmentu systemu 2019-01-18 Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski
Montaż z gotowych elementów (programowanie z półki) Zalety: Wysoka niezawodność Zmniejszenie ryzyka błedów Potencjalna redukcja kosztów Wady: Dodatkowy koszt przygotowania elementów do ponownego użycia Ryzyko uzależnienia się od dostawcy elementów Brak narzędzi wspomagających ten rodzaj pracy 2019-01-18 Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski
Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski Model spiralny Analiza rezyka Konstrukcja (model kaskaowy) Atestowanie Planowanie 2019-01-18 Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski
Formalne transformacje Formalna specyfikacja wymagań Postać pośrednia... Kod 2019-01-18 Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski
Formalne transformacje c.d. Zaleta: Wysoka niezawodność tak stworzonego oprogramowania Wady: Trudność formalnego wyspecyfikowania wymagań Mała efektywność kodu uzyskanego w ten sposób Brak dobrze rozwiniętych, uniwersalnych języków formalnej specyfikacji wymagań 2019-01-18 Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski
Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski Faza Strategiczna (1) Czynności Fazy Strategicznej Dokonanie serii rozmów (wywiadów) z przedstawicielami klienta Określenie celów przedsięwzięcia z punktu widzenia klienta Określenie zakresu oraz kontekstu przedsięwzięcia Ogólne określenie wymagań, wykonanie zgrubnej analizy i projektu systemu Propozycja kilku możliwych rozwiązań (sposobów realizacji systemu) Oszacowanie kosztów oprogramowania Analiza rozwiązań Prezentacja wyników fazy strategicznej przedstawicielom klienta oraz korekta wyników Określenie wstępnego harmonogramu przedsięwzięcia oraz struktury zespołu realizatorów Określenie standardów, zgodnie z którymi realizowane będzie przedsięwzięcie 2019-01-18 Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski
Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski Faza Strategiczna Wyodrębnienie w procesie projektowania klienta, użytkownika i wykonawcę. Określenie celów z punktu widzenia klienta. Określenie ograniczeń klienta. Zakres przedsięwzięcia: określenie fragmentu procesów informacyjnych zachodzących w organizacji, które będą objęte przedsięwzięciem. Na tym etapie może nie być jasne, które funkcje będą wykonywane przez oprogramowanie, a które przez personel, inne systemy lub standardowe wyposażenie sprzętu. Kontekst przedsięwzięcia: systemy, organizacje, użytkownicy zewnętrzni, z którymi tworzony system ma współpracować. Decyzje Strategiczne i ograniczenia 2019-01-18 Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski
Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski Faza Strategiczna (3) Studium i ocena problemu Wybór narzędzi modelowania i prognozowania. Problem może się nie kalkulować (np. finansowo). Określanie możliwych terminów. Ocena Ryzyka 2019-01-18 Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski
Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski Faza Strategiczna (4) Na koszt oprogramowania składa się: koszt sprzętu będącego częścią tworzonego systemu koszt wyjazdów i szkoleń koszt zakupu narzędzi nakład pracy 2019-01-18 Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski
Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski Faza Analizy Rezultaty Fazy Strategicznej Dokument będący podstawą dalszych prac i rozmów. definicję celów przedsięwzięcia opis zakresu przedsięwzięcia opis systemów zewnętrznych, z którymi system będzie współpracować ogólny opis wymagań ogólny model systemu opis proponowanego rozwiązania oszacowanie kosztów wstępny harmonogram prac Raport oceny rozwiązań, zawierający informację o rozważanych rozwiązaniach oraz przyczynach wyboru jednego z nich. Opis wymaganych zasobów - pracownicy, oprogramowanie, sprzęt, lokale, ... Definicje standardów. Harmonogram fazy analizy 2019-01-18 Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski
Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski Faza Analizy (1) Celem fazy analizy jest ustalenie wymagań klienta wobec tworzonego systemu. Dokonywana jest zamiana celów klienta na konkretne wymagania zapewniające osiągnięcie tych celów. Klient rzadko wie, jakie wymagania zapewnią osiągniecie jego celów. 2019-01-18 Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski
Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski Faza Analizy (2) Wywiady i przeglądy. Studia na istniejącym oprogramowaniem.. Studia wymagań systemowych. Studia osiągalności.. Prototypowanie. 2019-01-18 Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski
Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski Faza Analizy (3) Dostępne źródła informacji Wywiady i przeglądy. Studia na istniejącym oprogramowaniem.. Studia wymagań systemowych. Studia osiągalności.. Prototypowanie. 2019-01-18 Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski
Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski Faza Analizy (4) Dostępne narzędzia analizy Język naturalny Formalizm matematyczny. Język naturalny strukturalny Tablice, formularze. Diagramy blokowe Diagramy kontekstowe Diagramy przypadków użycia 2019-01-18 Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski
Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski Faza Analizy (5) Wymaganie Funkcjonalne Określenie użytkowników systemu. Określenie dostępnych funkcji dla użytkowników. Określenie środowiska zewnętrznego dla systemu. Wymagania Niefunkcjonalne Wymagania dotyczące produktu. (ograniczenia dla programu) Wymagania dotyczące procesu. (np. standardy) Wymagania zewnętrzne. (środowiskowe np. zew. Baza danych) 2019-01-18 Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski
Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski Faza Analizy (6) Kluczowe Czynniki Sukcesu Zaangażowanie właściwych osób ze strony klienta Pełne rozpoznanie wymagań, wykrycie przypadków i dziedzin szczególnych i nietypowych. Błąd popełniany w tej fazie polega na koncentrowaniu się na sytuacjach typowych. Sprawdzenie kompletności i spójności wymagań. Przed przystąpieniem do dalszych prac, wymagania powinny być przejrzane pod kątem ich kompletności i spójności. Określenie wymagań niefunkcjonalnych w sposób umożliwiający ich weryfikację 2019-01-18 Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski
Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski Faza Projektowania (1) Wynikiem jest logiczny model systemu, opisujący sposób realizacji przez system postawionych wymagań, lecz abstrahujących od szczegółów implementacyjnych. W odróżnieniu, celem fazy projektowania jest udzielenie odpowiedzi na pytanie: Jak system ma być zaimplementowany? Wynikiem jest opis sposobu implementacji. 2019-01-18 Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski
Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski Faza Projektowania (2) Tematy i techniki Analizy Budowa statycznego modelu klas Analiza funkcji i przypadków użycia Weryfikacja klas i obiektów Identyfikacja i definiowanie metod oraz komunikatów Modelowanie stanów i przejść między stanami Modelowanie procesów i przepływów danych Modelowanie przepływu sterowania Inne 2019-01-18 Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski
Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski 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. 2019-01-18 Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski
Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski 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 2019-01-18 Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski
Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski 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 2019-01-18 Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski
Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski 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 2019-01-18 Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski
Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski 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. 2019-01-18 Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski
Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski 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) Bug Tracking 2019-01-18 Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski
Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski Bibliografia „Wprowadzeni do Inżynierii Oprogramowania” -Kazimierz Subieta – Wydawnictwo PJWSTK „Inżynieria oprogramowania” – Andrzej Jaszkiewicz – Wydawnictwo Helion http://cs.wwc.edu/~aabyan/435/Process.html http://searchcio.techtarget.com/searchCIO/downloads/LifeCycleModelling.pdf 2019-01-18 Filip Jakubowski-Drzewiecki, Tomasz Ściwiarski