Cykle życia oprogramowania oraz role w zespole projektowym Autor: Sebastian Szałachowski s4104.

1 Cykle życia oprogramowania oraz role w zespole projekto...
Author: Alicja Kot
0 downloads 0 Views

1 Cykle życia oprogramowania oraz role w zespole projektowym Autor: Sebastian Szałachowski s4104

2 Plan prezentacji ● Cykl życia oprogramowania – Omówienie poszczególnych etapów – Omówienie modeli ● Model kaskadowy ● Model spiralny ● Model prototypowania – Model montażu z gotowych dokumentów ● Role w zespole projektowym – Omówienie modeli zespołów – Omówienie poszczególnych ról ● Podsumowanie

3 Cykl życia oprogramowania ● Wraz z tworzeniem coraz bardziej rozbudowanych systemów informatycznych, potrzebna jest organizacja tego procesu ● Proces wytwarzania i pielęgnacji oprogramowania dzielimy na etapy ● Sposób organizacji procesu wytwarzania oprogramowania i podziału na różne etapy nazywamy modelem cyklu życia oprogramowania

4 Etapy wytwarzania oprogramowania ● Faza strategiczna ● Określenie wymagań ● Analiza ● Projektowanie ● Implementacja / konstrukcja ● Testowanie ● Dokumentacja ● Instalacja ● Konserwacja

5 Faza strategiczna ● Określenie celu projektu ● Wstępne rozmowy z klientem ● Podjęcie ważnych decyzji i tej najważniejszej czyli czy projekt zostanie podjęty

6 Określenie wymagań ● Określenie wymagań funkcjonalnych i niefunkcjonalnych z klientem ● Muszą być zgodne z celem projektu ustalonego w fazie strategicznej ● Jest to zazwyczaj trudny proces, ale zarazem kluczowy

7 Analiza ● Odwzorowanie wymagań klienta na model analityczny ● Na tym etapie nie interesuje nas implementacja systemu ● Przykład: – Analityk poznaje sposób działania przedsiębiorstwa bez systemu informatycznego, wyłapuję zależności między pracownikami, dokumentami, klientami, procesami itd. Musi poznać dziedzinę problemową i cały czas mieć na uwadze wymagania klienta oraz cel całego projektu.

8 Projektowanie ● Odwzorowanie powstałego w poprzedniej fazie modelu analitycznego na dane środowisko implementacyjne ● Współczesne języki są ograniczone, nie implementują wszystkich elementów z modelu analitycznego ● Przykład: – Projektant nie musi wiedzieć jak działa firma prawnicza, na podstawie przygotowanego przez analityka modelu odwzoruję sposób działania systemu informatycznego

9 Implementacja ● Praca programistów ● Kodowanie modelu projektowego w danym języku ● Bieżące testowanie i dokumentowanie wytworzonego kodu

10 Testowanie ● Po zakończeniu prac programistycznych ● Wykrycie błędów

11 Dokumentacja ● Dokumentowanie działań nad projektem ● Trwa przez większość etapów

12 Instalacja ● Wdrożenie systemu w środowisku klienta ● Dopracowywanie niuansów w systemie ● Przeszkolenie pracowników

13 Konserwacja ● Łatanie dziur w oprogramowaniu ● Dostosowywanie systemu do zmian np. w gotowych komponentach lub w świecie rzeczywistym ● Przykład – Konieczność zmiany stawek podatku dochodowego z 19,30,40 % na 18 i 32%

14 Modele cyklu życia oprogramowania ● W zależności od tego w jaki sposób i w jakiej kolejności będą wykonywane poszczególne etapy mogą powstać różne modele ● Możemy wyróżnić następujące modele: – Model kaskadowy (waterfall model) – Model spiralny – Model prototypowania – Model montażu z gotowych elementów

15 Model kaskadowy ● Schemat modelu Określenie wymagań Analiza Projektowanie Implementacja Testowanie Konserwacja

16 Model kaskadowy ● Cechy modelu – Etapy następują po sobie – Nie zazębiają się tzn. trwają niezależnie ● Zalety modelu – Łatwość organizacji i harmonogrowania prac ● Wady modelu – Błędy we wcześniejszych pracach wpływają negatywnie na następne – Brak ciągłego kontaktu z klientem – Niezmienna kolejność wykonywania prac

17 Model spiralny ● Schemat Modelu Planowanie Analiza ryzyka AtestowanieKonstrukcja

18 Model spiralny ● Zalety modelu – Dobrze opisuje tworzenie wielu wersji oprogramowania – Minimalizacja ryzyka – Ciągły kontakt z klientem ● Wady – Większe nakłady organizacyjne (etapy wykonywane wielokrotnie) – Położony mniejszy na precyzyjne określenie wymagań

19 Model prototypowania ● Tworzymy makietę systemu, głównie interfejsu użytkownika, bez budowy całego back-endu ● Zalety systemu – Duży nacisk na precyzyjne określenie wymagań – Szybka demonstracja jak system będzie wyglądał ● Wady – Dodatkowy koszt tworzenia prototypu – Klient może narzekać na długi czas realizacji systemu, bo przecież już widział system prawie gotowy

20 Montaż z gotowych komponentów ● Wykorzystuje podobieństwo w funkcjonowaniu wielu przedsiębiorstw ● Możliwość skorzystania z poprzednich swoich rozwiązań ● Możliwość kupienia gotowych komponentów

21 Montaż z gotowych komponentów ● Zalety – Gotowe komponenty są zazwyczaj mniej zawodne niż te pisane od nowa dla każdego systemu – Oszczędność zasobów w tym czasu ● Wady – Możliwość porzucenia rozwoju komponentu przez zewnętrzne firmy – Ograniczona dziedzina problemowa – Nakład na przystosowanie komponentów

22 Role w zespole projektowym ● Im projekt jest bardziej rozbudowany tym więcej ludzi jest zaangażowzanych w jego realizację ● Im więcej ludzi w projekcie tym jest potrzebna większa organizacja pracy ● Potrzebny jest odpowiedni podział ról ● Każda rola ma wyznaczony cel ● Wszyscy członkowie mają wspólny cel – zadowolenie klienta (zakończenie projektu sukcesem)

23 Struktury zespołów ● Model sieciowy Model gwiazdy

24 Model sieciowy ● Każdy członek zespołu wie za co odpowiedzialni są inni członkowie tego zespołu ● Wymiana wiedzy i postępów pomiędzy wszystkimi członkami ● Łatwość zastąpienia jednego z członków przez zespół, gdy ten np. zrezygnował z projektu ● Efektywny tylko przy małych zespołach

25 Model gwiazdy ● Lider zespołu (kierownik projektu) wie za co są odpowiedzialni i jest informowany o postępach ● Mniejsze nakłady na odpowiednią komunikację w zespole ● Trudności przy odejściu lidera z projektu ● Używana przy większych zespołach

26 Role w zespole ● Kierownik projektu ● Analityk ● Projektant ● Programista ● Tester ● Wdrożeniowiec ● Osoba odpowiedzialna za konserwację systemu

27 Kierownik ● Odpowiedzialny za: – Kontakt z klientem – Zarządzanie zasobami – Zarządzanie zespołem – Marketing ● Cechy kierownika – Odporność na stres – Umiejętność rozwiązywania konfliktów – Umiejętność motywacji zespołu

28 Analityk ● Odpowiedzialny za: – Przełożenie wymagań klienta na model analityczny – Określenie funkcjonalności systemu ● Cechy – Doświadczenie zarówno w dziedzinie problemowej jak i w IT – Dobry kontakt z ludźmi

29 Projektant ● Tworzy model implementacyjny z modelu przygotowanego przez analityka ● Nie musi znać dziedziny problemowej ● Musi być doświadczony w danym środowisku implementacyjnym (w języku programowania, bazie danych) ● Można rozdzielić rolę projektanta na projektanta GUI, bazy danych itp.

30 Programista,Tester, Wdrożeniowiec, Konserwator ● Programista – Tworzy oprogramowanie na podstawie modelu przygotowanego przez projektanta ● Tester – Testuje gotowe oprogramowanie ● Wdrożeniowiec – Znajomość różnych konfiguracji sprzętowych i programowych – Zdolności pedagogiczne ● Konserwator – Odpowiedzialny za pielęgnacje systemu

31 Role i członkowie w zespole ● Role można łączyć i tak jeden z członków zespołu może być zarówno projektantem i programistą ● Nie zaleca się łączenia niektórych ról np. rola testera i programisty powinny przypadać różnym osobom, własne błędy trudniej zauważyć

32 Podsumowanie ● Dziękuje za uwagę

33 Źródła ● “Podstawy inżynierii oprogramowania” Włodzimierz Dąbrowski i Kazimierz Subieta ● Wikipedia hasła: – Model kaskadowy – Model spiralny ● MSF Team Model v.3.1 ● MSF Process Model v.3.1