Projektowanie w cyklu życia oprogramowania
Transkrypt
Projektowanie w cyklu życia oprogramowania
Inżynieria oprogramowania Jarosław Kuchta Projektowanie w cyklu życia oprogramowania Klasyczny cykl życia oprogramowania Planowanie Analiza Projektowanie Implementacja Testowanie Pielęgnacja Waga poszczególnych faz Pielęgnacja Pielęgnacja Testowanie Testowanie Implementacja Implementacja Projektowanie Projektowanie Analiza Analiza Plan. Planowanie Układ niestabilny Układ stabilny Projektowanie a analiza Planowanie Specyfikowanie wymagań Analiza statyczna Analiza funkcjonalna Analiza dynamiczna Analiza behawioralna Projektowanie w dziedzinie problemu Projektowanie interfejsu użytkownika Projektowanie struktury danych Projektowanie architektury systemu m Analiza SWS Projektowanie systemowe Projektowanie szczegółowe Specyfikowanie wymagań • Cele: – Określenie celu biznesowego projektu – Identyfikacja wymagań (funkcjonalnych, niefunkcjonalnych) – Alokacja wymagań do poszczególnych składników systemu informatycznego • Aktywności: – Określenie udziałowców projektu – Pozyskiwanie wymagań – Walidacja wymagań • Produkt: – Specyfikacja Wymagań Systemowych Analiza systemowa • Cel: – Osiągnięcie właściwego poziomu zrozumienia pomiędzy zespołem projektowym a klientem odnośnie tego co ma system robić • Aktywności: – Analizowanie wymagań systemowych – Modelowanie wymaganego systemu – Prototypowanie systemu • Produkt: – Złożony model systemu w dziedzinie problemu Aspekty analizy • Aspekt statyczny – Analiza struktury systemu: elementów składowych (klas, obiektów), ich właściwości i relacji między nimi • Aspekt funkcjonalny – Analiza funkcjonalności systemu: funkcji udostępnianych przez system dla użytkowników lub innych systemów • Aspekt behawioralny – Analiza zachowania systemu i jego elementów składowych: ich reakcji na zdarzenia pochodzące od użytkowników lub innych systemów • Aspekt dynamiczny – Analiza relacji w czasie i zmian czasowych zachodzących w systemie i pomiędzy systemem a jego użytkownikami lub innymi systemami Modele analityczne • • • • • • • Model klas i obiektów (a.statyczny) Model przypadków użycia (a.funkcjonalny) Model kolaboracji (a.funkcjonalny) Model przepływu danych (a.funkcjonalny) Model czasowy (a.dynamiczny) Model przejść stanów (a.behawioralny) Model aktywności (a.funkcjonalny, behawioralny, dynamiczny) Cele projektowania • Projektowanie systemowe – Określenie zgrubnej struktury systemu dla zrozumienia jak system ma być zrealizowany • Projektowanie szczegółowe – Określenie szczegółowej struktury systemu dla ułatwienia poprawnej implementacji projektu Aspekty projektowania • Projektowanie w dziedzinie problemu – Odwzorowanie modelu analitycznego w zbiór klas, obiektów, ich właściwości, relacji i funkcjonalności możliwych do zrealizowania w systemie informatycznym • Projektowanie interfejsu użytkownika – Zaprojektowanie klas, obiektów, ich właściwości, relacji i funkcjonalności niezbędnych do komunikacji pomiędzy systemem informatycznym a jego użytkownikami • Projektowanie struktury danych – Zaprojektowanie klas, obiektów, ich właściwości, relacji i funkcjonalności niezbędnych do przechowywania danych przez system • Projektowanie architektury systemu – Określenie elementów składowych systemu tworzących jego fizyczną strukturę Produkty projektowania • • • • Projekt architektury systemu Projekt interfejsu użytkownika Projekt struktury danych Projekt struktury klas Literatura • Pressman R.S., Software engineering. A practitioner’s approach, McGraw-Hill, International Edition, 1992