Modelowanie obiektowe

Podobne dokumenty
UML - zarys 2007/2008

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

Podstawy projektowania systemów komputerowych

Diagramy klas. dr Jarosław Skaruz

Rysunek 1: Przykłady graficznej prezentacji klas.

Laboratorium 6 DIAGRAM KLAS (Class Diagram)

Diagramy klas. WYKŁAD Piotr Ciskowski

DIAGRAM KLAS. Kamila Vestergaard. materiał dydaktyczny

TECHNOLOGIE OBIEKTOWE. Wykład 3

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

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

UML w Visual Studio. Michał Ciećwierz

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

Język UML w modelowaniu systemów informatycznych

UML. zastosowanie i projektowanie w języku UML

Modelowanie obiektowe TI 2009/2010

Modelowanie obiektowe ZPO 2009/2010

Podstawy programowania III WYKŁAD 4

Podstawy modelowania w języku UML

Inżynieria Oprogramowania. UML Schematy klas

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

Programowanie obiektowe

Programowanie obiektowe

Technologie obiektowe

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

Programowanie obiektowe

Klasy abstrakcyjne, interfejsy i polimorfizm

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

Technologie i usługi internetowe cz. 2

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

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

MODELOWANIE OBIEKTOWE Z UML

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

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Podstawy języka UML UML

Programowanie obiektowe

MODELOWANIE OBIEKTOWE

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

Laboratorium 8 Diagramy aktywności

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Programowanie obiektowe

Wykład 8: klasy cz. 4

Aplikacje w środowisku Java

Język UML w modelowaniu systemów informatycznych

Programowanie obiektowe

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

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

Laboratorium z przedmiotu: Inżynieria Oprogramowania INP

Enkapsulacja, dziedziczenie, polimorfizm

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

Podstawy Programowania Obiektowego

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 6

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych

Świat rzeczywisty i jego model

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

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

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

Zaawansowane programowanie w języku C++ Programowanie obiektowe

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

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

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

Wstęp do programowania obiektowego. Wykład 2

Programowanie obiektowe

Kurs WWW. Paweł Rajba.

Zaawansowane programowanie w C++ (PCP)

Programowanie obiektowe

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

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

Programowanie obiektowe

Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1

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

Java: interfejsy i klasy wewnętrzne

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

PHP 5 język obiektowy

Klasy i obiekty cz II

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

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

Diagramy czynności Na podstawie UML 2.0 Tutorial

Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania

Definiowanie własnych klas

JAVA W SUPER EXPRESOWEJ PIGUŁCE

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

Programowanie obiektowe

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 7

Aplikacje w środowisku Java

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

Instrukcja 3 Laboratorium z Podstaw Inżynierii Oprogramowania

Programowanie obiektowe

Dokumentacja do API Javy.

Programowanie obiektowe

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

Podstawy inżynierii oprogramowania

Builder (budowniczy) Cel: Przykład:

Język UML w modelowaniu systemów informatycznych

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

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04

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

Podstawy Języka Java

Transkrypt:

Modelowanie obiektowe ZPO 2018/2019 Dr inż. W. Cichalewski Materiały wykonane przez W. Tylman

Diagramy klas

Diagramy klas Zawiera informacje o statycznych związkach między elementami (klasami) Są ściśle powiązane z technikami programowania zorientowanego obiektowo Są jednymi z istotniejszych diagramów w UML

Symbol klasy Symbolem klasy jest prostokąt, zwykle podzielony poziomymi liniami na trzy sekcje: nazwy atrybutów operacji W razie potrzeby może zostać uzupełniony dodatkowymi sekcjami (np. wyjątków)

Symbol klasy Przy złożonych klasach wyświetlenie wszystkich atrybutów i operacji może zabrać zbyt dużo miejsca Możliwe rozwiązania to: Wyświetlenie tylko nazwy klasy, bez sekcji atrybutów i operacji Wyświetlenie tylko nazwy klasy, z pustymi sekcjami atrybutów i operacji Wyświetlenie tylko części atrybutów lub operacji, zaznaczając kontynuację poprzez wielokropek Ukrycie niektórych atrybutów lub operacji

Kontrola dostępu Można określić modyfikatory dostępu dla składowych Są one ściśle powiązane z koncepcjami programowania zorientowanego obiektowo Możliwe rodzaje dostępu: + publiczny - prywatny # chroniony ~ pakietu

Składniki statyczne Składniki można zadeklarować jako statyczne działające na rzecz klasy, nie obiektu Koncepcja identyczna jak w językach zorientowanych obiektowo Reprezentacją graficzną jest podkreślenie

Specyfikacja składników Atrybuty mogą mieć określone: Typ. Typ jest umieszczany po nazwie, oddzielony dwukropkiem Liczebność Wartość początkową Operacje mogą mieć określone: Typ zwracany. Typ jest umieszczany po nazwie, oddzielony dwukropkiem Argumenty. Każdy argument może być określony tak jak atrybut, z dodatkowym oznaczeniem kierunku przekazywania wartości (domyślnie in )

Specyfikacja składników

Związki Wszystkie 4 typy związków są używane Głównym typem jest asocjacja Może mieć następujące cechy (pogrubiono nowe w stosunku do diagramów przypadków użycia): nazwa role kierunek nawigacji liczebność agregacja

Nazwa Można nazwać asocjację aby doprecyzować jej znaczenie Nazwa może zawierać kierunek

Role Inny sposób doprecyzowania asocjacji Rola klasy jest określona przez tekst umieszczony w pobliżu tej klasy Można określić jednocześnie nazwę i role

Kierunek nawigacji Domyślnie asocjacja jest dwukierunkowa Aby była jednokierunkowa, dodaje się strzałkę Oznacza to że komunikacja jest jednokierunkowa (inaczej niż diagramy przypadków użycia)

Liczebność Znaczenie identyczne jak w diagramach przypadków użycia

Agregacja Określa związek między całością i częścią Są dwa typy: całkowita (kompozycja, silna agregacja) częściowa (agregacja, słaba agregacja) Jest obrazowana przez romb umieszczony przy symbolu określającym całość Silna agregacja jest zobrazowana przez pełen romb, słaba przez pusty

Silna i słaba agregacja W przypadku silnej agregacji części składowe nie mogą istnieć jeśli symbol określający całość jest usunięty. analogia do zawierania obiektu przez inny obiekt. W przypadku słabej agregacji jest to możliwe. Jeden obiekt może być też zawierany przez wiele innych. analogia do zawierania wskaźnika (bądź referencji) do innego obiektu.

Silna i słaba agregacja

Klasa asocjacji Kolejny sposób dokładnego określenia asocjacji Jest zobrazowana przez klasę umieszczoną w pobliżu asocjacji i połączoną z nią przerywaną linią

Klasa asocjacji

Asocjacja wielokrotna Dwie klasy mogą być w odmienny sposób związane ze sobą w różnych kontekstach W efekcie może być więcej niż jedna asocjacja między klasami W takim wypadku każda powinna być nazwana

Asocjacja wielokrotna

Asocjacja zwrotna Asocjacja może być zwrotna

Asocjacja N-arna Asocjacja może określać związek między więcej niż dwiema klasami Taka asocjacja może zawierać klasę asocjacji Nie należy jej mylić z asocjacją wielokrotną

Asocjacja N-arna

Podsumowanie asocjacji Asocjacja związek między dwiema klasami (student nauczyciel, sprzedający kupujący) Słaba agregacja obiekty jednej klasy należą do obiektów drugiej, ale fragmenty mogą istnieć bez całości (zamówienie produkty, biblioteka książki) Silna agregacja (kompozycja) j. w., ale część nie może istnieć bez całości (wielokąt jego wierzchołki, zamówienie adres dostarczenia)

Zależność Oznacza że jedna klasa (klient) w jakiś sposób używa innej klasy (dostawca) Jest obrazowana linią przerywaną zakończoną strzałką wskazującą na dostawcę

Uogólnienie Ściśle powiązane z koncepcją dziedziczenia w programowaniu zorientowanym obiektowo. Można stosować m. in klasy abstrakcyjne nie mają one instancji (obiektów) są wyróżnione nazwą pisaną kursywą

Uogólnienie

Realizacja Związek między interfejsem i jego implementacją Obrazowana linią przerywaną z pustą strzałką wskazującą od klasy do interfejsu Interfejs może być zobrazowany jako prostokąt z operacjami (podobnie do klasy) bądź jako kółko

Realizacja

Realizacja

Przykładowe diagramy

Przykładowe diagramy

Przykładowe diagramy

Przykładowe diagramy

Przykładowe diagramy

Przykładowe diagramy

Przykładowe diagramy

Przykładowe diagramy

Przykładowe diagramy

Generacja kodu public class Client { private products.int smallorderlimit = 150; private String login; private String password; public clients.creditcard creditcard; public clients.email email; public java.util.collection address = new java.util.treeset(); public java.util.collection client = new java.util.treeset(); public ordering.void paymentreceived() { return null; } public ordering.void emailreceived() { return null; } public ordering.void deliveryreturned() { return null; } public boolean checkpassword(string password) { return false; } /*...*/ public java.util.collection order = new java.util.arraylist(); clients.account account; public clients.clientcontroller controller; }

Przykładowe diagramy

Ćwiczenie 2