Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

DIAGRAMY KLAS I OBIEKTÓW dr inż. Sławomir Nowak PROJEKTOWANIE W SYSTEMACH UML.

Podobne prezentacje


Prezentacja na temat: "DIAGRAMY KLAS I OBIEKTÓW dr inż. Sławomir Nowak PROJEKTOWANIE W SYSTEMACH UML."— Zapis prezentacji:

1 DIAGRAMY KLAS I OBIEKTÓW dr inż. Sławomir Nowak PROJEKTOWANIE W SYSTEMACH UML

2 W PROWADZENIE Diagramy klas Największym atutem programowania, projektowania oraz analizy obiektowej jest zgodność takiego podejścia z rzeczywistością – mózg ludzki jest w naturalny sposób najlepiej przystosowany do takiego podejścia przy przetwarzaniu informacji. Klasa jest podstawowym pojęciem z zakresu projektowania (programowania) zorientowanego obiektowo (OOP). Z pojęciem tym wiążą się także cechy: abstrakcja, hermetyzacja, polimorfizm i dziedziczenie. W programowaniu obiektowym klasa jest częściową lub całkowitą definicją dla obiektów. Definicja obejmuje dopuszczalny stan obiektów oraz ich zachowania. Na podstawie klasy tworzy się obiekty. Źródło: Wikipedia Pytania 1.Czym jest klasa w OOP?

3 W PROWADZENIE Diagramy klas Diagramy klas. Odwzorowanie klasy i relacji w UML. Do odwzorowania klas w UML służą diagramy klas. Są to statyczne diagramy, przedstawiający strukturę systemu w modelach obiektowych przez ilustrację struktury klas i zależności między nimi. Ewidentnie strukturalny!!!! Brak dynamiki. Pokazuje jakie zachodzą zjawiska, ale nie pokazuje kiedy i jak zachodzą. W ramach diagramów klas przedstawia się klasy i interfejsy oraz związki pomiędzy nimi, a także ograniczenia, notatki itp. Wykorzystywane są do modelowania struktury systemu. Źródło: Wikipedia Pytania 1.Do czego służą i co zawierają diagramy klas UML?

4 W PROWADZENIE Diagramy klas Symbol klasy: Korzystając z UML można przedstawić modelowane elementy na różnych poziomach szczegółowości. Ważne jest, aby dostosować poziom szczegółowości do potrzeb, ukrywając nieistotne elementy. Dokładniej klasę opisuje się przedstawiając właściwości klasy (atrybuty) oraz zachowanie (metody): Źródło: Wikipedia Pytania 1.Do czego służą i co zawierają diagramy klas UML?

5 W PROWADZENIE Diagramy klas – atrybuty (właściwości) Definiując właściwości najczęściej określa się ich typ i widoczność: + element publiczny - element prywatny # element chroniony ~ element pakietowy Ogólny format dla definicji właściwości jest następujący: [widoczność] [/] nazwa [: typ] [wielokrotność] [ = wartość domyślna] [{ustawienia}] Np.: imieKlienta + imieKlienta - imieKlienta: string # imieKlienta: string = \"Jan\" + imieKlienta: string = \"Jan\" {readOnly} imieKlienta = \"Jan\" klienci[1..10] Źródło: Wikipedia Pytania 1.Co oznaczają i jaki mają zasięg poszczególne poziomy widoczności?

6 W PROWADZENIE Diagramy klas – atrybuty (właściwości) Z atrybutem mogą być związane dodatkowe ograniczenia, które określają jego właściwości, np.: {ordered} – obiekty wewnątrz cechy są uporządkowane {unordered} – obiekty są nieuporządkowane {sorted} – obiekty uporządkowane {unique} – obiekty wewnątrz cechy nie powtarzają się {nonunique} – obiekty wewnątrz cechy mogą się powtarzać {readOnly} – wartość atrybutu służy tylko do odczytu {frozen} – wartość atrybutu nie może być zmodyfikowana po jej przypisaniu

7 W PROWADZENIE Diagramy klas - operacje Definiując operację także określa się ich typ i widoczność: Ogólny format dla definicji operacji jest następujący: [widoczność] nazwa [(lista_parametrów)] [: typ_wyniku] [właściwość] gdzie lista parametrów: [tryb] nazwa : typ [=wartość_domyślna] tryb: in - wejściowy, nie może być modyfikowany out - wyjściowy, może być modyfikowany inout - wejściowy, wyjściowy, może być modyfikowany właściwość: leaf - funkcja niepolimorficzna (nie może być nadpisana) isQuerry - funkcja nie zmieniająca obiektu Pytania 1.Jak definiuje się operacje klasy? Konstruktor też może być operacją, ale tylko wyjątkowo powinno się je umieszczać

8 W PROWADZENIE Relacje Czym są relacje pomiędzy klasami??? Relacje: klasa samochód i klasa koło są ze sobą jakoś powiązane Relacje mogą być wyrażane przez atrybuty lub asocjacje. Jest to zamienne. Asocjacje mogą mieć strzałki, wskazujące kierunek asocjacji. Źródło: Wikipedia Pytania 1.Co to są relacje w UML i jak się je odwzorowuje?

9 W PROWADZENIE Relacje Relacje są symbolizowane przez różne rodzaje linii. Mogą być wyrażane przez atrybuty lub asocjacje. Jest to zamienne. Wybór, które atrybuty mają być wpisane, a które asocjacyjne zależy od tego, na czym chcemy skupić nasz diagram.

10 W PROWADZENIE Asocjacje Asocjacja (ang. association) informuje, że jednak z klas używa obiektów innej klasy. Oznacza, że klasa będzie w rzeczywistości zawierać odwołanie do tej klasy w postaci atrybutu. Zależność asocjacji może zawierać grot kierunku (kierunek nawigacji), opisujący która klasa zawiera atrybut opisujący związek.

11 W PROWADZENIE Krotności Z zależnościami, z których wynikają atrybuty klasy, wiąże się określenie krotności. Krotność pozwala określić minimalną i maksymalną liczbę obiektów, jakie można powiązać z daną cechą: dolna granica..górna granica – przedział od-do Np.: 1 – dokładnie jeden obiekt 0..1 – opcjonalnie jeden obiekt 1..* - przynajmniej jeden obiekt 1, 3, 5 – konkretne liczby obiektów * - dowolna liczba obiektów

12 W PROWADZENIE Asocjacje Jeśli jakaś klasa jest częścią innego bytu można to wyróżnić poprzez zastosowanie: Agregacji całkowitej - zniszczenie obiektu nadrzędnego nie niszczy obiektu podrzędnego (samochód -> koło) Kompozycji - zniszczenie obiektu nadrzędnego niszczy obiekt podrzędny (dom -> pokój) W kodzie typowych języków programowania obiektowego brak jest Rozróżnienia dla agregacji częściowej i całkowitej. Występuje po prostu nowy atrybut.

13 W PROWADZENIE Przykład Przykład agregacji całkowitej:

14 W PROWADZENIE Uogólnienie (dziedziczenie) Uogólnienie (ang. generalization) opisuje klasy, które są szczególnym rodzajem innej klasy (posiada, jest rodzajem). W programowaniu klasę bardziej ogólną nazywa się klasą bazową.

15 W PROWADZENIE Dziedziczenie wielokrotne i wielobazowe. Nie we wszystkich językach programowania obiektowego dziedziczenie wielobazowe jest wspierane. Uogólnienie (dziedziczenie)

16 W PROWADZENIE Zależność Zależność: jeśli zmiany w jednej klasie mogą pociągać za sobą konieczność zmian w drugiej: Jedna klasa wysyła komunikat do drugiej Jednak klasa zawiera w sobie inną klasę Jedna klasa jest użyta w parametrach operacji innej klasy Zależności pozwalają na uchwycenie skali zmian związanych ze zmianami danej klasy. Można bardziej szczegółowo opisywać zależności za pomocą stereotypów. Może być skierowana lub nieskierowana.

17 W PROWADZENIE Zależność Zależności można doprecyzować notatkami: Można także skorzystać z predefiniowanych stereotypów: «call» - operacje w klasie A wywołują operacje w klasie B «create» - klasa A tworzy instancje klasy B «instantiate» - obiekt A jest instancją klasy B «use» - do zaimplementowania klasy A wymagana jest klasa B

18 W PROWADZENIE Ograniczenia Ograniczenia, np. krotność, uogólnienie Czasami na etapie projektowania klas projektant chce ograniczyć sposób działania klasy, czyli określone reguły, które powinny być spełnione. Ograniczenia zależą od specyfiki problemu. UML dopuszcza dowolną formę innych ograniczeń, np. poprzez notatki. Jedynym wymaganiem jest używanie nawiasów klamrowych do opisu ograniczenia.

19 W PROWADZENIE Ograniczenia W zakresie projektowania systemów informatycznych zdefiniowany został specjalny format (język) OCL (Object Constraint Language) Zawiera trzy grupy ograniczeń: Niezmienniki, warunki wstępne, warunki końcowe

20 W PROWADZENIE Klasy abstrakcyjne Klasa abstrakcyjna nie może mieć instancji. Aby wskazać, że kwestie implementacji danych operacji bądź całej klasy pozostawiamy do rozstrzygnięcia w klasach potomnych, zapisujemy te operacje czcionką pochyłą. Jeśli klasa jest abstrakcyjna, wszystkie jej operacje także są abstrakcyjne.

21 W PROWADZENIE Interfejs Interfejs: nie posiada implementacji. Oznacza się stereotypem > Interfejs może być wymagany (używany) przez klasę lub implementowany przez klasę. Klasa B realizuje klasę A, wtedy gdy implementuje jej wszystkie metody. Zazwyczaj klasa A jest interfejsem. Istnieje też notacja piłeczkowa.

22 W PROWADZENIE Klasy szablonowe Szablony to inaczej sparametryzowane operacje (lub klasy) są przydatne wtedy, gdy chcemy opóźnić podjęcie decyzji, z jakimi klasami dana klasa ma współpracować.

23 W PROWADZENIE Wykorzystanie diagramów klas Jak używać diagramów klas? Notacja jest bardzo bogata. Należy uważać, aby nie przesadzić W zastosowaniach biznesowych używa się diagramów klas aby zrozumieć pojęciowo zagadnienia biznesowe. W tej dziedzinie należy unikać dyskusji o oprogramowaniu. Znów – oszczędnie. Można same byty i powiązanie, bez atrybutów, metod. Zrozumieć biznes. Technicznie: Modelowanie struktury programu obiektowego – notacja dziedzinowa.

24 W PROWADZENIE Związki pomiędzy klasami - posumowanie Zależność: Asocjacja: Agregacja częściowa: Agregacja całkowita: Dziedziczenie: Realizacja:

25 W PROWADZENIE Przykład System zamówień

26 W PROWADZENIE Przykład Symulator zdarzeń dyskretnych

27 DIAGRAMY OBIEKTÓW

28 D IAGRAMY OBIEKTÓW ( OBJECT DIAGRAM ) Obiekt (ang. object) może być opisany za pomocą: tożsamości, stanu i zachowania (zgodnie z definicją – jeśli istnieje – danego typu klasy). Moja_pralka Typ: Frania Nazwa modelu: kt100 Numer fabryczny: Pojemność:7 kg Co można robić? Włożyć pranie Nasypać proszek Wyjąć ubrania Diagramy obiektów

29 D IAGRAMY OBIEKTÓW ( OBJECT DIAGRAM ) Diagramy obiektów Notacja dla diagramów obiektów jest stosunkowo prosta. Wykorzystuje się je dla ukazania współdziałania ze sobą obiektów w określonej sytuacji. Instancja obiektu wyglądają następująco: Obiekt anonimowy Instancje obiektów Diagramy obiektów obrazują zbiór obiektów i związków między nimi. Przedstawia się na nich egzemplarze elementów z diagramów klas istniejące w wybranym momencie działania systemu.

30 D IAGRAMY OBIEKTÓW ( OBJECT DIAGRAM ) Diagramy obiektów Diagram klas a diagram obiektów:

31 D IAGRAMY OBIEKTÓW ( OBJECT DIAGRAM ) Diagramy obiektów – połączenia pomiędzy obiektami Połączenia pomiędzy obiektami tworzy się aby wykazać możliwość ich wzajemnej komunikacji i współdziałania. Do połączenia można dołączyć etykietę oznaczającą przeznaczenie połączenia.

32 D IAGRAMY OBIEKTÓW ( OBJECT DIAGRAM ) Diagramy obiektów - przykład

33 D IAGRAMY OBIEKTÓW ( OBJECT DIAGRAM ) Podsumowanie


Pobierz ppt "DIAGRAMY KLAS I OBIEKTÓW dr inż. Sławomir Nowak PROJEKTOWANIE W SYSTEMACH UML."

Podobne prezentacje


Reklamy Google