1 / 22

Cykle życia oprogramowania

Cykle życia oprogramowania. Piotr Chmielewski, Tomasz Janas. 3 podstawowe fazy życia. Wyodrębnienie ze środowiska Życie i współdziałanie z otoczeniem przy pełnej efektywności Stopniowa utrata efektywności i powrót do środowiska. Cykle życia oprogramowania a projektowanie.

khanh
Download Presentation

Cykle życia oprogramowania

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Cykle życia oprogramowania Piotr Chmielewski, Tomasz Janas

  2. 3 podstawowe fazy życia • Wyodrębnienie ze środowiska • Życie i współdziałanie z otoczeniem przy pełnej efektywności • Stopniowa utrata efektywności i powrót do środowiska

  3. Cykle życia oprogramowania a projektowanie • Cykl życia oprogramowania opisuje historię systemu informatycznego począwszy od jego narodzin aż do wdrożenia i utrzymania • opisuje zależności (czasowe) pomiędzy różnymi aktywnościami podejmowanymi przy wytwarzaniu oprogramowania • określa , jak proces projektowania współdziała z innymi procesami

  4. Poszczególne kroki CŻO • Faza strategiczna: określenie strategicznych celów, planowanie i definicja projektu • Określenie wymagań • Analiza: dziedziny przedsiębiorczości, wymagań systemowych • Projektowanie: pojęciowe, logiczne • Implementacja / konstrukcja: rozwijanie, testowanie, dokumentacja • Testowanie • Dokumentacja • Instalacja • Utrzymanie, konserwacja, pielęgnacja

  5. Model kaskadowy • Kolejne aktywności następują po sobie bez możliwości powrotu

  6. Model kaskadowy - analiza wymagań • wymagania funkcjonalne - co system ma robić z punktu widzenia użytkownika • po wyjściu z fazy analizy, wymagania stawiane systemowi nie mogą być już zmienione

  7. Model kaskadowy - projektowanie • uszczegółowienie wyników analizy • projektowanie składowych systemu nie związanych z dziedziną problemu • optymalizacji systemu • dostosowanie do ograniczeń i możliwości środowiska implementacji • określenie fizycznej struktury systemu

  8. Model kaskadowy – implementacja, oprogramowanie • zakodowanie rozwiązań w języku programowania • wstępne testowanie na poziomie funkcji lub modułów

  9. Model kaskadowy - testowanie • wykrycie i usunięcie błędów w systemie • ocena niezawodności systemu • Rodzaje testów: • testy statystyczne • testy dynamiczne • 3 fazy testowania systemu: • testy modułów • testy systemu • Testy akceptacji

  10. Model kaskadowy - Wdrożenie i utrzymanie • instalacja i konfiguracja systemu u klienta • dostarczenie wparcia technicznego • wdrożeniu odpowiadają działania marketingowe zmierzające do wprowadzenia produktu na rynek

  11. Model kaskadowy - podsumowanie 1. Zalety: • łatwość zarządzania przedsięwzięciem • łatwość planowania • łatwość harmonogramowania • łatwość monitorowania • ścisła kontrola nad kolejnością wykonywania prac (rygorystyczny styl pracy) 2. Wady: • trudno naprawić popełnione błędy we wcześniejszych fazach (błędy w fazie określenia wymagań najprawdopodobniej zostaną wykryte dopiero w fazie testowania lub konserwacji) • długa przerwa w kontaktach z klientem (zmniejszenie zainteresowania, bo fazy projektowania i implementacji odbywają się bez jego udziału) • brak iteracji (jeżeli już, to są to sytuacje wyjątkowe)

  12. Model kaskadowy z nawrotami • Modyfikacja modelu kaskadowego -wprowadzenie do niego iteracji • Możliwość powrotu do poprzedniego etapu powoduje, że model może być zastosowany w praktyce • Projektanci i programiści tracą gwarancję niezmienności wymagań

  13. Model oparty o prototypowanie • zebranie wymagań dotyczących sytemu • realizacja projektu i implementacja • zaprezentowanie wyników użytkownikowi i powrót do punktu określania wymagań

  14. Model oparty o prototypowanie 1. Zalety: • możliwość szybkiej demonstracji pracującej wersji systemu • możliwość szkoleń zanim zbudowany zostanie pełen system 2. Wady: • dodatkowy koszt budowy prototypu • frustracja klienta, że ma „prawie” gotowy system

  15. Model spiralny • zakłada cykliczne przechodzenie przez kolejne fazy realizacji projektu • cztery cyklicznie powtarzane etapy: • Określanie wymagań i planowanie • Analiza ryzyka • Wytworzenie systemu • Ocena użytkownika i przejście do punktu 1

  16. Programowanie odkrywcze • określenie wymagań • szybka realizacja systemu weryfikowana przez klienta • Brak akceptacji klienta: kolejna wersja systemu lub modyfikuje się poprzednią wersję • Akceptacja klienta: kontynuujemy prace nad danym systemem

  17. Programowanie odkrywcze 1. Zalety: • możliwość określenia trudnych wymagań klienta 2. Wady: • trudno zachować sensowną strukturę systemu • Mało profesjonalna metoda

  18. Realizacja kierowana dokumentami • Model zgodny ze standardem DOD STD 2167 - sposób wykonywania oprogramowania dla armii amerykańskiej • Każda faza kończy się szczegółowym opracowaniem dokumentów opisujących wyniki tej fazy • Kolejna faza rozpoczynana jest tylko w przypadku zaakceptowania przez klienta dokumentacji

  19. Realizacja kierowana dokumentami 1. Zalety: • możliwość kontynuowania projektu w innej firmie w przypadku przerwania pracy (mając komplet dokumentacji) 2. Wady: • duży nakład pracy na opracowanie dokumentów zgodnych ze standardem (ponad 50% całkowitych nakładów) • przerwy w realizacji przedsięwzięcia niezbędne dla weryfikacji dokumentów przez klienta

  20. Montaż z gotowych elementów • wykorzystywane jest ponowne użycie 1. Zalety: • wysoka niezawodność • zmniejszenie ryzyka • efektywne wykorzystanie specjalistów • narzucenie standardów • redukcja kosztów 2. Wady: • dodatkowy koszt przygotowania elementów do ponownego wykorzystania • ryzyko uzależnienia się od dostawcy elementów • niedostatki narzędzi wspomagających ten rodzaj pracy

  21. Podsumowanie • Mniej dokładna analiza i projektowanie – więcej pracy dla programistów • Staranne projektowanie ułatwia pracę programistom i testerom oraz pozwala zaoszczędzić nakłady w procesie programowania i wdrożenia • Im większym zmianom ma podlegać system tym przyjęte rozwiązania muszą być bardziej elastyczne i ogólne

  22. APLAUZ ;-) • Koniec prezentacji

More Related