Projektowanie w cyklu życia oprogramowania Jarosław Kuchta Dokumentacja i Jakość Oprogramowania Projektowanie w cyklu życia oprogramowania
Klasyczny cykl życia oprogramowania Planowanie Analiza Projektowanie Implementacja Testowanie Pielęgnacja Dokumentacja i Jakość Oprogramowania Projektowanie w cyklu życia oprogramowania
Waga poszczególnych faz Pielęgnacja Pielęgnacja Testowanie Testowanie Implementacja Implementacja Projektowanie Projektowanie Analiza Analiza Plan. Planowanie Układ niestabilny Układ stabilny Dokumentacja i Jakość Oprogramowania Projektowanie w cyklu życia oprogramowania
Projektowanie a analiza SWS Specyfikowanie wymagań Planowanie Analiza Analiza statyczna Analiza funkcjonalna Analiza dynamiczna Analiza behawioralna modelowanie Projektowanie systemowe Projektowanie w dziedzinie problemu Projektowanie interfejsu użytkownika Projektowanie struktury danych Projektowanie architektury systemu Projektowanie szczegółowe Dokumentacja i Jakość Oprogramowania Projektowanie w cyklu życia oprogramowania
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 Dokumentacja i Jakość Oprogramowania Projektowanie w cyklu życia oprogramowania
Projektowanie w cyklu życia oprogramowania 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 Dokumentacja i Jakość Oprogramowania Projektowanie w cyklu życia oprogramowania
Projektowanie w cyklu życia oprogramowania 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 Dokumentacja i Jakość Oprogramowania Projektowanie w cyklu życia oprogramowania
Projektowanie w cyklu życia oprogramowania 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) Dokumentacja i Jakość Oprogramowania Projektowanie w cyklu życia oprogramowania
Projektowanie w cyklu życia oprogramowania 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 Dokumentacja i Jakość Oprogramowania Projektowanie w cyklu życia oprogramowania
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ę Dokumentacja i Jakość Oprogramowania Projektowanie w cyklu życia oprogramowania
Produkty projektowania Projekt architektury systemu Projekt interfejsu użytkownika Projekt struktury danych Projekt struktury klas Dokumentacja i Jakość Oprogramowania Projektowanie w cyklu życia oprogramowania
Projektowanie w cyklu życia oprogramowania Literatura Pressman R.S., Software engineering. A practitioner’s approach, McGraw-Hill, International Edition, 1992 Dokumentacja i Jakość Oprogramowania Projektowanie w cyklu życia oprogramowania