Laboratorium 6 DIAGRAM KLAS (Class Diagram)



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

Diagramy klas. dr Jarosław Skaruz

Podstawy projektowania systemów komputerowych

Rysunek 1: Przykłady graficznej prezentacji klas.

Modelowanie obiektowe

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

Język UML w modelowaniu systemów informatycznych

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

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

Inżynieria Oprogramowania. UML Schematy klas

Podstawy modelowania w języku UML

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

DIAGRAM KLAS. Kamila Vestergaard. materiał dydaktyczny

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

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

PHP 5 język obiektowy

Język UML w modelowaniu systemów informatycznych

TECHNOLOGIE OBIEKTOWE. Wykład 3

Diagramy klas. WYKŁAD Piotr Ciskowski

Podstawy Języka Java

Technologie i usługi internetowe cz. 2

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

Laboratorium z przedmiotu: Inżynieria Oprogramowania INP

Podstawy języka UML UML

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

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 OBIEKTOWE Z UML

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

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

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych

Podstawy Programowania Obiektowego

Singleton. Cel: Przykład: Zastosowanie: Zapewnienie, że klasa ma tylko jedną instancję i dostarczenie globalnego dostępu do niej.

Kurs WWW. Paweł Rajba.

Programowanie 2. Język C++. Wykład 3.

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

Enkapsulacja, dziedziczenie, polimorfizm

C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie C++ - DZIEDZICZENIE.

Klasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 13

Programowanie obiektowe

Java Język programowania

Dokumentacja do API Javy.

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

Programowanie obiektowe

Programowanie obiektowe

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

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

Programowanie obiektowe

Programowanie II. Lista 3. Modyfikatory dostępu plik TKLientBanku.h

Programowanie obiektowe

Programowanie obiektowe

Technologie obiektowe

Wykład 6: Dziedziczenie

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

.NET Klasy, obiekty. ciąg dalszy

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

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

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

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

Podstawy języka UML UML

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

Klasy abstrakcyjne, interfejsy i polimorfizm

KLASY, INTERFEJSY, ITP

UML. zastosowanie i projektowanie w języku UML

Różne właściwości. Różne właściwości. Różne właściwości. C++ - klasy. C++ - klasy C++ - KLASY

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Programowanie 2. Język C++. Wykład 9.

Rozdział 4 KLASY, OBIEKTY, METODY

Język C++ Programowanie obiektowe

Interfejsy i klasy wewnętrzne

Wykład 8: klasy cz. 4

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Do czego służą klasy?

UML - zarys 2007/2008

Oracle PL/SQL. Paweł Rajba.

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 6

Języki i techniki programowania Ćwiczenia 3 Dziedziczenie

Wykład 7: Pakiety i Interfejsy

TEMAT : KLASY DZIEDZICZENIE

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

Programowanie obiektowe

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

Pola i metody statyczne. Klasy zawierające pola i metody statyczne

Podstawy języka UML2 w realnych projektach

Programowanie i projektowanie obiektowe

Paweł Kurzawa, Delfina Kongo

Zaawansowane programowanie w C++ (PCP)

Język C++ wykład VII. uzupełnienie notatek: dr Jerzy Białkowski. Programowanie C/C++ Język C++ wykład VII. dr Jarosław Mederski. Spis.

Dziedziczenie. Ogólna postać dziedziczenia klas:

Pakiety i interfejsy. Tomasz Borzyszkowski

Podstawy programowania III

Programowanie obiektowe i zdarzeniowe

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

Aplikacje w środowisku Java

Projektowanie logiki aplikacji

Wstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this

Programowanie w języku Java WYKŁAD

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

Transkrypt:

Laboratorium 6 DIAGRAM KLAS (Class Diagram) Opisuje strukturę programu (a także zależności między nimi), co znajduje odzwierciedlenie w kodzie. Charakteryzuje zależności pomiędzy składnikami systemu: klasami, interfejsami, pakietami Pokazuje typy obiektów (klasy), nie zaś jedynie ich instancje i chwilowe zależności (diagram obiektów) Wewnątrz każdej klasy zdefiniowane są jej atrybuty (zmienne) i operacje (metody): Wszystkie elementy klasy mogą mieć zdefiniowaną dostępność spośród poniższych: o prywatne [private] (-) o chronione [protected] (#) o pakietowe [package] (~) o publiczne [public] (+ ) Statyczny charakter elementu klasy (static lub scope) oznacza się przez podkreślenie jego nazwy. Typ atrybutu lub wyniku operacji definiuje się po znaku " : ". Parametry operacji definiuje się w nawiasach, po znaku " = " można podać ich wartości domyślne. Operację abstrakcyjną oznacza się kursywą. Interfejs może zawierać identyczne elementy jak klasa. Nawias <<Interface>> odróżnia go na diagramie od klasy.

Klasy i interfejsy mogą wchodzić w skład pakietów. Klasy i interfejsy mogą dziedziczyć po sobie (znane już uogólnienie) Związki między klasami ZALEŻNOŚĆ Oznacza, ich powiązanie (zmiana jednej powoduje zmianę działania drugiej). Najsłabszy związek znaczeniowy między klasami, gdy jedna z nich używa innych klas Stosuje się 4 rodzaje zależności: o <<use>> - aby zaimplementować klasę zależną, wymagana jest inna klasa, o <<call>> - operacje klasy zależnej wywołują operacje innej klasy, o <<create>> - klasa zależna tworzy instancje innej klasy, o <<instantiate>> - obiekt klasy zależnej jest instancją innej klasy.

ASOCJACJA Asocjacja określa trwałe powiązanie między obiektami dwóch klas przez pewien okres ich życia (żaden z obiektów nie jest właścicielem: nie tworzy, nie niszczy, nie zarządza, obiekty są tworzone i niszczone niezależnie od siebie. Asocjacje mogą być jednokierunkowe lub dwukierunkowe. Wskazują one, który z obiektów "wie" o powiązaniu. Obiekty danej klasy mogą być powiązane z innymi obiektami tej samej klasy, wtedy linia asocjacji tworzy pętlę zaczynającą się i kończącą w tej samej klasie. Klasa asocjacyjna - opisuje dodatkowe parametry danej asocjacji. AGREGACJA

Agregacja częściowa - dany obiekt jest właścicielem obiektów innej klasy (ale nie wyłącznym). Istnieją klasy asocjacyjne. Agregacja całkowita (kompozycja, złożenie) - dany obiekt jest wyłącznym właścicielem obiektów innej klasy. Obiekty klasy podrzędnej nie mogą istnieć bez obiektu klasy właściciela. Istnieją klasy asocjacyjne. W relacji kompozycji, części należą tylko do jednej całości, a ich okres życia jest wspólny razem z całością niszczone są również części. Na diagramie, kompozycję oznacza się za pomocą linii zakończonej wypełnionym rombem. Zależności posiadają krotności. Określają one ilość jednoczesnych powiązań pomiędzy obiektami różnych klas. Krotność=1 jest pomijana. Zapis krotności: 3 - konkretna liczba krotności 0..1-0 lub 1 obiektów 0..* - dowolna liczba obiektów 5..* - nie mniej niż zadana liczba obiektów 7..12 - zdefiniowany przedział liczbowy DZIEDZICZENIE Związek opisujący dziedziczenie po klasach. Na diagramie generalizację oznacza się za pomocą niewypełnionego trójkąta symbolizującego strzałkę (skierowaną od klasy pochodnej do klasy bazowej).

PRZYKŁAD Należy zaprojektować diagram klas systemu wspomagającego w Szkole Nauki Jazdy "Easy Rider" rozliczanie kursantów z odbytych kursów. Nauka jazdy dzieli się na część praktyczną i teoretyczną. Część teoretyczną może odbywać od 4 do 10 kursantów na raz, zaś część praktyczna jest indywidualna. Część teoretyczna posiada instruktora. Całą część praktyczną kursant odbywa pod okiem tego samego instruktora w tym samym samochodzie. Każdym samochodem opiekuje się 2 instruktorów. Za każdą część kursu kursant otrzymuje ocenę cząstkową, które razem dają jego ocenę całkowitą. W projekcie diagramu klas należy uwzględnić tylko atrybuty, pominąć operacje. Diagram