140 likes | 389 Views
Jarosław Kuchta Dokumentacja i Jakość Oprogramowania. 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.
E N D
Jarosław Kuchta Dokumentacja i Jakość Oprogramowania Projektowanie w cyklu życia oprogramowania
Klasyczny cykl życia oprogramowania Planowanie Analiza Projektowanie Implementacja Testowanie Pielęgnacja 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 Projektowanie w cyklu życia oprogramowania
SWS Projektowanie a analiza Specyfikowanie wymagań Planowanie Analiza statyczna Analiza funkcjonalna Analiza dynamiczna Analiza behawioralna Analiza modelowanie Projektowaniesystemowe Projektowaniew dziedzinieproblemu Projektowanieinterfejsu użytkownika Projektowaniestruktury danych Projektowaniearchitektury systemu Projektowanieszczegółowe 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 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 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 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) 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 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ę Projektowanie w cyklu życia oprogramowania
Produkty projektowania • Projekt architektury systemu • Projekt interfejsu użytkownika • Projekt struktury danych • Projekt struktury klas Projektowanie w cyklu życia oprogramowania
Literatura • Pressman R.S., Software engineering. A practitioner’s approach, McGraw-Hill, International Edition, 1992 Projektowanie w cyklu życia oprogramowania