Projektowanie i programowanie obiektowe II - Wykład IV

1 Projektowanie i programowanie obiektowe II - Wykład IVd...
Author: Włodzimierz Frątczak
0 downloads 0 Views

1 Projektowanie i programowanie obiektowe II - Wykład IVdr inż. Wojciech Tarnawski  Copyright by Wojciech Tarnawski

2 Projektowanie systemów informatycznych obiektowo zorientowanych (plan projektu)1. Identyfikacja zachowań systemu 2. Identyfikacja klas obiektów występujących w systemie 3. Klasyfikacja klas obiektów - pod względem dziedziczenia ( związek uogólniania) - pod względem zawierania się w sobie (powiązanie:agregacja) 4. Określenie powiązań komunikacji i związków użycia między obiektami ze zdefiniowanych klas. 5. Precyzyjna specyfikacja składowych klas (atrybutów i operacji) 6. Składanie modelu logicznego - określenie sekwencji działań obiektów (model funkcjonalny, model dynamiczny, przesyłanie komunikatów)  Copyright by Wojciech Tarnawski

3 System obiektowy Model logiczny Model fizyczny Model klasModel dynamiczny Model funkcjonalny Opisuje zachowanie się systemu w czasie, umożliwia definicję wzajemnej współpracy i komunikacji między obiektami Opisuje wszystkie możliwe stany obiektów i związane z nimi zdarzenia (cykle życiowe obiektów) Opisuje: Tożsamość Atrybuty Operacje Związki  Copyright by Wojciech Tarnawski

4 Budowa modelu funkcjonalnegoModel funkcjonalny zajmuje się cyklem życiowym poszczególnych obiektów. Model funkcjonalny reprezentowany jest przy pomocy tzw. diagramu stanów, który opisuje stany w których mogą się znajdować obiekty klas zdefiniowanych w modelu klas. Uwaga: Model funkcjonalny nie wymaga konstrukcji diagramu stanów dla wszystkich klas znajdujących się w modelu klas.  Copyright by Wojciech Tarnawski

5 Budowa modelu funkcjonalnego c.d.Przy konstrukcji tego modelu szukamy odpowiedzi na następujące pytania: Co się może stać z obiektem w czasie jego egzystencji ? Jak obiekt reaguje na określone komunikaty? Jak określony komunikat wpływa na stan obiektu (atrybuty obiektu)? Jakie stany może przyjmować obiekt danej klasy? Jak obiekt zauważa, ze coś się wydarzyło w systemie ( nastąpiło jakieś zdarzenie) ? Uwaga: identyczne komunikaty mogą być interpretowane w różnoraki sposób, w zależności od stanu w jakim znajduje się obiekt.  Copyright by Wojciech Tarnawski

6 Przykład budowy modelu funkcjonalnego: Copyright by Wojciech Tarnawski

7 Cele konstrukcji modelu funkcjonalnego„Znalezienie” ewentualnych operacji w danej klasie Opis wewnętrznych zadań realizowanych przez daną klasę Zaprojektowanie odpowiedniego interfejsu „obsługującego” daną klasę  Copyright by Wojciech Tarnawski

8 Podstawowe „wskazówki” pomocne w definicji cyklu życiowego obiektuZ jakich powodów musimy utworzyć cykl życiowy obiektu? Jakiego rodzaju będzie to cykl ? (tj. liniowy czy cykliczny) np.: zamówienie (stan 1), realizacja zamówienia (stan 2), sprzedaż (stan 3), archiwizacja (stan 4) np.: stany urządzenia technicznego  Copyright by Wojciech Tarnawski

9 Przykłady stanów: „jest gotowy”, „istnieje”, „jest zainicjowany” utwórz zbiór tych stanów, w których może się znaleźć każdy obiekt danej klasy Przykłady stanów: „jest gotowy”, „istnieje”, „jest zainicjowany” Stan końcowy wyraża, że obiekt już nie istnieje lub jego „zachowanie” nie ma wpływu na działanie systemu 3) zanim zdefiniujesz nowy stan w diagramie stanów – sprawdź, czy jest on istotny dla działania systemu oraz czy istnieją wszystkie powiązania i składowe konieczne dla „zaistnienia” danego stanu 4) dodaj stan do diagramu – stan może być wyrażony przez właściwość, która jest niezmienna w pewnym czasie np. „załadowany”, „unieważniony”, „wycofany”, „przetwarzany” lub stan opisujący trwanie czynności np.. „oczekiwanie”, „zapamiętywanie”, „wykonywanie”, „aktywny”  Copyright by Wojciech Tarnawski

10 5) gdy zdefiniujesz stan – zastanów się, czy jego istnienie nie będzie związane ze zmianą stanu innego obiektu klasy powiązanej z daną klasą (wywołanie operacji w innej klasie) 6) po zdefiniowaniu i wprowadzeniu nowego stanu do cyklu życiowego obiektu, zastanów się co musi się zdarzyć, aby nastąpiła zmiana z bieżącego stanu do następnego stanu. Zmiana stanu następuje po otrzymaniu informacji o wystąpieniu zdarzenia, które może być wyrażone przez wywołanie operacji tego obiektu 7) wszystkie obiekty danej klasy znajdujące się w tym samym stanie reagują na to samo zdarzenie dokładnie w taki sam sposób. ( należy zatem sprawdzić czy zachowanie się obiektów jest takie same; jeśli nie definicja danej klasy jest nieprecyzyjna i należy ją zmodyfikować) 8) sprawdź, czy zmiana stanu nie jest tzw. zmianą warunkową tzn. czy jest ona uzależniona od innych dodatkowych warunków  Copyright by Wojciech Tarnawski

11 Konstrukcja modelu dynamicznegoPo definicji cykli życiowych obiektów, a więc określeniu wszystkich stanów, w których może się znaleźć obiekt danej klasy – budujemy model umożliwiający definicję wzajemnej współpracy gwarantującej funkcjonowanie całego systemu. Model dynamiczny opisuje zachowanie się systemu w czasie, umożliwia definicję wzajemnej współpracy i komunikacji między obiektami. Model dynamiczny opisywany jest przy pomocy tzw. diagramu przepływu danych (diagramu interakcji) między różnymi obiektami. Model dynamiczny jest modelem o charakterze temporalnym – opisuje tymczasowe zachowanie różnych obiektów i ich wzajemne oddziaływanie.  Copyright by Wojciech Tarnawski

12 Cele konstrukcji modelu dynamicznego„znalezienie” wszystkich metod ewentualna definicja powiązań służących do przesyłania komunikatów Konstrukcja diagramu interakcji odbywa się poprzez tzw. analizę przypadków (ang. use cases)  Copyright by Wojciech Tarnawski

13 Przykład:  Copyright by Wojciech Tarnawski

14 Najczęściej stosowane architektury diagramów interakcji:Diagram scentralizowany (jeden obiekt, który zarządza innymi obiektami) Diagram decentralizowany (kolejne obiekty znają swoich „zastępców”)  Copyright by Wojciech Tarnawski