UML-diagramy klas 1 DIAGRAMY KLAS
Transkrypt
UML-diagramy klas 1 DIAGRAMY KLAS
UML-diagramy klas DIAGRAMY KLAS -Klasa, interfejsy, kooperacje i związki miedzy nimi (zależności, uogólnienia, powiązania) obrazowanie statycznych aspektów perspektywy projektowej oraz wymagań funkcjonalnych systemu –tj. usługi, jakie powinien udostępniać swoim użytkownikom. Zadania: Modelowanie słownictwa systemu;Modelowanie prostych kooperacji;Modelowanie schematu logicznej bazy danych Poziom konceptualny - diagram zwiera nazwy klas, atrybuty i operacje oraz związki. Poziom implementacyjny - diagram konceptualny wzbogacony o elementy takie opisu jak: typy danych, zobowiązania, widoczność, statyczność, klasy asocjacyjne, kwalifikacje, uogólnienia, zależności i realizacje. PROCES TWORZENIA DIAGRAMU KLAS: 1. Zidentyfikowanie i nazwanie klas; 2. Opcjonalne określenie zobowiązań klas; 3. Połączenie poszczególnych klas z wykorzystaniem związków asocjacji; 4. Zidentyfikowanie i nazwanie atrybutów i operacji; 5. Wyspecyfikowanie asocjacji z użyciem wszystkich jeje cech (nazwy, ról, nawigacji, liczebności; agregacji i kwalifikacji); 6. Opracowanie innych rodzajów związków tj. uogólnień, zależności i realizacji; 7. Pełne, precyzyjne wyspecyfikowanie atrybutów i operacji zgodnie ze składnią; 8. Opcjonalne opracowanie diagramu obiektów. SKŁADOWE KLASY Atrybuty notacja widoczność nazwa atrybutu: typ liczebość= wartość_poczatkowa {określenie właściwości} Przykład: #cena: Single[0..*]=750 {changeable} Operacje notacja widoczność nazwa(lista parametrów) : określenie właściwosci_typu_wyniku Specyfikator dostępu + publiczny(public); # chroniony(protected); - prywatny(private); ~ pakietowy Sposób przekazania argumentu in(wartość), out (wynik)inout(przez wartośc i przez wynik) Przykład: + obliczPlatnosc(In pozycja:Byte=50, obnizka:Boolean):Long ZWIĄZKI MIEDZY KLASAMI języka UML asocjacje obrazują związki strukturalne miedzy obiektami uogólnienia obrazuje relacje miedzy klasami ogólnymi a klasami szczegółowymi zależności reprezentują używanie danej klasy przez inną, związek użycia realizacje jedna strona związku wskazuje klasyfikator określający kontrakt, druga , klasyfikator zapewniający wywiązanie się z niego. 1. Powiązanie (nazwa, liczebność, rola, nawigacja, agregacja): ASOCJACJA Związek strukturalny wskazujący, że obiekt jednej klasy są powiązane z obiektami drugiej klasy i vice versa .(stałe powiązanie, istniejące mimo zmian obiektów(instancji, egzemplarzy klas)). Wyróżnia się dwa rodzaje asocjacji : binarne i n-arne. Zwykle powiązanie jest związkiem równorzędnych partnerów (ten sam poziom pojęciowy). 1..* Reprezentują zobowiązania klas (perspektywa specyfikacyjna) * osoba firma Asocjacja mająca atrybuty jest klasą asocjacyjną, pracodawca pracownik Zastosowanie: rola B Klasa B Klasa A Stanowisko rola A zarobek pracownik * 0..1 szef może być, określa istotę powiązania, może zawierać kierunek odczytu klasa w powiązaniu odgrywa określoną rolę, w różnych powiązaniach może być różna rola kieruje wskazanie kierunku komunikowania się pomiędzy klasami. określa ile obiektów danej klasy musi być połączonych z obiektem klasy znajdującej się na końcu przeciwnym. Liczebność: dokładnie jeden (1), zero lub jeden (0..1), dowolnie wiele (0..*), co najmniej jeden (1..*) lub dowolna ustalona liczba ((3) lub (3..4, 6..*)) (A ilośćB -min i max ilość obiektów widziana przez A obiektów B agregacja: opisuje związek całość-część pomiędzy klasami Firma Dzial Agregacja częściowa: szczególny przypadek powiązania, 1..1 1..* Obiekt – całość – agregat ma obiekt –część - segment. Usunięcie obiektu bedącego agregatem nie powoduje likwidacji obiektów będących jego częściami. Obiekty współdzielone mogą, zatem funkcjonować samodzielnie, niezależnie od agregatu. Agregacja całkowita - kompozycja (romb wypełniony): obiekt będący częścią żyje wraz z całością. Usuniecie agregatu powoduje automatyczną likwidację wszystkich segmentów będących jego częściami. Klasa asocjacyjna – umożliwia bardziej precyzyjny opis związku między klasami. Służy do przedstawiania asocjacji w postaci klas. Asocjacje wielokrotne – powiązane klasy mogą pełnić względem siebie kilka odmiennych ról. Tym samym klasy te mogą być połączone kilkoma asocjacjami . Asocjacje zwrotne – istnieje możliwość przedstawiania asocjacji wiążącej daną klasę z samą sobą. Kwalifikacja – umożliwia wyszukiwanie obiektów związanych z daną asocjacją. Kwalifikacja dokonuje się za pomocą kwalifikatora – atrybutu lub listy atrybutów, których wartości porządkują zbiór obietów występujących w asocjacji. 2. Uogólnienie GENERALIZACJA (jest rodzajem) nazwa: role: nawigacja liczebność: 1 Fi gura pol ozeni a przenies( ) zm ienWi elkosc( ) wyswi etl ( ) Prostokat wi erzchole k Związek miedzy elem. ogólnym (nadklasą, przodkiem, Typ Podstawowy klasa bazowa) a specyficznym jego rodzajem (podklasa, potomek, klasa pochodna) Potomek dziedziczy atrybuty i operacje przodka Operacje potomne mogą mieć tę samą sygnaturę PodTyp1 PodTyp2 co operacja przodka i są ważniejsze tzn mają pierwszeństwo wykonania (tzw. Polimorfizm) Klasy istniejące na diagramie hierarchii dzielą się na klasy abstrakcyjne (kusywą) – nie mają konkretnych instancji obiektów, tylko atrybuty i operacje podlegające dziedziczeniu. Klasy konkretne (czcionka normalna) – posiadające instancje obiektów. Klasy konkretne – klasy na najniższym poziomie hierarchii - {leaf}. Klasa na najwyższym poziomie hierarchii - {root}. Dyskryminator (ang. generalization set) – okresla kryterium dokonywania klasyfikacji w uogólnieniu. Podstawowe ograniczenia dotyczące związków uogólnienia: {complete}- zawiera pełen zestaw podklas w danej klasie, {incomlete}- zestaw podklas nie jest pełny, {disjoint}każda podklasa w hierarchii jest rozdzielne, {overlapping} – w hierarchii klas określone klasy mogą mieć wspólne podklasy. Okrag promi en 3. Zależność (od której klasy): związek użycia, podkreśla się, że 1 klasa używa 2-giej klasy jako argumentu w sygnaturze operacji. Czasami przydatny stereotyp RozkładZajęć Klasa A Klasa B Przedmiot dodaj(p:Przedmiot) usuń(p:Przedmiot) 4. Realizacja Realizacja wskazuje na związek pomiędzy interfejsem, a klasą. Identyfikuje interfejsy, które zapewniają realizację usługi klasy. Interfejs – to zestaw operacji, które wyznaczają usługi oferowane przez klasę lub komponent. Interfejsw UML klasa, która ma wyłącznie operacje publiczne (tzn. ogólnie dostępne) bez ciał metod i atrybutów *DIAGRAMY OBIEKTÓW obraz obiektów w systemie w danej chwili, użyty w celu pokazania przykładowej konfiguracji obiektów przydatny, gdy powiązania między obiektami są skomplikowane można traktowac jako diagram współdziałania, bez komunikatów Nazwa obiektu: Nazwa Klasy UWAGI do diagramów klas: 1. Nie należy stosować całej dostępnej notacji (zacząć od Klas, asocjacji, atrybutów, uogólnień, ograniczeń, bez *) 2. Dostosować diagram do etapu (np. analiza –model pojęciowy, projekt –model specyfikacyjny, itp.) 3. unikać szczegółów zwłaszcza implementacyjnych Przykład: 1. Zamówienie – diagram konceptualny: Zamówienie 1..1 Klient 1..1 * KlientFirmowy pozycje KlientIndywidualny wnioski: asocjacja: Zamówienie musi przyjśc od 1 Klienta, Klient może złożyć wiele Zamówień. Każde Zamówienie zawiera kilka Pozycji zamówienia, z których każda odnosi się do 1 Towaru uogólnienie: Klient Firmowy jest typem pochodnym Klienta. Klient Firmowy jest specyficznym typem Klienta * PozycjaZamowienia Towar * 1..1 PODSUMOWANIE: Modelowanie struktury: Diagramy klas Cel: określenie obiektów przechowywanych w systemie, ich stanu i zachowania, określenie klasy obiektów, zależności miedzy klasami Hasła: obiekt, klasa, dane, metody, dziedziczenie(generalizacja/specjalizacja), asocjacja (liczność, rola, atrybut, kierunek nawigacji, ograniczenia, kwalifikator), agregacja (kompozycja) Wynik: klasa i jej składowe, diagram klas z zależnościami :dziedziczenie, asocjacja, agregacja 2