Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

UML Diagram klas i obiektów. Co to jest klasa ? Klasa to kategoria lub grupa rzeczy, które mają podobne atrybuty i wspólne zachowania. Oto przykład. Cokolwiek.

Podobne prezentacje


Prezentacja na temat: "UML Diagram klas i obiektów. Co to jest klasa ? Klasa to kategoria lub grupa rzeczy, które mają podobne atrybuty i wspólne zachowania. Oto przykład. Cokolwiek."— Zapis prezentacji:

1 UML Diagram klas i obiektów

2 Co to jest klasa ? Klasa to kategoria lub grupa rzeczy, które mają podobne atrybuty i wspólne zachowania. Oto przykład. Cokolwiek należy do klasy pralek ma takie atrybuty jak nazwa firmowa, model, numer fabryczny i pojemność. Czynności właściwe dla rzeczy tej klasy to między innymi działania opisane przez polecenia „włóż ubrania”, „dodaj detergenty”, „włącz” i „usuń ubrania”.

3 Pralka nazwaFirmowa nazwaModelu numerFabryczny pojemość włóżUbrnia() dodajDetergent() wyjmijUbrania() Ogólnie mamy następujący wygląd klas NazwaKlasy Argumenty (...) Metody() (...)

4 Co to jest obiekt ? Obiekt to egzemplarz należący do klasy – szczególna rzecz która ma szczególne atrybuty i operacje. Notacja UML-owa obiektu: MojObiekt:NazwaKlasy (...) Obiekty są egzemplarzami należącymi do klas (kategorii). Obiekt ma strukturę, co oznacza, że ma atrybuty (właściwości) i zachowania (czynności). Na zachowanie obiektu składają się wykonywane przezeń operacje. Atrybuty i operacje nazywamy łącznie składnikami obiektu.

5 Co to jest obiektowość Obiektowość to coś więcej niż samo ustanawianie atrybutów i operacji. Dotyczy ona również aspektów obiektów. Te aspekty to abstrakcja, dziedziczenie, polimorfizm i kapsułkowanie (hermetyzacja). Trzy inne ważne aspekty obiektowości to wysyłanie, powiązania i agregacja. Celem podejścia obiektowego jest tworzenie oprogramowania będącego odbiciem (tzw. modelem) fragmentu rzeczywistości. Im więcej atrybutów i operacji weźmiemy pod uwagę, tym bardziej zbliży się do świata realnego.

6 Pralka nazwaFirmowa nazwaModelu numerFabryczny pojemość zegarWewnetrzny zamek szybkośćObrotowaSilnika włóżUbrnia() dodajDetergent() wyjmijUbrania() wodajWybielacz() wyznaczCzasPobieraniaWody () wyznaczCzasPrania() wyznaczCzasWirowania() wyznaczCzasPłukania() Pralka nazwaFirmowa nazwaModelu numerFabryczny pojemość włóżUbrnia() dodajDetergent() wyjmijUbrania()

7 Abstrakcja i dziedziczenie Abstrakcja oznacza odfiltrowanie cech i operacji nieistotnych i pozostawienie jedynie tych, które są potrzebne. W zależności jaki mamy zadanie musimy określić jakie cechy nam są potrzebne a jakie możemy opuścić. Klasa to kategoria obiektów. Obiekt jest egzemplarzem danej klasy. Jako egzemplarz danej klasy obiekt ma wszystkie jej cechy. Nazywamy to dziedziczeniem. Wszystkie atrybuty i operacje jakie umieściliśmy w danej klasie, są dziedziczone przez każdy obiekt należący do tej klasy.

8 Nie tylko obiekt dziedziczy cechy klasy. Klasa może dziedziczyć obiekty innej klasy. Pralki, lodówki, kuchenki i mikrofale to wszystko klasy. Ale wszystkie one należą do klasy ogólniejszej – urządzenia elektryczne. Możemy zatem powiedzieć, że pralka, lodówka, kuchenka mikrofalowa to podklasy ogólniejszej klasy urządzeń. Z kolei tę klasę będziemy nazywali nadklasą pozostałych klas podrzędnych.

9 Polimorfizm Czasami jakaś operacja ma w różnych klasach tę samą nazwę. Na przykład można otwierać drzwi, czasopismo, prezent lub dyskietkę. We wszystkich tych przypadkach chodzi o inna operację. W świecie zorientowanym obiektowo każda klasa „wie” o jaką operacje chodzi. Nazywamy to polimorfizmem. Polimorfizm pozwala tworzyć modele na zachowanie naturalnego słownictwa zapewniającego jednoznaczność, bez używania sztucznych słów.

10 Jeżeli jakiś obiekt wykonuje swoje operacje ich szczegóły są ukryte. Nie interesuje nas ciąg skomplikowanych operacji prowadzących do powstania obrazu na ekranie telewizora. Telewizor robi to, co robi, ukrywając przed nami wszystkie procesy. W świecie oprogramowania pomaga ono odciąć się od potencjalnego niebezpieczeństwa złych działań. W systemie złożonym jedne obiekty w określony sposób zależą od innych. Jeżeli jeden zaczyna źle funkcjonować, ukrywanie jego operacji zabezpiecza przed koniecznością zmieniania innych obiektów.

11 Powiązania Kolejną oczywistą rzeczą jest fakt, że obiekty pozostają ze sobą w pewnych związkach. Na przykład, jeżeli włączamy telewizor między Nami i telewizorem występuje powiązanie. Czasem obiekty mogą być ze sobą powiązane na więcej sposobów. Na przykład, jeżeli przyjaźnicie się ze swoimi współpracownikami, występują między Wami dwa powiązania: „jest współpracownikiem” i „jest przyjacielem”. Jest współpracownikiem Jest przyjacielem

12 Klasa może być powiązana z więcej niż jedną klasą. Człowiek może jeździć samochodem osobowym, ale może także autobusem. Jeździ

13 Liczebność i agregacja Liczebność jest ważnym aspektem powiązania istniejącego między obiektami. Mówi nam, ile obiektów z jednej klasy może być powiązanych z jednym obiektem drugiej klasy. Komputer składa się z jednostki centralnej, klawiatury, myszy, monitora. Wewnątrz jednostki centralnej znajdują się dyski twarde, procesor, pamięć itd. Komputer jest agregacją – nowym powiązaniem między obiektami. Inną formą agregacji jest agregacja całkowita. Podstawą agregacji całkowitej jest fakt, że jej komponenty istnieją jedynie jako części całości. Na przykład w skład koszuli wchodzą: część okrywająca tułów, rękawy, kołnierzyk, guziki i mankiety. Jeżeli od koszuli oderwiemy kołnierzyk przekształci się on w bezużyteczną szmatkę.

14 Wizualizacja klas KuchenkaMikrofalowa Prostokąt w UML-u oznacza wizualizację klasy. Nazwą klasy jest słowo pisane z wielkiej litery. Jeśli nazwa klasy składa się z dwóch wyrazów oba słowa są pisane z wielkiej litery i połączone w jedno. Pralka

15 Inną konstrukcją UML-a dotyczącą klas jest pakiet. Jest on narzędziem służącym do organizowania elementów przedstawianych na diagramie. Jest on reprezentowany przez ikonę kartonowej teczki z zakładką opatrzonej napisem z jego nazwą.

16 Jeżeli klasa Pralka jest częścią pakietu Urządzenia Domowe, możemy to zapisać jako Urządzenia Domowe::Pralka. Podwójny dwukropek oddziela zapisaną po lewej stronie nazwę pakietu od zapisanej po prawej stronie nazwy klasy. Tak zapisaną nazwę klasy nazywamy nazwą ścieżkową. Urządzenia Domowe::Pralka

17 Atrybut jest właściwością klasy. Opisuje zakres wartości, które można przypisać do poszczególnych obiektów danej klasy. Klasa może mieć zero lub więcej atrybutów. Zgodnie z konwencją, jednowyrazowy atrybut jest pisany z małej litery. Jeżeli nazwa składa się z większej liczby wyrazów, są one łączone i wszystkie poza pierwszym rozpoczynają się z wielkiej litery. Lista nazw atrybutów rozpoczyna się zaraz pod linią oddzielającą nazwę klasy. Atrybuty Pralka nazwaFirmowa nazwaModelu numerFabryczny pojemność

18 Każdy obiekt ma specyficzne własności wszystkich atrybutów. Nazwa obiektu rozpoczyna się od małej litery, po niej następuje dwukropek oddzielający nazwę klasy, a całość jest podkreślona. mojaPralka:Pralka nazwaFirmowa=”Laundatorium” nazwaModelu=”Washmeister” numerFabryczny=”GL57774” pojemność=8

19 UML pozwala na podawanie dodatkowej informacji o atrybutach. Możliwe jest również określenie domyślnej wartości atrybutu. Pralka:String=”Laundatorium” nazwaFirmowa:String nazwaModelu:String numerFabryczny:String pojemność:Integer

20 Operacje Operacja jest to działanie, które klasa może wykonać lub które na danej klasie może wykonać osoba lub inna klasa. Nazwa operacji, tak jak nazwa atrybutu jest pisana z małej litery. Pralka nazwaFirmowa nazwaModelu numerFabryczny pojemność włóżUbrania() wyjmijUbrania() dodajDetergent() włącz()

21 Tak jak w przypadku atrybutów również do operacji można dołączyć dodatkowe informacje. Pralka nazwaFirmowa nazwaModelu numerFabryczny pojemność włóżUbrania(C:String) wyjmijUbrania(C:String) dodajDetergent(D:Integer) włącz():Boolean Fragmenty informacji dotyczące operacji, jej nazwę łącznie z parametrami nazywamy sygnaturą.

22 Atrybuty, operacje i wizualizacja Pralka W praktyce często nie pokazujemy wszystkich atrybutów i operacji klasy Wielokropek informuje, że nie wszystkie atrybuty lub operacje zostały wyliczone Pralka nazwaFirmowa … włóżUbrania() …

23 Jeśli lista atrybutów jest długa, można ją uczynić bardziej przejrzystą i zrozumiałą używając stereotypów. Oznaczamy je przez nazwę ujętą w podwójne nawiasy kątowe zwane francuskimi. Pralka > nazwaFirmowa nazwaModelu numerFabryczny > pojemność > włóżUbrania() wyjmijUbrania() dodajDetergent() > włącz()

24 Zobowiązania i ograniczenia Ikona klasy pozwala na podanie jeszcze jednego typu informacji. W obszarze pod listą operacji można wyliczyć zobowiązania klasy. Zobowiązanie to opis tego co klasa ma robić, czyli zadań, do realizacji których mają służyć atrybuty i operacje. Na przykład zobowiązaniem każdej pralki jest przyjmowanie brudnych ubrań i oddawanie czystych.

25 Pralka > nazwaFirmowa nazwaModelu numerFabryczny > pojemność > włóżUbrania() wyjmijUbrania() dodajDetergent() > włącz() Zobowiązanie: Weź brudne ubrania, Wyczyść je i zwróć

26 Nieco mniej formalne jest ograniczenie, dość swobodny tekst podany w nawiasach klamrowych. Określa on jedną lub więcej zasad obowiązujących daną klasę. Na przykład dla klasy Pralka chcemy określić zakres możliwych pojemności – 8,9 i 10kg, co oznacza ograniczenie atrybutu pojemność klasy Pralka. Pralka nazwaFirmowa nazwaModelu numerFabryczny pojemność włóżUbrania() wyjmijUbrania() dodajDetergent() włącz() {pojemność = 8 lub 9 lub 10kg}

27 Notatki Notatki zawierają dodatkowe informacje. Zwykle dołącza się je do atrybutów i operacji. Pralka nazwaFirmowa nazwaModelu numerFabryczny pojemność włóżUbrania() wyjmijUbrania() dodajDetergent() włącz()

28 Związki Jeżeli między klasami istnieje związek znaczeniowy, nazywamy go powiązaniem. Powiązanie przedstawiamy jako linię łączącą dwie klasy z nazwą opisującą dane powiązanie. Przydatne jest pokazanie zwrotu związku, do czego używamy wypełnionego trójkąta wskazującego we właściwą stronę. Gra w► ZawodnikDrużyna

29 Gra w► PracodawcaPracownik ZawodnikDrużyna Jeżeli jedna klasa jest powiązana z inną, obie grają w tym powiązaniu własne role. Możemy je objaśnić przez podanie opisów umieszczanych w pobliżu linii powiązania. Powiązanie może działać również w przeciwną stronę. Drużyna zatrudnia zawodników. Gra w► ◄Zatrudnia Zawodnik Drużyna

30 Gra w► Obrońca Drużyna Skrzydłowy Środkowy Powiązania mogą być bardziej skomplikowane. Kilka klas może być połączonych z jedną.

31 Ograniczenia powiązań Czasami powiązanie między dwiema klasami musi spełniać pewne wymagania. Określamy je przez opisanie w pobliżu linii powiązania. Na przykład ObsługaTelefonicznaBanku dotyczy każdego z klasy Klient, ale w kolejności połączenia z centralą. {ordered} Obsługuje► Obsługa Telefoniczna Banku Klient

32 Innym typem ograniczenia jest związek „lub” oznaczany przez {or}. Wybiera► Kierunek naukowy Kierunek komercyjny Student {or}

33 Klasy powiązań Powiązanie może mieć swoje atrybuty i operacje, tak samo jak klasa. W takim przypadku mamy do czynienia z klasą powiązania. Klasa powiązania może być powiązana z innymi klasami. Negocjowany przez► Gra w► ZawodnikDrużyna KontraktGłównyMenadżer

34 Wiązania Obiekt jest egzemplarzem klasy, zaś powiązania mają również swoje egzemplarze. Nazwy wiązań podkreślamy tak samo jak nazwy obiektów. Gra w► Jan Kowalski: Zawodnik Motor Lublin: Drużyna

35 Liczebność Liczebność jest to określenie ile obiektów danej klasy pozostaje w związku z jednym obiektem klasy powiązanej. Liczby te są umieszczane na diagramie obok odpowiedniej klasy nad linią powiązania. 1 5 Gra w► ZawodnikDrużyna

36 W UML’u stosujemy gwiazdkę (*) na oznaczenie wiele. 1 1 Jest ożeniony z ► MążŻona * 1 Naucza► NauczycielUczeń 0,1 1 Ma► DomKomin

37 Powiązania kwalifikowane W przypadku powiązania o liczebności „jeden do wielu” często należy uporać się z dodatkowym wyzwaniem: wyszukiwaniem. Gdy obiekt z jednej klasy ma wybrać powiązany obiekt z drugiej klasy, przy czym ma być spełniony specjalny warunek, jest on zwykle określony przez specjalny atrybut powiązania. Tym atrybutem jest zwykle jakiś identyfikator. Jeżeli robimy rezerwację w hotelu, otrzymujemy jej numer. Jeżeli potem dzwonimy z pytaniem dotyczącym rezerwacji możemy powołać się na ten numer. *1Znajduje ► UrzędnikŻona Numer rezerwacji

38 Powiązanie zwrotne Czasami klasa jest powiązana sama ze sobą. Nazywamy to powiązaniem zwrotnym, a mamy z nim do czynienia, gdy do klasy należą obiekty mogące pełnić różne role. Na przykład UżytkownikSamochodu to pasażer lub kierowca. Użytkownik pełniący rolę kierowcy wiezie zero lub więcej pasażerów pasażer 1 kierowca Wiezie ► Użytkownik Samochodu 0..4pasażer 1 kierowca Wiezie ▼ Użytkownik Samochodu

39 Dziedziczenie Zwierzę SsakPłazGad Koń

40 Modelując dziedziczenie, upewnij się, że podklasa spełnia warunek „jest rodzajem” w stosunku do nadklasy. Jeżeli ten warunek nie jest spełniony zamiast dziedziczenia należy stosować odpowiednio dobrane powiązania. Potomek może być podstawiany za przodka. Oznacza to, że potomek może wystąpić, gdzie występuje przodek. Stwierdzenie odwrotne nie jest prawdziwe. Klasy abstrakcyjne Klasy które nie dostarczą nam żadnych obiektów, a będące przodkami pewnych klas nazywamy klasami abstrakcyjnymi.

41 Zależności Innym rodzajem związku między klasami jest zależność, z która możemy się zetknąć, gdy jedna klasa używa innej klasy. Z najpopularniejszym przypadkiem zależności mamy do czynienia, gdy w sygnaturze jednej klasy występuje nazwa innej klasy. System Formularz WyświetlFormularz()

42 Agregacje Czasami klasa składa się z wielu komponentów. Jest to specjalny związek zwany agregacją. Związek między klasą i jej komponentami nazywamy związkiem całość-część. System komputerowy jest agregacją złożoną z jednostki centralnej, klawiatury, myszy, monitora, napędu CD itd. Agregację przedstawiamy jako hierarchię z klasą „całkowitą” na górze i komponentami poniżej. Oznaczamy ją od strony całości znakiem rombu umieszczonym na linii powiązania całości z komponentami.

43

44 Ograniczenia agregacji Czasami między możliwymi komponentami agregacji występuje związek Or (lub). W niektórych restauracjach posiłek składa się z zupy lub sałatki, dania głównego i deseru. Modelując to, użyjemy ograniczenia – słowa „or” w nawiasach klamrowych i umieszczonego na linii przerywanej, łączącej dwie linie powiązań całość-część.

45 Agregacje całkowite Agregacja całkowita to szczególnie silny typ agregacji, w której każdy komponent może należeć tylko do jednej całości. Komponentami stolika kawiarnianego są blat i nogi tworzące całą kompozycję. Agregację całkowitą oznaczamy tak samo jak agregację zwykłą, z tą różnicą, że rąb całkowitej jest wypełniony.

46 Otoczenia Podczas modelowania systemu wyłaniają się zestawy klas, takie jak agregacje i agregacje całkowite. Jeżeli chcemy skupić uwagę na takim zestawie, należy wyróżnić go spośród innych elementów diagramu. W języku UML służą do tego otoczenia. Zwłaszcza agregacje całkowite są w ten sposób oznaczane. Otoczenie jest szczegółową mapą fragmentu większej mapy.

47

48

49 Interfejsy i realizacje Można zauważyć, że czasami klasy zawierają te same operacje z tymi samymi sygnaturkami, choć nie mają wspólnego przodka. Można dla jednej klasy napisać programy realizujące jej operacje i potem używać ich w innych klasach. Innym rozwiązaniem jest stworzenie zestawu operacji dla klas jednego systemu, by potem używać go w innych systemach. Taki powtarzalny zestaw operacji jest w UML-u nazywany interfejsem. Jest on zestawem operacji, które określają pewien aspekt zachowania klasy i związany z tym zbiór operacji, które klasa udostępnia innym klasom.

50 Związek między klasą i interfejsem nazywamy realizacją. Przedstawiamy ją w postaci linii przerywanej z niewypełnionym trójkątnym grotem na końcu. W przypadku klawiatury komputerowej i klawiatury maszyny do pisania oznacza to, że klawiatura komputerowa „realizuje” część zachowań klawiatury maszyny do pisania. KlawiaturaKomputerowa nazwaFirmowa liczbaKlawiszy Ctrl() Alt() PgUp() PgDown() … > KlawiaturaMaszynyDoPisania naciśnijKlawisz()

51 Interfejs bywa też oznaczany przez kółko połączone z klasą za pomocą linii ciągłej KlawiaturaKomputerowa KlawiaturaMaszynyDoPisania

52 Widoczność Telewizor +nazwaFirmowa +nazwaModelu … +zmieńGłośność() +zmieńKanał() -wyświetlObrazNaEkranie() … Z interfejsami i realizacjami blisko związane jest pojęcie widoczności. Widoczność stosujemy do atrybutów i operacji. Oznacza ona zakres, w jakim inne klasy mogą korzystać z atrybutów i operacji danej klasy. Istnieją trzy poziomy widoczności: public, protected i private. Samochód +producent +nazwaModelu … +przyspiesz() +hamuj() -ustawLicznikKilometrów() …

53 Znaki widoczności: „+” – poziom publiczny „#” – poziom chroniony „-” – poziom prywatny

54 Zasięg Zasięg to kolejne pojęcie dotyczące atrybutów i operacji oraz ich związku z systemem. Mamy dwa rodzaje zasięgu: instance (egzemplarzowy) i classfier (klasyfikowany). W zasięgu egzemplarzowym każdy egzemplarz klasy przechowuje własne wartości atrybutu i operacji, zaś w zasięgu klasyfikowanym istnieje tylko jedna wartość atrybutu lub operacji wspólna dla wszystkich egzemplarzy klasy.


Pobierz ppt "UML Diagram klas i obiektów. Co to jest klasa ? Klasa to kategoria lub grupa rzeczy, które mają podobne atrybuty i wspólne zachowania. Oto przykład. Cokolwiek."

Podobne prezentacje


Reklamy Google