MODELOWANIE OBIEKTOWE Z UML



Podobne dokumenty
Laboratorium 6 DIAGRAM KLAS (Class Diagram)

Modelowanie obiektowe

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

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

Podstawy projektowania systemów komputerowych

Technologie obiektowe

Diagramy klas. dr Jarosław Skaruz

Podstawy modelowania programów Kod przedmiotu

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

Rysunek 1: Przykłady graficznej prezentacji klas.

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

Podstawy programowania III WYKŁAD 4

DIAGRAM KLAS. Kamila Vestergaard. materiał dydaktyczny

UML w Visual Studio. Michał Ciećwierz

MODELOWANIE OBIEKTOWE

Diagramy klas. WYKŁAD Piotr Ciskowski

Programowanie obiektowe

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

MAS dr. Inż. Mariusz Trzaska

TECHNOLOGIE OBIEKTOWE. Wykład 3

Programowanie obiektowe

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

Kurs WWW. Paweł Rajba.

ZARZĄDZANIU. Wykład VI. dr Jan Kazimirski

Inżynieria Oprogramowania. UML Schematy klas

MAS dr. Inż. Mariusz Trzaska

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Podstawy Programowania Obiektowego

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.

Technologie i usługi internetowe cz. 2

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

Enkapsulacja, dziedziczenie, polimorfizm

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

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

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

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

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

Podstawy inżynierii oprogramowania

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

Materiały do zajęć VII

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

UML. zastosowanie i projektowanie w języku UML

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

Podstawy języka UML UML

Programowanie obiektowe - 1.

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

Java Język programowania

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

Paweł Kurzawa, Delfina Kongo

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

Wykład 8: klasy cz. 4

Podstawy modelowania w języku UML

Definiowanie własnych klas

Modelowanie i Programowanie Obiektowe

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

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

Świat rzeczywisty i jego model

Język C++ Programowanie obiektowe

Analiza i projektowanie obiektowe

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

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

Modelowanie danych, projektowanie systemu informatycznego

Język UML w modelowaniu systemów informatycznych

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 12

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

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski

Michał Adamczyk. Język UML

Programowanie obiektowe

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

Zaawansowane programowanie w języku C++ Klasy w C++

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

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

Unified Modeling Language

.NET Klasy, obiekty. ciąg dalszy

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.

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

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

Język UML w modelowaniu systemów informatycznych

Wstęp do programowania obiektowego. Wykład 1 Algorytmy i paradygmaty Podstawowe pojęcia PO

Podstawy języka UML2 w realnych projektach

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

Zaawansowane programowanie w C++ (PCP)

Podstawy Języka Java

DIAGRAMY IMPLEMENTACYJNE

Programowanie obiektowe

Język programowania. Andrzej Bobyk

Wykład V. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Wstęp do programowania obiektowego. Wykład 2

Definicje klas i obiektów. Tomasz Borzyszkowski

Podstawy języka UML UML

Spis treúci. 1. Wprowadzenie... 13

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

INŻYNIERIA OPROGRAMOWANIA. laboratorium

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

Zaawansowane programowanie w języku C++ Programowanie obiektowe

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

Transkrypt:

MODELOWANIE OBIEKTOWE Z UML Maciej Patan

Paradygmat obiektowy system zbiór unikatowych obiektów( społeczność obiektów ), obiekt w czasie swego cyklu życia : jest nośnikiem informacji(atrybuty=dane), może wykonać określone czynności(metody=przetwarzanie), może komunikować się z innymi obiektami, odzwierciedlenie struktury obiektów i relacji zachodzących w świecie realnym. 1

Podstawowe koncepcje obiektowości abstrakcja odfiltrowanie atrybutów i operacji nieistotnych, enkapsulacja ukrycie nadmiernego poziomu szczegółowości, dziedziczenie generalizacja relacja hierarchiczna, oszczędność nakładów modelowania, polimorfizm wielość form operacji dla dziedziczonych klas wirtualny mechanizm wywoływania funkcji, naturalny system wyrażania czynności, zmniejszenie nakładów programowania, 2

komunikacja, synchronizacja zdarzeń, wymiana danych, współpraca między obiektami, asocjacja(powiązanie) relacja wiążąca klasy(obiekty), agregacja powiązanie wielu komponentów w jedną całość, agregacja całkowita komponenty składowe istnieją tylko jako części całości. Modelowanie strukturalne Model strukturalny: Opis systemu, podkreślający strukturę obiektów, włączając w to ich przynależność do klas, wzajemne powiązania, atrybuty i operacje. 3

Diagramy strukturalne Pokazują statyczną strukturę modelu: jednostki istniejące(np. klasy, interfejsy, pakiety, komponenty, węzły), wewnętrzną strukturę jednostek, wzajemne związki między jednostkami, Nie pokazują informacji o dynamicznym stanie systemu Typy diagramów Statyczne diagramy strukturalne, diagramy klas(widok przynależności klasowych), diagramy obiektów(widok systemu w danej chwili), Diagramy implementacyjne, diagramy komponentów, diagramy wdrożenia, 4

Podstawowe elementy statycznych diagramów strukturalnych Konstrukt Krótki opis klasa opis zbioru obiektów, które dzielą te same atrybuty, operacje, metody, związki i semantykę interfejs nazwany zbiór operacji charakteryzujący zachowanie się elementu Składnia <<Interface>> pakiet element grupujący inne elementy ograniczenie warunek semantyczny lub restrykcja {ograniczenie} 5

Podstawowe relacje statycznych diagramów strukturalnych Konstrukt Krótki opis Składnia asocjacja związek pomiędzy klasami wymagający połączenia się ich instancji(obiektów) agregacja specjalny przypadek asocjacji odpowiedzialny za relację zawierania(posiadania) generalizacja systematyczna relacja między elementem szczegółowym a jego ogólniejszą postacią zależność związek, w którym zmiana w jednym elemencie modelu(niezależnym) pociąga za sobą zmiany w drugim elemencie(zależnym) realizacja zależność pomiędzy specyfikacją elementu i jego implementacją 6

Wizualizacja klas OknoModalne OknoModalne Nazwa klasy bez spacji, wszystkie wyrazy du ¹ liter¹ OknoModalne +rozmiar: Obszar=(200,100) #widzialne: Boolean=false +domyslny-rozmiar: Prostokat -xptr: Xokno* podkreœlenie - sk³adnik statyczny rozmiar: Obszar widzialne: Boolean wyswietl() ukryj() atrybuty operacje +tworz() +wyswietl() +ukryj() -dopasujxokno(xwin:xokno*) 7

Składnia atrybutu dostęp nazwa[liczność porządek]: typ = wartość początkowa dostęp(+ public, private,# protected), liczność(opcjonalna) zakres wartości, które przyjmuje atrybut w postaci gr_dolna..gr_gorna(* oznacza zakres nieograniczony), porządek(opcjonalny) (ordered, unordered), typ(opcjonalny) Boolean, Integer, Real, String lub inna istniejąca klasa, wartość początkowa(opcjonalna) wartość inicjalizacyjna atrybutu. Przykład: +naturalna[0..* ordered]: Integer = 1 naturalna jest publicznym atrybutem przyjmującym nieograniczone i uporządkowane wartości całkowite w zakresie od 0 do, a jego wartość początkowa jest równa 1. 8

Składnia operacji dostęp nazwa oper(lista parametrów): typ zwracany dostęp(+ public, private,# protected), lista parametrów(opcjonalna) każdy parametr ma postać rodzaj nazwa: typ = wartość domyślna gdzierodzaj {in,out,inout},typiwartośćdomyślnajakdlaatrybutu, typ zwracany(opcjonalny) jw. Przykład:-dodaj(inout A: Macierz, inout B: Macierz): Macierz dodaj jest prywatną operacją przyjmującą jako argumenty dwa atrybuty wejściowo-wyjściowe typu Macierz bez wartości domyślnych, a zwraca także element typu Macierz. 9

Wizualizacja klas(2) Dodatkowe dane data: Data Rezerwacja rezerwuj() kasuj() zmien(nowadata: Data) Obowi¹zki przydziel do wolnych pokojów usuwaj nieaktualne rezerwacje Wyj¹tki z³a karta kredytowa {1.10 <data <31.12} ograniczenie Ciała funkcji Stra Po arna alarm() remiza AlarmPPo zg³oszenie: Boolean=false raport() {if zg³oszenie then remiza.alarm(self)} 10

Wizualizacja obiektów obiekt niesprecyzowany trójk¹t:wielok¹t œrodek = (0,0) krawêdzie = ((0,0),(4,0),(4,3)) kolorbrzegu = czarny kolorwype³nienia = bia³y trójk¹t :Wielok¹t trójk¹t:wielok¹t obiekt anonimowy Wartości atrybutów dostęp nazwa[indeks]: typ = wartość 11

Asocjacje Asocjacja ogólna relacja zachodząca pomiędzy klasami definiująca typ powiązania. asocjacjebinarne wiążązesobądwieklasy, Dru yna GraW Zawodnik klasy asocjacji klasa reprezentująca atrybuty i operacje charakterystyczne dla asocjacji, Dru yna Kontrakt Zawodnik Mened er NegocjowanyPrzez Kontrakt Klasa asocjacji mo e byæ powi¹zana z inn¹ klas¹ 12

asocjacjen-arne wiążązesobąn-klas, Sezon Statystyka gole mecze wygrane remisy przegrane Dru yna Zawodnik ograniczenia asocjacji wymagania nałożone na relacje Konto Osoba {ordered} {xor} Kasa Obs³uguje Klient Firma 13

Zakończenia asocjacji role opcjonalne nazwy zadań lub kontekstu występowania klas w ramach relacji, specyfikacje liczności opcjonalne zakresy liczby obiektów z klasy mogących kojarzyć się z obiektami innej klasy w relacji, literałowe wartości całkowite, przedziaływartościcałkowitych( =nieograniczonyzakres),np.0..5,1.. ( =0.. ), U ytkownik Samochodu Pasa er 0..4 Firma * Zatrudnienie 1..* Pracodawca Pracownik Osoba Kierowca 1 Wiezie 14

strzałki nawigacyjne opcjonalne, wskazują czy do danej klasy mogą odwoływać się inne klasy w rozważanej relacji, symbole agregacji i kompozycji, 1 Zawiera Wielok¹t Pracodawca 1 3..* {ordered} 1 Punkt ObiektGraficzny kolor textura rozdzielczoœæ 15

Kompozycja Window scrollbar [2]:Slider title:header body: Panel Window scrollbar: Slider 2 Agregacja dotyczy tylko asocjacji binarnych Window title: Header 1 scrollbar 2 title 1 1 body body: Panel 1 Slider Header Panel 16

Generalizacje Związki generalizacji dotyczą uogólnienia związków dziedziczenia i mogą istnieć dla klas nierozróżnialnych oraz typów, klas implementacji i interfejsów. Zwierzê P³az Ssak Gad Ryba Cz³owiek 17

Generalizacja wirtualna Pojazd {pokrycie} Auto ódka Amfibia 18

Zależności Class A <<friend>> Class B <<friend>> Class D <<instantiate>> operacjax() <<call>> Class C <<refine>> Klasa C jest kombinacj¹ dwóch klas Class E Class F 19

Interfejsy i realizacje Interfejs jest zbiorem operacji, które określają pewien aspekt zachowania klasy i które są udostępniane innym klasom. Jest to klasa, która może mieć operacje, lecz nie może mieć atrybutów, asocjacji ani metod. Realizacja związek pomiędzy specyfikacją klasy a jej implementacją(np. między klasą i interfejsem) String porównaj(string):boolean szyfruj():integer) Szyfrowanie * sk³adniki Porównywanie Tablica kodowa <<interface>> Porównywanie porównaj(string):boolean szyfruj():integer) <<use>> 20

Powiązania klubgolfowy:klub prezes skarbnik VIP cz³onek cz³onek cz³onek VIP Jan:Osoba Ewa:Osoba Zenon:Osoba Pakiety i podsystemy Pakiet jest elementem grupującym i organizującym, w którym umieszczane są inne elementy. Musi mieć unikatową nazwę. Podsystem jest elementem grupującym i organizującym elementy, które razem świadczą usługi w taki sposób, że inne elementy mają dostęp wyłącznie do tych usług. 21