• Nie Znaleziono Wyników

Faza projektowania

N/A
N/A
Protected

Academic year: 2021

Share "Faza projektowania"

Copied!
18
0
0

Pełen tekst

(1)

Faza projektowania

(2)

Cele projektowania

• Celem projektowania jest opracowanie szczegółowego opisu implementacji systemu

• W odróżnieniu od analizy, w projektowaniu dużą rolę odgrywa środowisko implementacji. Projektanci muszą posiadać dobrą znajomość języków, bibliotek i narzędzi stosowanych w trakcie implementacji

• Dążenie do tego aby struktura projektu zachowała ogólną

strukturę modelu stworzonego w poprzednich fazach (analizie).

Niewielkie zmiany w dziedzinie problemu powinny implikować niewielkie zmiany w projekcie

• Wykorzystanie idei programowania strukturalnego i obiektowego

• Projektowanie dotyczy etapów bezpośrednio ukierunkowanych na wytworzenie oprogramowania. Działania projektowe mają

odpowiedzieć na pytanie: jak wytworzyć system, tak aby spełniał wymagania przyszłego użytkownika. W tym sensie projektowanie to wstęp do programowania

(3)

Zadania wykonywane w fazie projektowania

• Uszczegółowienie wyników analizy. Projekt musi być wystarczająco szczegółowy, aby mógł być podstawą implementacji. Stopień

szczegółowości zależy od poziomu zaawansowania programistów

• Projektowanie składowych systemu nie związanych z dziedziną problemu

• Optymalizacja systemu

• Dostosowanie do ograniczeń i możliwości środowiska implementacji

• Określenie fizycznej struktury systemu

(4)

Zadania wykonywane w fazie projektowania

• Głównym wynikiem fazy projektowania jest podział systemu na elementy składowe Projektowanie oprogramowania odbywa się zazwyczaj w dwóch etapach.

• Podczas pierwszego podejmowane są strategiczne decyzje

dotyczące struktury systemu. Etap ten w zależności od przyjętej metodyki, nazywa się projektem strategicznym (strategic design), projektem systemu (system design), projektem ogólnym (general design) czy projektem architektury systemu (architectural design).

• W drugim etapie definiowane są szczegółowe rozwiązania, pro wadzące bezpośrednio do implementacji. Jest on nazywany projektem szczegółowym (detailed design). W niektórych metodykach etap ten należy do fazy implementacji.

(5)

Projekt systemu

• System zostaje podzielony na podsystemy.

Podział ten reprezentuje organizację tworzonego oprogramowania.

• Projektowany system zostaje podzielony na

mniejsze części, zwane podsystemami. Można wyróżnić dwa podstawowe źródła przesłanek tego podziału:

- dziedzina aplikacyjna i związane z nią modele analityczne;

- ograniczenia związane z wykorzystaniem dostępnych

zasobów.

(6)

Podział na podsystemy

Model, będący abstrakcją świata rzeczywistego, obejmuje zwykle kilka dziedzin. Podsystemy odpowiadając tym dziedzinom posiadają pewne cechy wyróżniające, takie jak: funkcjonalność, dane, docelowa

infrastruktura informatyczna. Podsystemy są z założenia niezależne i współpracują ze sobą za pośrednictwem jawnie zdefiniowanych interfejsów.

Elementami podsystemów są: klasy, obiekty, związki między klasami i wiązania między obiektami, operacje itp.

Podsystem charakteryzowany jest przez usługi oferowane pozostałym częściom systemu. Usługa reprezentowana jest przez zestaw funkcji zorientowanych na wspólny cel. Przykładami takich usług są naliczanie należności za rozmowy telefoniczne lub udostępnianie plików za

pośrednictwem sieci lokalnej. Interfejs podsystemu definiuje sposób

udostępniania tych usług innym podsystemom oraz specyfikuje przepływ danych do i z podsystemu. Funkcjonalność podsystemu jest definiowana tak, aby miała możliwie najmniejszy wpływ na pozostałe podsystemy.

Liczba podsystemów zależy od wielkości oraz złożoności problemu, którego dotyczy tworzony podsystem. Im jest ich więcej, tym będą mniejsze.

Koszt interfejsu rośnie wraz ze wzrostem liczby podsystemów. Trze ba przyjąć naturalny podział problemu – podział na dziedziny.

(7)

Związki między podsystemami

• Istnie ją dwa podstawowe modele związków między podsystemami: klient-usługodawca (client-server) i koleżeński (peer-to-peer). Pierwsza zakłada interakcję jednokierunkową. Klient zna interfejs usługodawcy i żąda od niego usług. Usługodawca realizuje usługę, po czym przesyła klientowi jej wynik. Drugi model zakłada, że obaj partnerzy znają nawzajem swe interfejsy i mogą żądać od siebie usług (podsystemy są silnie

uzależnione).

• Możliwe są dwa zasadnicze kierunki dekompozycji:

- horyzontalny – podział na warstwy;

- wertykalny – podział na partycje

(8)

Techniki obiektowe w projektowaniu

• W projektowaniu często pomocne są specjalne notacje, jako uzupełnienie do notacji stosowanych w analizie.

• Związek skierowany:

Oprócz zaznaczenia związku zaznacza się kierunek przesyłania komunikatów. Np. w systemie SIG obiekty klasy „symbol

graficzny” wysyłają komunikaty do obiektów „słowo kluczowe”.

Jest to jeden ze scenariuszy; w innym może być inaczej

• Symbole dostępu do pól i metod:

(+) publiczny – dla wszystkich funkcji i metod

(#) zabezpieczony (protected) – dostęp do metod danej klasy oraz jej specjalizacji

(-) prywatny – dostęp tylko dla funkcji danej klasy

(9)

Dodatkowe elementy notacji

• Wiele z nich występuje w innych metodykach, np. w metodyce Boocha:

• Wzorce klas (class templates)

• Metaklasy, tj. klasy zawierające pola i metody dotyczące klasy jako całości a nie pojedynczych obiektów, np. pola i metody statyczne

• Wolne funkcje nie będące metodami żadnej z klas

• Sposoby widoczności obiektu, do którego wysyłany jest komunikat. Obiekt ten może być widoczny, gdyż znajduje się w tym samym zakresie, jest przekazany przez

parametr lub jest polem klasy, której metoda wysyła

komunikat.

(10)

Uszczegółowianie wyników analizy

Uszczegółowianie poprzez podanie reguł odwzorowania notacji w struktury języka programowania.

Uszczegółowianie metod:

Podanie nagłówków metod oraz ich parametrów.

Określenie, które z metod będą realizowane jako funkcje wirtualne (późno wiązane) a które jako zwyczajne funkcje (wiązane statyczne).

Zastąpienie niektórych prostych metod bezpośrednim dostępem do atrybutów. Np.

metody PobierzNzwisko, UstawNazwisko, itd.

Zastąpienie niektórych atrybutów redundantnych przez odpowiednie metody, np.

Wiek = BieżącaData – DataUrodzenia;

KwotaDochodu = KwotaPrzychodu – KwotaKosztów;

Określenie sposobów implementacji związków (asocjacji). Związki można zaimplementować na wiele sposobów, z reguły poprzez wprowadzenie dodatkowych atrybutów (pól). Mogą one być następujące:

Obiekty powiązanej klasy

Wskaźniki (referencje) do obiektów powiązanej klasy Identyfikatory obiektów powiązanej klasy

Klucze kandydujące obiektów powiązanej klasy

(11)

Uszczegółowianie wyników analizy

• W zależności od przyjętego sposobu oraz od liczebności związków (1:1, 1:n, n:1, m:n) możliwe są bardzo różne deklaracje w przyjętym języku programowania.

• Tablica obiektów: TypSłowoKluczowe SłowaKluczowe[100];

• Lista wskaźników

lista<TypSłowoKluczowe*>SłowaKluczowe;

• Tablica wskaźników: char *

WskaźnikiSłówKluczowych[100];

• Dodatkowe reguły dla transformacji schematów obiektowych na relacyjne.

Symbol graficzny Słowo kluczowe

(12)

Projektowanie składowych systemu nie związanych z dziedziną problemu

• Projekt skonstruowany przez uszczegółowienie modelu opisuje składowe odpowiedzialne za

realizację podstawowych zadań systemu.

• Gotowe oprogramowanie musi się jednak składać z dodatkowych składowych:

• Składowej interfejsu użytkownika

• Składowej zarządzania danymi

(przechowywanie trwałych danych)

• Składowej zarządzania pamięcią operacyjną

• Składowej zarządzania zadaniami (podział

czasu procesora)

(13)

Składowa zarządzania

pamięcią

Składowa interfejsu użytkownika

Składowa dziedziny problemu

Składowa zarządzania

zadaniami

Składowa zarządzania

danymi

(kompilator system operac.)

(do 90%

nakładów;

obecnie poprzez GUI)

(SZBD) (kompilator

system operac.)

Składowe systemu nie związane z dziedziną problemu

(14)

RAD – Rapid Application Development – Szybkie rozwijanie aplikacji

• Terminem tym określa się narzędzia i techniki programowania umożliwiające szybką

budowę prototypów lub gotowych aplikacji, z reguły oparte na programowaniu wizyjnym.

Termin RAD występuje jako synonim

języków/środowisk czwartej generacji (4GL)

• Łatwa realizacja pewnych funkcji systemu poprzez tworzenie bezpośredniego

połączenia pomiędzy składowymi interfejsu użytkownika (dialogami, raportami) z

elementami zarządzania danymi w bazie

danych (przeważnie relacyjnej).

(15)

Projektowanie interfejsu użytkownika

• Interaktywne projektowanie dialogów, okien, menu, map bitowych, ikon oraz pasków

narzędziowych z wykorzystaniem bogatego zestawu gotowych elementów.

• Definiowanie reakcji systemu na zajście

pewnych zdarzeń, tj. akcji podejmowanych przez użytkownika (np. wybór z menu).

• Symulacja pracy interfejsu.

• Generowanie kodu, często z możliwością

wyboru jednego z wielu środowisk docelowych.

(16)

Organizacja interakcji z użytkownikiem

Realizacja komunikacji z użytkownikiem:

• Za pomocą linii komend

Dla niewielkich systemów.

Dla prototypów.

Dla zaawansowanych użytkowników.

Często szybszy niż interfejs pełnoekranowy.

• W pełnoekranowym środowisku okienkowym

Tworzenie ma sens dla dużych systemów.

Wygodny dla początkujących i średnio

zaawansowanych użytkowników

(17)

Typowe sposoby wydawania przez użytkownika poleceń systemowi

• Wpisywanie poleceń za pomocą linii komend

• Wybór opcji z menu

• Wciśnięcie odpowiedniej kombinacji klawiszy (skrótu)

• Korzystanie z ikon w paskach narzędziowych

• Wybór przycisku w dialogu

• Korzystanie z nawigacji kursorem myszy i

przycisków myszy

(18)

Wprowadzanie i wyprowadzanie danych

• Wprowadzanie przez użytkownika:

Podawanie parametrów poleceń w przypadku systemów z linią komend

Wprowadzanie danych w odpowiedzi na zaproszenie systemu Wprowadzanie danych w dialogach

• Wyprowadzanie przez system:

Wyświetlanie informacji w dialogach Wyświetlanie i/lub wydruki raportów Graficzna prezentacja danych

• Prototyp interfejsu użytkownika może powstać już w fazie określania wymagań. Systemy zarządzania

interfejsem użytkownika pozwalają na wygodną budowę

prototypów oraz wykorzystanie prototypu w końcowej

implementacji.

Cytaty

Powiązane dokumenty

W każdym przypadku przygotuj specyfikację przeprowadzonego projektowania kompen- satora.. Dla poniższych układów wykonaj czynności opisane w uwagach

Zaznacz P, jeśli zdanie jest prawdziwe, lub F, jeśli jest fałszywe.. ( ... Podział mitotyczny jest sposobem

Wykonanie połączenia z kontrolerami ORM typu EJB dla encji Tytul_ksiazki i Ksiazka w klasie Fasadejb o dostępie Remote za pomocą tzw adnotacji.. Wykonanie połączenia z kontrolerami

3.1) Diagram klas.. 3.2) Diagramy sekwencji realizacji przypadków użycia: wstawiania i usuwania elementów TTytul do kolekcji Zasoby oraz wstawianie i

Na podstawie aktualnych informacji o postępie realizacji Zadań (wykonana aktualizacja Dotychczasowego czasu pracy oraz Pozostałego szacowany czas) Kierownik Projektów aktualizuje

- Klient Sklepu może wykonać Rezerwację dokonując wyboru Typ Samochodu oraz wyboru Producenta Samochodu, podając konkretny okres czasu rezerwacji – utworzona Rezerwacja zawiera

Dodawanie wypożyczenia (na podstawie danych identyfikujących Klienta, danych identyfikujących Typ Produktu lub/ i Producenta poszukiwanych w rezerwacjach wyszukanego Klienta

Uwzględniając powyższe uwarunkowania obszaru projektowania eksploatacji i utrzymania maszyn w zdatności (w ruchu), w celu pełnego zdefiniowania problemów