1 / 24

Projektowanie systemowe

Jarosław Kuchta Dokumentacja i Jakość Oprogramowania. Projektowanie systemowe. Zagadnienia. Cele projektowania systemowego Wybór strategii projektowania Przejście od analizy do projektowania Pojęcia: generalizacja, abstrakcja, agregacja partycjonowanie, warstwy projektowe frameworki

Download Presentation

Projektowanie systemowe

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

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

  5. Strategie projektowe • Opracowanie własne • Dopasowanie istniejącego oprogramowania • Zlecenie na zewnątrz (outsourcing) Projektowanie systemowe

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

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

  8. Możliwość obniżenia kosztów 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 Zlecenie na zewnątrz (outsourcing) Projektowanie systemowe

  9. Kryteria wyboru strategii • Potrzeby biznesowe • Doświadczenie w firmie • Umiejętności projektowe • Kierownictwo • Ograniczenia czasowe Projektowanie systemowe

  10. Macierz alternatyw Projektowanie systemowe

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

  12. Przegląd modelu klas • Czy wszystkie klasy analityczne będą implementowane? • Uzupełnienie brakujących klas • Uzupełnienie definicji klas • Stworzenie i uściślenie struktury klas Projektowanie systemowe

  13. Stosowane środki (1) • Generalizacja • wydzielenie i przenoszenie wspólnych składowych z kilku klas do osobnej, wspólnej klasy, z której te klasy będą dziedziczyć. • Abstrakcja • tworzenie klas abstrahujących od pewnych szczegółów implementacji • stosowanie interfejsów – abstrakcja od wszystkich szczegółów implementacji (rozwiązanie problemu braku dziedziczenia wielokrotnego) • Uszczegóławianie • tworzenie klas potomnych oferujących dodatkowe właściwości i możliwości • Agregacja • 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) Projektowanie systemowe

  14. Stosowanie środki (2) • Partycjonowanie - podział systemu: • 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) • podział na przestrzenie nazw – organizacja hierarchiczna złożoności, możliwość stosowania tych samych nazw w różnych przestrzeniach. Projektowanie systemowe

  15. Stosowane środki (3) • Wykorzystanie frameworków • 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 • warunek: dobra znajomość wykorzystywanego frameworka • wady: • duża różnorodność frameworków przy braku standaryzacji • trudne lub niemożliwe wykorzystanie frameworka w sposób nieprzewidziany przez jego twórcę Projektowanie systemowe

  16. Stosowane środki (4) • Faktoryzacja - wykorzystanie gotowych komponentów i szablonów projektowych z dopasowaniem do wymagań konkretnego projektu • zastosowanie kodu otwartego (open source) • przeniesienie własnego kodu z innego projektu • adaptacja gotowych komponentów: • 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ć) Projektowanie systemowe

  17. Presentation Layer Application Logic Foundation Data Management Typowe warstwy projektowe Data Layer Projektowanie systemowe

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

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

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

  21. 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ń. Projektowanie systemowe

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

  23. Presentation Layer Application Logic Data Management Data Layer «form»Customer «form»Order Customer Order Customers Orders «table» Customers «table»Orders Przykładowa struktura klas z podziałem na warstwy Projektowanie systemowe

  24. Literatura • Dennis A., Wixom B.H., Tegarden D., Systems Analysis & Design. An Object-Oriented Approach with UML, John Wiley and Sons, USA, 2002 Projektowanie systemowe

More Related