DIAGRAMY KLAS i obiektów

Slides:



Advertisements
Podobne prezentacje
Programowanie obiektowe
Advertisements

Związki w UML.
Programowanie obiektowe
Modelowanie klas i obiektów
Kamil Łącki Dominik Strzelichowski
UML Unified Modeling Language
Co UML może zrobić dla Twojego projektu?
Bartosz Walter Prowadzący: Bartosz Walter
Dziedziczenie i jego rodzaje
C++ wykład 2 ( ) Klasy i obiekty.
Inteligentne Systemy Informacyjne
Zasady zaliczenia Warunki uzyskania zaliczenia:
Unified Modeling Language Wykład 3 Diagram klas
UML - Unified Modeling Language
Diagramy klas w języku UML
Wstęp do programowania obiektowego
Projektowanie i programowanie obiektowe II - Wykład IV
Projektowanie i programowanie obiektowe II - Wykład II
Modele baz danych - spojrzenie na poziom fizyczny
Projektowanie - wprowadzenie
Model dziedziny. Świat rzeczywisty i jego model Świat rzeczywisty (dziedzina problemu) Świat obiektów (model dziedziny) Samochód Osoba Dom Modelowanie.
Wykład 4 Analiza i projektowanie obiektowe
Wykład 5 UML - Unified Modeling Language
Wykład 3 Analiza i projektowanie strukturalne
Unified Modeling Language graficzny język wizualizacji, specyfikowania, tworzenia i dokumentowania systemów informatycznych.
Infrastruktura języka UML w wersji 2.2
Nadstruktura języka UML w wersji 2.2
UML 2.x Robert Pająk.
Diagramy obiegu dokumentów a UML w modelowaniu procesów biznesowych
Źródła: podręcznikopracował: A. Jędryczkowski.
Programowanie strukturalne i obiektowe
Jakub Wołczko W obiektowym świecie… Jakub Wołczko
WPROWADZENIE W ŚWIAT OBIEKTÓW
Dziedziczenie Maciek Mięczakowski
Związki w UML Do zrobienia jest: -Przerysować jak ktoś ma Visio te dwa diagramy tak żeby podmienić tylko nazwy a reszta Taka sama, -I dodać po jednym zdaniu.
Podsumowanie metodologii OMT
Programowanie obiektowe – język C++
Programowanie obiektowe 2013/2014
Modelowanie obiektowe Diagramy czynności
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
Modelowanie obiektowe Diagramy UML – diagram przypadków użycia
Unified Modeling Language - Zunifikowany Język Modelowania
Modelowanie obiektowe Diagramy klas
Programowanie w języku C++
UML W V ISUAL S TUDIO Mateusz Lamparski. UML D EFINICJA Unified Modeling Language (UML) to graficzny język do obrazowania, specyfikowania, tworzenia i.
Interakcja człowiek – komputer Podstawy metod obiektowych mgr inż. Marek Malinowski Zakład Matematyki i Fizyki Wydz. BMiP PW Płock.
Programowanie strukturalne i obiektowe C++
Model obiektowy bazy danych
Diagram aktywności (czynności)
Diagram klas Kluczowymi elementami są: klasy (class)
Diagram klas Diagramy klas służą do obrazowania statycznych aspektów projektowanych systemów jako: Projekt struktury logicznej baz danych Projekt składników.
OCL.
Modelowanie obiektowe - system zarządzania projektami.
Diagram komunikacji (communication diagram)
Programowanie obiektowe
Projektowanie obiektowe. Przykład: Punktem wyjścia w obiektowym tworzeniu systemu informacyjnego jest zawsze pewien model biznesowy. Przykład: Diagram.
Projekt modułu Nazwa całego projektu Nazwa modułu Imię i Nazwisko Inżynieria Oprogramowania II dzień, godzina rok akademicki W szablonie na niebiesko zamieszczone.
Projektowanie bazy danych z użyciem diagramów UML Obiektowe projektowanie relacyjnej bazy danych Paweł Jarecki.
Geneza obiektowości Obiektowość jest stosunkowo nową ideologią, która wynika z zaobserwowanych wad istniejącego świata i podaje jakąś receptę, jak te wady.
Waldemar Bartyna 1 Programowanie zaawansowane LINQ to XML.
Programowanie Zaawansowane
Unified Modeling Language
Wstęp do systemów informatycznych Diagramy klas. Odbiór świata  Myślenie o dziedzinie problemu powinno być możliwie zbliżone do myślenia o systemie 
Asocjacja,Kompozycja,Agregacja
Inżynieria systemów informacyjnych
Programowanie Obiektowe – Wykład 2
PGO Dziedziczenie Michail Mokkas.
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

DIAGRAMY KLAS i obiektów Projektowanie w systemach UML DIAGRAMY KLAS i obiektów dr inż. Sławomir Nowak

Diagramy klas Wprowadzenie 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. Pytania Czym jest klasa w OOP? Źródło: Wikipedia

Diagramy klas Wprowadzenie 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. Pytania Do czego służą i co zawierają diagramy klas UML? Źródło: Wikipedia

Wprowadzenie Symbol klasy: Diagramy klas 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): Pytania Do czego służą i co zawierają diagramy klas UML? Źródło: Wikipedia

Wprowadzenie 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] Pytania Co oznaczają i jaki mają zasięg poszczególne poziomy widoczności? Źródło: Wikipedia

Diagramy klas – atrybuty (właściwości) Wprowadzenie 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

Wprowadzenie 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 Konstruktor też może być operacją, ale tylko wyjątkowo powinno się je umieszczać Pytania Jak definiuje się operacje klasy?

Relacje Wprowadzenie 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. Pytania Co to są relacje w UML i jak się je odwzorowuje? Źródło: Wikipedia

Relacje Wprowadzenie 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.

Asocjacje Wprowadzenie 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.

Krotności Wprowadzenie 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

W kodzie typowych języków programowania obiektowego brak jest Asocjacje Wprowadzenie 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.

Przykład Wprowadzenie Przykład agregacji całkowitej:

Uogólnienie (dziedziczenie) Wprowadzenie 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ą.

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

Zależność Wprowadzenie 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.

Zależność Wprowadzenie 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

Ograniczenia Wprowadzenie 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.

Ograniczenia Wprowadzenie 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

Klasy abstrakcyjne Wprowadzenie 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.

Interfejs Wprowadzenie Interfejs: nie posiada implementacji. Oznacza się stereotypem <<interface>> 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”.

Klasy szablonowe Wprowadzenie 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ć.

Wykorzystanie diagramów klas Wprowadzenie 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.

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

Przykład Wprowadzenie System zamówień

Przykład Wprowadzenie Symulator zdarzeń dyskretnych

Diagramy obiektów

Diagramy 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: 012412 1976 Pojemność:7 kg Co można robić? Włożyć pranie Nasypać proszek Wyjąć ubrania

Diagramy obiektów (object diagram) 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. Instancje 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

Diagramy obiektów (object diagram) Diagram klas a diagram obiektów:

Diagramy obiektów (object diagram) Diagramy obiektów – połączenia pomiędzy obiektami Diagramy obiektów (object diagram) 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.

Diagramy obiektów (object diagram) Diagramy obiektów - przykład Diagramy obiektów (object diagram)

Diagramy obiektów (object diagram) Podsumowanie Diagramy obiektów (object diagram)