Podstawy modelowania w języku UML

Podobne dokumenty
Język UML w modelowaniu systemów informatycznych

Podstawy modelowania w j zyku UML

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

Laboratorium 6 DIAGRAM KLAS (Class Diagram)

Język UML w modelowaniu systemów informatycznych

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

Modelowanie obiektowe

Podstawy projektowania systemów komputerowych

TECHNOLOGIE OBIEKTOWE. Wykład 3

Język UML w modelowaniu systemów informatycznych

Język UML w modelowaniu systemów informatycznych

UML w Visual Studio. Michał Ciećwierz

Rysunek 1: Przykłady graficznej prezentacji klas.

Diagramy klas. dr Jarosław Skaruz

Język UML w modelowaniu systemów informatycznych

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.

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

Modelowanie danych, projektowanie systemu informatycznego

Podstawy języka UML UML

UML. zastosowanie i projektowanie w języku UML

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

Programowanie obiektowe

1 Projektowanie systemu informatycznego

DIAGRAM KLAS. Kamila Vestergaard. materiał dydaktyczny

MAS dr. Inż. Mariusz Trzaska

Język UML w modelowaniu systemów informatycznych

Diagramy klas. WYKŁAD Piotr Ciskowski

Laboratorium z przedmiotu: Inżynieria Oprogramowania INP

Język UML w modelowaniu systemów informatycznych

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

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

Podstawy modelowania w języku UML

Podstawy modelowania w języku UML

Podstawy języka UML2 w realnych projektach

Język UML w modelowaniu systemów informatycznych

Analiza i programowanie obiektowe 2016/2017. Wykład 6: Projektowanie obiektowe: diagramy interakcji

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

Bazy Danych i Systemy informacyjne Wykład 7. Piotr Syga

UML - zarys 2007/2008

Podstawy programowania III WYKŁAD 4

030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła

Inżynieria Oprogramowania. UML Schematy klas

Podstawy języka UML UML

Programowanie obiektowe

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

Język UML w modelowaniu systemów informatycznych

Podstawy inżynierii oprogramowania

MODELOWANIE OBIEKTOWE

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas

Świat rzeczywisty i jego model

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

Programowanie obiektowe

WYKŁAD 1. Wprowadzenie do problematyki baz danych

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Projektowanie obiektowe oprogramowania Wykład 2 - UML Wiktor Zychla 2016

Języki i techniki programowania Ćwiczenia 3 Dziedziczenie

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

Kompozycja i dziedziczenie klas

Paweł Kurzawa, Delfina Kongo

Projektowanie Systemów Informacyjnych

Diagramy przypadków użycia. WYKŁAD Piotr Ciskowski

Wykład II Encja, atrybuty, klucze Związki encji. Opracowano na podstawie: Podstawowy Wykład z Systemów Baz Danych, J.D.Ullman, J.

Autor: Joanna Karwowska

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

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 6

Podstawy języka UML2 w realnych projektach

Spis treúci. Księgarnia PWN: Robert A. Maksimchuk, Eric J. Naiburg - UML dla zwykłych śmiertelników. Wstęp Podziękowania...

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

Języki Programowania. Prowadząca: dr inż. Hanna Zbroszczyk. tel: Konsultacje: piątek:

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 7

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

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Bazy danych wykład trzeci. trzeci Modelowanie schematu bazy danych 1 / 40

Klasy abstrakcyjne, interfejsy i polimorfizm

MAS dr. Inż. Mariusz Trzaska

Bazy danych. Zachodniopomorski Uniwersytet Technologiczny w Szczecinie. Wykład 3: Model związków encji.

Diagramy klas UML. Mateusz Kobos

Projektowanie obiektowe. Roman Simiński Wzorce projektowe Wybrane wzorce strukturalne

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

Diagramy związków encji ERD Ćwiczenia w modelowaniu danych

Technologie baz danych

UML a kod. C++, Java i C#

Drużyny piłkarskie. Rozwiązanie

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

Podstawy Programowania Obiektowego

Diagramy klas i obiektów

Diagram maszyny stanowej - POJĘCIA

Przypomnienie o klasach i obiektach

Dziedziczenie. Zadanie 1

Przykłady normalizacji

Projektowanie baz danych

Podstawy Języka Java

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

Inżynieria oprogramowania Jarosław Kuchta. Modelowanie interakcji

Transkrypt:

Podstawy modelowania w języku UML dr hab. Bożena Woźna-Szcześniak, prof. UJD Uniwersytet Humanistyczno-Przyrodniczy im. Jana Długosza w Częstochowie Wykład 2

Związki między klasami Asocjacja (ang. Associations) Uogólnienie, dziedziczenie (ang. Generalizations) Agregacja (ang. Aggregations) Kompozycja (ang. Composite aggregation) Zagnieżdżenia (ang. Nestings) Klasy asocjacyjne (ang. Association Classes) Zależności (ang. Dependencies)

Asocjacja Asocjacja jest podstawowym rodzajem związków/relacji między klasami i oznacza istnienie trwałego powiązania pomiędzy nimi. Asocjacja może zawierać nazwane role na każdym końcu, liczebności, kierunki i ograniczenia. Przykłady asocjacji: Student studiuje na uczelni Piłkarz gra w drużynie piłkarskiej Lekarz pracuje w szpitalu, itd

Nazwy, role i liczebność asocjacji Nazwa asocjacji wskazuje bezpośrednio czynność, jaka zachodzi pomiędzy klasami. Może także wskazywać kierunek. Role określają jaką rolę pełni dana klasa w asocjacji.

Nazwy, role i liczebność asocjacji Liczebność określa, ile obiektów jednej klasy bierze udział w asocjacji drugiej klasy. Liczebność można określić stałą cyfrą, np.: 1, 2, 3, 4, itd. Liczebność można określić jako nieskończoność - oznaczane przez * Liczebność można określić przedziałem, np. 0..4 - od 0 do 4 2..5 - od 2 do 5 10..1000 - od 10 do 1000 1..* - od 1 do nieskończoność (minimum 1), itd

Klasy asocjacyjne Klasa asocjacyjna to klasa powiązana za pomocą linii przerywanej z asocjacją. Klasa asocjacyjna opisuje asocjacje pomiędzy klasami, których ta asocjacja dotyczy. Klasa asocjacyjna umożliwia asocjacji posiadanie operacji i atrybutów.

Klasy asocjacyjne W przypadku występowania klasy asocjacyjnej w kodzie programu, klasy biorące udział w asocjacji mogą, ale nie muszą, posiadać bezpośrednie połączenia pomiędzy sobą. Zatem nasza klasa Pracownik nie musi mieć bezpośredniego połączenia z klasą Projekt. Klasa Pracownik może mieć na przykład połączenie z klasą Rola, zaś klasa Rola z klasą Projekt. Dzięki temu przez pośrednictwo klasy asocjacyjnej Rola, klasa Pracownik jest powiązana z klasą Projekt.

Dziedziczenie (generalizacja) Generalizacja odpowiada dziedziczeniu znanemu z języków programowania. Generalizacja to związek pomiędzy bardziej ogólną klasą (rodzicem) a klasą bardziej szczegółową (dzieckiem). Przykłady generalizacji: Kwadrat jest Figurą Fiat jest Samochodem Pies jest Zwierzęciem, itd.

Klasa TestNazwanyPunkt, autor: dr hab. Andrzej Zbrzezny, prof UJD I p u b l i c c l a s s TestNazwanyPunkt { p u b l i c s t a t i c v o id main ( S t r i n g [ ] a r g s ) { NazwanyPunkt a = new NazwanyPunkt ( 3, 5, " p o r t " ) ; a. show ( ) ; Punkt b = new Punkt ( 3, 5 ) ; b. show ( ) ; Punkt c = new NazwanyPunkt ( 3, 6, " tawerna " ) ; c. show ( ) ; a = ( NazwanyPunkt ) c ; a. show ( ) ; } } c l a s s Punkt { Punkt ( i n t x, i n t y ) { t h i s. x = x ; t h i s. y = y ; } p u b l i c void show ( ) { System. out. p r i n t l n ( "<" + x + ", " + y + ">" ) ; }

Klasa TestNazwanyPunkt, autor: dr hab. Andrzej Zbrzezny, prof UJD II } p u b l i c i n t x ( ) { r e t u r n x ; } p u b l i c i n t y ( ) { r e t u r n y ; } p r i v a t e i n t x, y ; c l a s s NazwanyPunkt extends Punkt { NazwanyPunkt ( i n t x, i n t y, S t r i n g name ) { super ( x, y ) ; t h i s. name = name ; } p u b l i c void show ( ) { System. out. p r i n t l n ( name + ":<" + x ( ) + ", " + y ( ) + ">" ) ; } p r i v a t e S t r i n g name ; }

Diagram klas dla klasy TestNazwanyPunkt

Agregacja Agregacje są wykorzystywane w celu przedstawienia elementów, które są złożone z mniejszych elementów. Agregacja, w skrócie, oznacza zawieranie, np. Dom zawiera okno Sygnalizacja świetlna zawiera żarówkę Mieszkanie zawiera telefon Agregację na diagramie UML oznacza się strzałką z końcem zakończonym pustym rombem, skierowany w kierunku klasy rodzicielskiej.

Kompozycja I Kompozycja jest szczególnym przypadkiem agregacji. Kompozycja od agregacji różni się tym, że klasa posiada obiekty (składa się z obiektów), które bez tej klasy nie mogły by istnieć. Jeśli rodzic w kompozycji jest usuwany, zwykle wszystkie jego części są usuwane z nim; jednakże część może zostać indywidualnie usunięte z kompozycji, bez konieczności usuwania całej kompozycji. Kompozycja jest relacją przechodnią, asymetryczną i może być rekurencyjne. Kompozycję na diagramie UML oznacza się strzałką z końcem zakończonym wypełnionym rombem, skierowany w kierunku klasy rodzicielskiej.

Kompozycja II

Różnica między agregacją i kompozycją - przykład Książka adresowa składa się z wielu kontaktów i grup kontaktów. Grupa kontaktów to wirtualne grupowanie kontaktów; każdy kontakt może być zawarty w więcej niż jednej grupie kontaktów. Usunięcie książki adresowej powoduje, że wszystkie kontakty i grupy kontaktowe zostaną usunięte. Usunięcie grupy kontaktów, nie powoduje usunięcia żadnego kontaktu.

Zagnieżdżenia Zagnieżdżenie jest relacją pokazującą, że element źródłowy (np. klasa Element) jest zagnieżdżona w elemencie docelowym (np. klasa Stos).

Zagnieżdżenia I

Zależności Zależności używane są do modelowania szerokiego zakresu związków pomiędzy elementami modelu. Zwykle stosowane są na wczesnym etapie procesu projektowania, gdy wiadomo, że istnieje jakiś związek między dwoma elementami, ale jest zbyt wcześnie, aby dokładnie wiedzieć, jaki jest to związek. W późniejszym etapie procesu projektowania zależności zostaną uszczegółowione lub zastąpione bardziej konkretnym typem związku.

Diagramy klas i związki- przykład Źródło:http://www.uml-diagrams.org/class-diagrams-overview.html

Diagramy obiektów Diagram obiektu może być uważane za szczególny przypadek diagramu klasy. Diagramy obiektu wykorzystują podzbiór elementów diagramu klas, aby podkreślić związek pomiędzy instancjami klas w pewnym momencie czasowym. Diagramy obiektu nie pokazują niczego architektonicznie innego do diagramów klas, ale odzwierciedlają wielość i role.

Diagramy obiektów - różnice w wyglądzie pomiędzy klasą i obiektem Klasy składa się z trzech części: nazwa klasy, atrybuty i operacje. Domyślnie obiekty nie mają takiego przedziału, posiadają tylko nazwę. Obiekty na diagramie prezentuje się za pomocą prostokątów, w których nazwa jest podkreślona. Po niej, po dwukropku, znajduje się nazwa klasy, której obiekt reprezentuje dany prostokąt.

Diagramy obiektów - przykład Źródło:http: //www.uml-diagrams.org/class-diagrams-overview.html#object-diagram