Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Projektowanie systemowe Jarosław Kuchta Dokumentacja i Jakość Oprogramowania.

Podobne prezentacje


Prezentacja na temat: "Projektowanie systemowe Jarosław Kuchta Dokumentacja i Jakość Oprogramowania."— Zapis prezentacji:

1 Projektowanie systemowe Jarosław Kuchta Dokumentacja i Jakość Oprogramowania

2 2/24Projektowanie systemowe Zagadnienia Cele projektowania systemowego Cele projektowania systemowego Wybór strategii projektowania Wybór strategii projektowania Przejście od analizy do projektowania Przejście od analizy do projektowania Pojęcia: Pojęcia: generalizacja, abstrakcja, agregacja generalizacja, abstrakcja, agregacja partycjonowanie, warstwy projektowe partycjonowanie, warstwy projektowe frameworki frameworki faktoryzacja faktoryzacja Warstwy projektowe Warstwy projektowe

3 Dokumentacja i Jakość Oprogramowania 3/24Projektowanie systemowe Cele projektowania systemowego (1) Dopasowanie projektowanego systemu informatycznego do istniejącego systemu (organizacji) Dopasowanie projektowanego systemu informatycznego do istniejącego systemu (organizacji) Integracja z istniejącym systemem informatycznym Integracja z istniejącym systemem informatycznym Konwersja istniejących danych Konwersja istniejących danych Dopasowanie się do umiejętności użytkowników Dopasowanie się do umiejętności użytkowników Wybór strategii projektowania Wybór strategii projektowania Projektowanie od zera Projektowanie od zera Przystosowanie istniejącego, dostępnego systemu Przystosowanie istniejącego, dostępnego systemu Zlecenie wykonania na zewnątrz Zlecenie wykonania na zewnątrz

4 Dokumentacja i Jakość Oprogramowania 4/24Projektowanie systemowe Cele projektowania systemowego (2) Określenie warunków technicznych dla systemu (sprzęt, oprogramowanie) Określenie warunków technicznych dla systemu (sprzęt, oprogramowanie) Wybór konfiguracji systemu: Wybór konfiguracji systemu: scentralizowana scentralizowana rozproszona rozproszona mieszana mieszana Określenie strategii dla interfejsu użytkownika, wejścia i wyjścia systemu, przechowywania danych Określenie strategii dla interfejsu użytkownika, wejścia i wyjścia systemu, przechowywania danych

5 Dokumentacja i Jakość Oprogramowania 5/24Projektowanie systemowe Strategie projektowe Opracowanie własne Opracowanie własne Dopasowanie istniejącego oprogramowania Dopasowanie istniejącego oprogramowania Zlecenie na zewnątrz (outsourcing) Zlecenie na zewnątrz (outsourcing)

6 Dokumentacja i Jakość Oprogramowania 6/24Projektowanie systemowe Opracowanie własne Pełna kontrola nad wyglądem i funkcjami systemu Pełna kontrola nad wyglądem i funkcjami systemu Łatwość dopasowania się do wymagań biznesowych Łatwość dopasowania się do wymagań biznesowych Gromadzenie doświadczeń i wiedzy w firmie Gromadzenie doświadczeń i wiedzy w firmie Wymaga dużego wysiłku (pracy i czasu) Wysoki poziom ryzyka (brak gwarancji powodzenia)

7 Dokumentacja i Jakość Oprogramowania 7/24Projektowanie systemowe Dopasowanie istniejącego oprogramowania Wiele wymagań może być spełnionych przez istniejące, pakietowe oprogramowanie (packaged software) Wiele wymagań może być spełnionych przez istniejące, pakietowe oprogramowanie (packaged software) Większa efektywność takiego rozwiązania Większa efektywność takiego rozwiązania Niepełność zaspokojenia wymagań Potencjalna konieczność zmiany sposobu funkcjonowania organizacji Potencjalna konieczność konwersji istniejących danych

8 Dokumentacja i Jakość Oprogramowania 8/24Projektowanie systemowe Zlecenie na zewnątrz (outsourcing) Możliwość obniżenia kosztów Możliwość obniżenia kosztów Możliwość lepszego dopasowania zasobów do zadania Możliwość lepszego dopasowania zasobów do zadania Potencjalny wypływ poufnej informacji z firmy Utrata kontroli nad przyszłym opracowaniem Brak zdobywania doświadczenia

9 Dokumentacja i Jakość Oprogramowania 9/24Projektowanie systemowe Kryteria wyboru strategii Potrzeby biznesowe Potrzeby biznesowe Doświadczenie w firmie Doświadczenie w firmie Umiejętności projektowe Umiejętności projektowe Kierownictwo Kierownictwo Ograniczenia czasowe Ograniczenia czasowe

10 Dokumentacja i Jakość Oprogramowania 10/24Projektowanie systemowe Macierz alternatyw Alternatywa 1: E-Shop Alternatywa 2: Web Shop Alternatywa 3: J-Shop Wykonalność organizacyjna Opracowanie własneDopasowanie gotowego oprogramowanie Opracowanie własne Wykonalność techniczna Opracowanie w C; Zamówienia przez Opracowanie w C i Javie Opracowanie w Javie Wykonalność ekonomiczna 15 tys. PLN70 tys. PLN;30 tys. PLN Inne zalety Duże doświadczenie z C w firmie nabycie doświadczeń z Javą Inne ograniczenia Nie nabywamy doświadczeń Małe doświadczenie z Javą w firmie

11 Dokumentacja i Jakość Oprogramowania 11/24Projektowanie systemowe Przejście od analizy do projektowania Modele analityczne pokazują dziedzinę problemu. Modele analityczne pokazują dziedzinę problemu. Modele projektowe pokazują system informatyczny. Modele projektowe pokazują system informatyczny. Utrzymanie spójności - modele projektowe powinny być rozwinięciem (uszczegółowieniem, uściśleniem) modeli analitycznych. Utrzymanie spójności - modele projektowe powinny być rozwinięciem (uszczegółowieniem, uściśleniem) modeli analitycznych.

12 Dokumentacja i Jakość Oprogramowania 12/24Projektowanie systemowe Przegląd modelu klas Czy wszystkie klasy analityczne będą implementowane? Czy wszystkie klasy analityczne będą implementowane? Uzupełnienie brakujących klas Uzupełnienie brakujących klas Uzupełnienie definicji klas Uzupełnienie definicji klas Stworzenie i uściślenie struktury klas Stworzenie i uściślenie struktury klas

13 Dokumentacja i Jakość Oprogramowania 13/24Projektowanie systemowe Stosowane środki (1) Generalizacja Generalizacja wydzielenie i przenoszenie wspólnych składowych z kilku klas do osobnej, wspólnej klasy, z której te klasy będą dziedziczyć. wydzielenie i przenoszenie wspólnych składowych z kilku klas do osobnej, wspólnej klasy, z której te klasy będą dziedziczyć. Abstrakcja Abstrakcja tworzenie klas abstrahujących od pewnych szczegółów implementacji tworzenie klas abstrahujących od pewnych szczegółów implementacji stosowanie interfejsów – abstrakcja od wszystkich szczegółów implementacji (rozwiązanie problemu braku dziedziczenia wielokrotnego) stosowanie interfejsów – abstrakcja od wszystkich szczegółów implementacji (rozwiązanie problemu braku dziedziczenia wielokrotnego) Uszczegóławianie Uszczegóławianie tworzenie klas potomnych oferujących dodatkowe właściwości i możliwości tworzenie klas potomnych oferujących dodatkowe właściwości i możliwości Agregacja Agregacja deklarowanie klas kontenerowych, które będą zawierały klasy "biznesowe" wynikające z analizy wymagań deklarowanie klas kontenerowych, które będą zawierały klasy "biznesowe" wynikające z analizy wymagań przenoszenie operacji z klas składowych do klas kontenerowych (komponent klasy kontenerowej "zna" wszystkie komponenty składowe) przenoszenie operacji z klas składowych do klas kontenerowych (komponent klasy kontenerowej "zna" wszystkie komponenty składowe)

14 Dokumentacja i Jakość Oprogramowania 14/24Projektowanie systemowe Stosowanie środki (2) Partycjonowanie - podział systemu: Partycjonowanie - podział systemu: podział na warstwy - oszacowanie liczby kontraktów (wymienianych danych i wykorzystywanych operacji) między klasami. podział na warstwy - oszacowanie liczby kontraktów (wymienianych danych i wykorzystywanych operacji) między klasami. stosowanie warstw ułatwia wprowadzanie modyfikacji do systemu (np. wymianę bazy danych) bez naruszania innych elementów architektonicznych (np. interfejsu użytkownika) stosowanie warstw ułatwia wprowadzanie modyfikacji do systemu (np. wymianę bazy danych) bez naruszania innych elementów architektonicznych (np. interfejsu użytkownika) podział na przestrzenie nazw – organizacja hierarchiczna złożoności, możliwość stosowania tych samych nazw w różnych przestrzeniach. podział na przestrzenie nazw – organizacja hierarchiczna złożoności, możliwość stosowania tych samych nazw w różnych przestrzeniach.

15 Dokumentacja i Jakość Oprogramowania 15/24Projektowanie systemowe Stosowane środki (3) Wykorzystanie frameworków Wykorzystanie frameworków framework – gotowa biblioteka komponentów tworzących szkielet aplikacji i określających sposób jej działania. framework – gotowa biblioteka komponentów tworzących szkielet aplikacji i określających sposób jej działania. zaleta: ułatwia i przyspiesza projektowanie i implementację aplikacji zaleta: ułatwia i przyspiesza projektowanie i implementację aplikacji warunek: dobra znajomość wykorzystywanego frameworka warunek: dobra znajomość wykorzystywanego frameworka wady: wady: duża różnorodność frameworków przy braku standaryzacji duża różnorodność frameworków przy braku standaryzacji trudne lub niemożliwe wykorzystanie frameworka w sposób nieprzewidziany przez jego twórcę trudne lub niemożliwe wykorzystanie frameworka w sposób nieprzewidziany przez jego twórcę

16 Dokumentacja i Jakość Oprogramowania 16/24Projektowanie systemowe Stosowane środki (4) Faktoryzacja - wykorzystanie gotowych komponentów i szablonów projektowych z dopasowaniem do wymagań konkretnego projektu Faktoryzacja - wykorzystanie gotowych komponentów i szablonów projektowych z dopasowaniem do wymagań konkretnego projektu zastosowanie kodu otwartego (open source) zastosowanie kodu otwartego (open source) przeniesienie własnego kodu z innego projektu przeniesienie własnego kodu z innego projektu adaptacja gotowych komponentów: adaptacja gotowych komponentów: problemy: klasy zamknięte (sealed), właściwości i metody prywatne, brak wirtualizacji problemy: klasy zamknięte (sealed), właściwości i metody prywatne, brak wirtualizacji wrapper – klasa, której interfejs jest dopasowany do wymagań danego projektu, a implementacja korzysta w znacznym stopniu z innej, gotowej klasy (której nie można modyfikować) wrapper – klasa, której interfejs jest dopasowany do wymagań danego projektu, a implementacja korzysta w znacznym stopniu z innej, gotowej klasy (której nie można modyfikować)

17 Dokumentacja i Jakość Oprogramowania 17/24Projektowanie systemowe Typowe warstwy projektowe Presentation Layer Application Logic Foundation Data Management Data Layer

18 Dokumentacja i Jakość Oprogramowania 18/24Projektowanie systemowe Warstwa podstawowa Warstwa podstawowa (Foundation) – obejmuje klasy wykorzystywane bezpośrednio we wszystkich innych warstwach: Warstwa podstawowa (Foundation) – obejmuje klasy wykorzystywane bezpośrednio we wszystkich innych warstwach: definicje podstawowych typów danych (np. typy wyliczeniowe), definicje podstawowych typów danych (np. typy wyliczeniowe), definicje podstawowych struktury danych (np. listy, drzewa, stosy), definicje podstawowych struktury danych (np. listy, drzewa, stosy), użyteczne typy abstrakcyjne (data, czas, waluta) użyteczne typy abstrakcyjne (data, czas, waluta) operacje dodatkowe, które nie są dostarczane przez biblioteki operacje dodatkowe, które nie są dostarczane przez biblioteki

19 Dokumentacja i Jakość Oprogramowania 19/24Projektowanie systemowe Warstwa danych Warstwa danych (Data) zawiera komponenty odpowiedzialne za przechowywanie (zapisywanie i odczytywanie) danych: Warstwa danych (Data) zawiera komponenty odpowiedzialne za przechowywanie (zapisywanie i odczytywanie) danych: bazy danych (tabele, kwerendy) bazy danych (tabele, kwerendy) repozytoria plików repozytoria plików Wymaga określenia: Wymaga określenia: które klasy są trwałe (dane przechowywane między sesjami) które klasy są trwałe (dane przechowywane między sesjami) jaki sposób przechowywania będzie stosowany (baza danych, pliki) jaki sposób przechowywania będzie stosowany (baza danych, pliki) jaki format zapisu danych będzie stosowany (tekstowy, binarny) jaki format zapisu danych będzie stosowany (tekstowy, binarny) jaki typ bazy danych będzie stosowany (relacyjna, obiektowa) jaki typ bazy danych będzie stosowany (relacyjna, obiektowa)

20 Dokumentacja i Jakość Oprogramowania 20/24Projektowanie systemowe Warstwa zarządzania danymi Warstwa zarządzania danymi (Data Management) zawiera klasy odpowiedzialne za dostęp do przechowywanych danych. Warstwa zarządzania danymi (Data Management) zawiera klasy odpowiedzialne za dostęp do przechowywanych danych. Umożliwia: Umożliwia: ochronę danych przed nieupoważnionym dostępem ochronę danych przed nieupoważnionym dostępem współdzielenie danych między wieloma użytkownikami współdzielenie danych między wieloma użytkownikami

21 Dokumentacja i Jakość Oprogramowania 21/24Projektowanie systemowe Warstwa logiki aplikacji Warstwa logiki aplikacji (Application Logic) – zwana również warstwą biznesową (Business Domain) – zawiera klasy realizujące operacje wymagane w konkretnej operacji wynikające z analizy wymagań. Warstwa logiki aplikacji (Application Logic) – zwana również warstwą biznesową (Business Domain) – zawiera klasy realizujące operacje wymagane w konkretnej operacji wynikające z analizy wymagań.

22 Dokumentacja i Jakość Oprogramowania 22/24Projektowanie systemowe Warstwa prezentacji Warstwa prezentacji (Presentation Layer) zawiera komponenty interfejsu użytkownika (okna, strony etc.): Warstwa prezentacji (Presentation Layer) zawiera komponenty interfejsu użytkownika (okna, strony etc.): umożliwia użytkownikowi wydawanie poleceń dla systemu i wprowadzanie danych umożliwia użytkownikowi wydawanie poleceń dla systemu i wprowadzanie danych prezentuje dla użytkownika dane przetwarzane z warstwy logiki aplikacji prezentuje dla użytkownika dane przetwarzane z warstwy logiki aplikacji

23 Dokumentacja i Jakość Oprogramowania 23/24Projektowanie systemowe Przykładowa struktura klas z podziałem na warstwy Presentation LayerApplication Logic «form» Customer«form» OrderCustomerOrder Data Management CustomersOrders Data Layer «table» Customers «table» Orders

24 Dokumentacja i Jakość Oprogramowania 24/24Projektowanie systemowe Literatura Dennis A., Wixom B.H., Tegarden D., Systems Analysis & Design. An Object-Oriented Approach with UML, John Wiley and Sons, USA, 2002 Dennis A., Wixom B.H., Tegarden D., Systems Analysis & Design. An Object-Oriented Approach with UML, John Wiley and Sons, USA, 2002


Pobierz ppt "Projektowanie systemowe Jarosław Kuchta Dokumentacja i Jakość Oprogramowania."

Podobne prezentacje


Reklamy Google