Rysunek 1: Przykłady graficznej prezentacji klas.



Podobne dokumenty
UML w Visual Studio. Michał Ciećwierz

Inżynieria oprogramowania. Część 5: UML Diagramy klas

TECHNOLOGIE OBIEKTOWE. Wykład 3

Diagramy klas. dr Jarosław Skaruz

Diagramy klas. WYKŁAD Piotr Ciskowski

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Laboratorium 6 DIAGRAM KLAS (Class Diagram)

Modelowanie obiektowe

KATEDRA INFORMATYKI STOSOWANEJ PŁ ANALIZA I PROJEKTOWANIE SYSTEMÓW INFORMATYCZNYCH

UML. zastosowanie i projektowanie w języku UML

Diagramy klas i obiektów

UML cz. II. UML cz. II 1/38

Diagram klas UML jest statycznym diagramem, przedstawiającym strukturę aplikacji bądź systemu w paradygmacie programowania obiektowego.

Modelowanie danych, projektowanie systemu informatycznego

Modelowanie diagramów klas w języku UML. Łukasz Gorzel @stud.umk.pl 7 marca 2014

Podstawy języka UML UML

Język UML w modelowaniu systemów informatycznych

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

MAS dr. Inż. Mariusz Trzaska

Język UML w modelowaniu systemów informatycznych

Podstawy inżynierii oprogramowania

MAS dr. Inż. Mariusz Trzaska

Modelowanie klas i obiektów. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Podstawy modelowania w języku UML

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

Podstawy projektowania systemów komputerowych

Projektowanie logiki aplikacji

UML - zarys 2007/2008

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Świat rzeczywisty i jego model

Modelowanie. Wykład 1: Wprowadzenie do Modelowania i języka UML. Anna Kulig

1. Mapowanie diagramu klas na model relacyjny.

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA. Modelowanie danych. Model związków-encji

Język JAVA podstawy. Wykład 4, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Wykład 8: klasy cz. 4

Programowanie obiektowe - 1.

Laboratorium z przedmiotu: Inżynieria Oprogramowania INP

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 2 Ćwiczenia w narzędziu CASE diagram klas. Materiały dla nauczyciela

Podstawy języka UML UML

Programowanie obiektowe

UML (Unified Modeling Language jest to sposób formalnego opisu modeli reprezentujących projekty informatyczne.

Programowanie obiektowe

Programowanie obiektowe

1 Projektowanie systemu informatycznego

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki

DIAGRAM KLAS. Kamila Vestergaard. materiał dydaktyczny

MODELOWANIE OBIEKTOWE Z UML

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 2 Ćwiczenia w narzędziu CASE diagram klas. Materiały dla studentów

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Rozdział 4 KLASY, OBIEKTY, METODY

12) Wadą modelu kaskadowego jest: Zagadnienia obowiązujące na egzaminie z inżynierii oprogramowania: 13) Wadą modelu opartego na prototypowaniu jest:

KATEDRA INFORMATYKI STOSOWANEJ PŁ ANALIZA I PROJEKTOWANIE SYSTEMÓW INFORMATYCZNYCH

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Podstawy Programowania Obiektowego

Paweł Kurzawa, Delfina Kongo

Podstawy Języka Java

Analiza i projektowanie aplikacji Java

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

Diagramy czynności. Widok logiczny. Widok fizyczny

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych

Język UML. dr inż. Piotr Szwed C3, pok

Mechanizm dziedziczenia

Programowanie obiektowe

MODELOWANIE OBIEKTOWE

Enkapsulacja, dziedziczenie, polimorfizm

Język UML w modelowaniu systemów informatycznych

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych

Projektowanie systemów informatycznych. Roman Simiński siminskionline.pl. Modelowanie danych Diagramy ERD

Tutorial prowadzi przez kolejne etapy tworzenia projektu począwszy od zdefiniowania przypadków użycia, a skończywszy na konfiguracji i uruchomieniu.

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.

Programowanie obiektowe

Technologie obiektowe

Typy klasowe (klasy) 1. Programowanie obiektowe. 2. Założenia paradygmatu obiektowego:

Język UML w modelowaniu systemów informatycznych

Technologie i usługi internetowe cz. 2

Podstawy programowania III WYKŁAD 4

Faza analizy (modelowania) Faza projektowania

> C++ dziedziczenie. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki

Języki programowania imperatywnego

SysML Tworzenie diagramu kontekstowego i bloków wewnętrznych SysML003

Inżynieria oprogramowania Jarosław Kuchta. Modelowanie interakcji

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Oprogramowanie o wysokiej jakości to oprogramowanie spełniające następujące kryteria:

Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 5 Ćwiczenia w narzędziu CASE diagram przypadków uŝycia. Materiały dla nauczyciela

Diagramu Związków Encji - CELE. Diagram Związków Encji - CHARAKTERYSTYKA. Diagram Związków Encji - Podstawowe bloki składowe i reguły konstrukcji

INŻYNIERIA OPROGRAMOWANIA. laboratorium

Bazy danych TERMINOLOGIA

MAS dr. Inż. Mariusz Trzaska. Realizacja różnych modeli dziedziczenia w obiektowych językach programowania

UML. dr inż. Marcin Pietroo

Programowanie obiektowe

Wykład 7: Pakiety i Interfejsy

Identyfikacja i modelowanie struktur i procesów biologicznych

Wprowadzenie do programowania aplikacji mobilnych

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

Kurs WWW. Paweł Rajba.

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

PHP 5 język obiektowy

Transkrypt:

4 DIAGRAMY KLAS. 4 Diagramy klas. 4.1 Wprowadzenie. Diagram klas - w ujednoliconym języku modelowania jest to statyczny diagram strukturalny, przedstawiający strukturę systemu w modelach obiektowych przez ilustrację struktury klas i zależności między nimi. Diagram klas przedstawia klasy (typy) obiektów w programie, w odróżnieniu od diagramu obiektów, który pokazuje jedynie egzemplarze (instancje) obiektów i ich zależności istniejące w konkretnym momencie. Diagram klas pokazuje określony fragment struktury systemu. Diagramów klas używa się do modelowania statycznych aspektów perspektywy projektowej. Wiąże się z tym silnie modelowanie słownictwa systemu, kooperacji lub schematów. Diagramy klas pozwalają na sformalizowanie specyfikacji danych i metod. Mogą także pełnić rolę graficznego środka pokazującego szczegóły implementacji klas. Klasa w modelu UML programu obiektowego jest reprezentowana przez prostokąt z umieszczoną wewnątrz nazwą klasy (rys. 1). Oddzielona część prostokąta pod nazwą klasy może zawierać atrybuty klasy, czyli metody (funkcje), właściwości (properties) lub pola (zmienne). Każdy atrybut pokazywany jest przynajmniej jako nazwa, opcjonalnie także z typem, wartością i innymi cechami. Metody klasy mogą znajdować się w osobnej części prostokąta. Każda metoda jest pokazywana przynajmniej jako nazwa, a dodatkowo także ze swoimi parametrami i zwracanym typem. Rysunek 1: Przykłady graficznej prezentacji klas. O ile dana klasa nie definiuje atrybutów (odp. metod) wówczas drugie (odp. trzecie) pole jest puste. Trzecie pole może być pominięte. Atrybuty (zmienne i właściwości) oraz metody mogą mieć też oznaczoną widoczność (zakres znaczenia ich nazw) jak następuje: + dla public - publiczny, dostęp globalny # dla protected - chroniony, dostęp dla pochodnych klasy (wynikających z generalizacji) - dla private - prywatny, dostępny tylko w obrębie klasy (przy atrybucie statycznym) lub obiektu (przy atrybucie zwykłym) - dla package - pakiet, dostępny w obrębie danego pakietu, projektu. Diagram klas pokazuje klasy w postaci pewnych oznaczeń graficzno-językowych powiązanych w sieć zależnościami należącymi do trzech kategorii: 1 http://www.konradsobolewski.pl/

4.2 Asocjacje. 4 DIAGRAMY KLAS. ˆ Dziedziczenie (inheritance), czyli ustalenie związku generalizacji/specjalizacji pomiędzy klasami. ˆ Asocjacja (association), czyli dowolny związek pomiędzy obiektami dziedziny przedmiotowej, który ma znaczenie dla modelowania. ˆ Agregacja (aggregation) / kompozycja (composition), czyli szczególny przypadek asocjacji, odwzorowujący stosunek całość-część pomiędzy obiektami z modelowanej dziedziny przedmiotowej. 4.2 Asocjacje. Oznaczenia klas w UML mogą być połączone liniami oznaczającymi asocjacje, czyli powiązania pomiędzy obiektami tych klas. Rysunek 2 pokazuje specyfikację asocjacji Pracuje dla pomiędzy obiektami klasy Osoba i obiektami klasy Firma. Czarny trójkącik określa kierunek wyznaczony przez nazwę powiązania (w danym przypadku określa on, że osoba pracuje dla firmy, a nie firma pracuje dla osoby). Asocjacje mają nazwy, takie jak Pracuje dla, które wyznaczają znaczenie tej asocjacji w modelu pojęciowym. Jeżeli to znaczenie jest oczywiste, wówczas nazwę asocjacji można pominąć. Zatem asocjacje mogą być: ˆ nienazwane: Rysunek 2: Przykład asoscjacji. Rysunek 3: Asocjacja nienazwana. ˆ nazwane z opcjonalnym umieszczeniem znacznika wskazującego kierunek interpretacji asocjacji: Rysunek 4: Asocjacja nazwana. ˆ scharakteryzowane poprzez role klas pełnione w asocjacji: Rysunek 5: Asocjacja z rolami. ˆ nazwane i równocześnie scharakteryzowane przez role: 2 http://www.konradsobolewski.pl/

4.2 Asocjacje. 4 DIAGRAMY KLAS. Rysunek 6: Asocjacja nazwana z rolami. Asocjacje mogą też być binarne (dwie klasy): i n-arne (więcej klas niż dwie): Rysunek 7: Asocjacja binarna. Rysunek 8: Asocjacja n-arna. Asocjacje mogą być wyposażone w oznaczenia liczności. Jak zwykle, liczność oznacza, ile obiektów innej klasy może być powiązane z jednym obiektem danej klasy; zwykle określa się to poprzez parę liczb (znaków) oznaczającą minimalną i maksymalną liczbę takich obiektów. Zapis liczności w UML jest naturalny i nie wprowadza specjalnych symboli graficznych. Oznaczenie 0..* oznacza liczność od zera do dowolnie wielkiej liczby; może być skrócone do pojedynczej gwiazdki. Analogicznie, 1..* oznacza liczność od jeden do dowolnie wielkiej liczby, zaś 0..1 oznacza liczność zero lub jeden. Generalnie, oznaczenia liczności mogą być zapisem dowolnego podzbioru liczb całkowitych nieujemnych, gdzie podwójna kropka oznacza od...do..., zaś gwiazdka oznacza dowolną liczbę. 3 http://www.konradsobolewski.pl/

4.3 Dziedziczenie. 4 DIAGRAMY KLAS. Rysunek 9: Liczności. 4.3 Dziedziczenie. Strzałka (z białym trójkątnym grotem) prowadzi od pod-klasy do jej bezpośredniej nadklasy. Zakłada się, że obiekt pod-klasy automatycznie dziedziczy wszystkie atrybuty, metody, asocjacje i agregacje z wszystkich jej nadklas. Użytkownik może explicite zadeklarować aspekt, według którego specjalizuje się dany obiekt (np. napęd lub teren), oraz określić fakt niepustego przecięcia zakresów znaczeniowych - zbiorów obiektów (overlapping). Rysunek 10: Przykład dziedziczenia. Klasy Ciężarówka i Żaglówka (rys. 11) zostały zdefiniowane z użyciem wielokrotnego dziedziczenia. Na rysunku zilustrowano również możliwość określania faktu, że podklasy są rozłączne (disjoint) i nie przykrywają całego zakresu znaczeniowego ich nadklasy (incomplete). 4 http://www.konradsobolewski.pl/

4.4 Agregacje i kompozycje. 4 DIAGRAMY KLAS. Rysunek 11: Dodatkowe elementy specyfikacji dziedziczenia. 4.4 Agregacje i kompozycje. Agregacja jest szczególnym przypadkiem asocjacji wyrażającym zależność część-całość. W praktyce wyróżniamy dwa rodzaje agregacji: ˆ agregację całkowitą kompozycja ˆ agregację częściową W obydwu rodzajach agregacji występują dwa podstawowe pojęcia: ˆ agregat obiekt stanowiący całość ˆ segment obiekt stanowiący część W przypadku agregacji całkowitej obiekty-segmenty będące częściami agregatów nie mogą samodzielnie i niezależnie funkcjonować. Usunięcie agregatu powoduje automatyczną likwidację segmentów będących jego częściami. Natomiast agregacja częściowa wskazuje na asocjację, w której usunięcie obiektu będącego agregatem nie powoduje likwidacji obiektów będących jego częściami, czyli obiektów-segmentów. Obiekty współdzielone mogą zatem funkcjonować niezależnie od agregatu. Rysunek 12 przedstawia obie te relacje. 5 http://www.konradsobolewski.pl/

4.5 Przykładowe diagramy klas. 4 DIAGRAMY KLAS. Rysunek 12: Agregacja: a) całkowita (kompozycja), b) częściowa 4.5 Przykładowe diagramy klas. Dwa kolejne rysunki (rys. 13 oraz rys. 14) przedstawiają przykładowe diagramy klas. Rysunek 13: Diagram klas z uwzględnieniem agregacji. 6 http://www.konradsobolewski.pl/

4.6 Proces tworzenia diagramu klas. 4 DIAGRAMY KLAS. Rysunek 14: Przykładowy diagram klas. 4.6 Proces tworzenia diagramu klas. W procesie tworzenia diagramu klas wyróżnić można następujące etapy: 1. Zidentyfikowanie i nazwanie klas. 2. Opcjonalnie określenie zobowiązań klas. 3. Połączenie poszczególnych klas z wykorzystaniem związków asocjacji. 4. Zidentyfikowanie oraz nazwanie atrybutów i operacji. 5. Wyspecyfikowanie asocjacji z użyciem jej cech (nazwy, ról, liczebności, agregacji i in.) 6. Opracowanie innych rodzajów związków (uogólnień, zależności, realizacji). 7. Pełne i precyzyjne wyspecyfikowanie atrybutów i operacji zgodnie ze składnią UML. 4.7 Praca domowa. Przygotować na następne zajęcia diagram klas swojego systemu w postaci pliku / wydruku. Przygotować się merytorycznie z tematu Diagramy interakcji. 7 http://www.konradsobolewski.pl/