Asocjacja,Kompozycja,Agregacja

Slides:



Advertisements
Podobne prezentacje
Wstęp do strumieni danych
Advertisements

C++ wykład 2 ( ) Klasy i obiekty.
Programowanie obiektowe
Związki w UML.
Programowanie obiektowe
Modelowanie klas i obiektów
Wzorce.
Projektowanie systemów informacyjnych
Agregacja Agregacja jest rodzajem asocjacji; zadaniem agregacji jest modelowanie związku całość-część. agregacja jest asocjacją: dla obu jej końców są.
Static, const, volatile.
Dziedziczenie. Po co nam dziedziczenie? class osoba { char * imie, char * imie, * nazwisko; * nazwisko;public: void wypisz_imie(); void wypisz_imie();
Wprowadzenie do języka skryptowego PHP – cz. 2
Sposoby implementacji asocjacji
Kamil Łącki Dominik Strzelichowski
Implementacja ekstensji klasy
Implementacja asocjacji
ODE Zapytania. Pętla for (1) Do obiektów będących instancjami klas możemy uzyskać dostęp za pomocą pętli for Zakres tej pętli to wszystkie obiekty klasy.
Bartosz Walter Prowadzący: Bartosz Walter
Podstawy informatyki Rekurencja i rekurencja Grupa: 1A
C++ wykład 2 ( ) Klasy i obiekty.
Zasady zaliczenia Warunki uzyskania zaliczenia:
Projektowanie systemów informacyjnych
Diagramy klas w języku UML
Projektowanie i programowanie obiektowe II - Wykład IV
Projektowanie i programowanie obiektowe II - Wykład II
Hibernate relacje.
Projektowanie - klasy i związki
Polsko-Japońska Wyższa Szkoła Technik Komputerowych
Nadstruktura języka UML w wersji 2.2
Diagramy ER (Entity-relationship diagrams)
T: Różnice pomiędzy programowaniem strukturalnym a obiektowym
PIO 3_2, Zofia Kruczkiewicz1 Wykład 3 – część druga Iteracyjno-rozwojowy cykl oprogramowania 3.
Tworzenie aplikacji mobilnych
JAVA c.d.. Instrukcji wyboru SWITCH używamy, jeśli chcemy w zależności od wartości pewnego wyrażenia wykonać jeden z kilku fragmentów kodu. Jest to w.
Programowanie obiektowe III rok EiT dr inż. Jerzy Kotowski Wykład IX.
Java – coś na temat Klas Piotr Rosik
Inicjalizacja i sprzątanie
Programowanie obiektowe Wykład 3 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21 Dariusz Wardowski.
Programowanie obiektowe Wykład 7 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20 Dariusz Wardowski.
Związki Agregacje Związki n-arne Ograniczenia.
Programowanie obiektowe 2013/2014
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
Kurs języka C++ – wykład 3 ( )
Modelowanie obiektowe Diagramy klas
Programowanie w języku C++
UML W V ISUAL S TUDIO Mateusz Lamparski. UML D EFINICJA Unified Modeling Language (UML) to graficzny język do obrazowania, specyfikowania, tworzenia i.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Programowanie strukturalne i obiektowe C++
Model obiektowy bazy danych
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Diagram klas Kluczowymi elementami są: klasy (class)
Diagram klas Diagramy klas służą do obrazowania statycznych aspektów projektowanych systemów jako: Projekt struktury logicznej baz danych Projekt składników.
K URS JĘZYKA C++ – WYKŁAD 6 ( ) Polimorfizm.
Unified Modeling Language
Modelowanie model związków encji
Wstęp do systemów informatycznych Diagramy klas. Odbiór świata  Myślenie o dziedzinie problemu powinno być możliwie zbliżone do myślenia o systemie 
Wykład 5 Model obiektowy (3)
Implementacja asocjacji (z atrybutami i bez) przy użyciu: referencji (kolekcji referencji) tablic asocjacyjnych przygotował: Kamil Kowalczyk.
K URS JĘZYKA C++ – WYKŁAD 3 ( ) Przenoszenie Składowe statyczne Funkcje wbudowane Argumenty domyślne.
Programowanie Obiektowe – Wykład 6
Typy wyliczeniowe, kolekcje
(według:
Programowanie Obiektowe – Wykład 2
Projektowanie systemów informacyjnych
J2EE: Bazy danych c.d. Język zapytań EJB QL.
PGO - Projektowanie i implementacja pierwszych klas
PGO Dziedziczenie Michail Mokkas.
PGO Porównywanie obiektów
Zapis prezentacji:

Asocjacja,Kompozycja,Agregacja Autorzy prezentacji: Mirosław Karaś Adam Grzybkowski

Asocjacja Grupa powiązań posiadających wspólną semantykę i strukturę Oznaczenia klas w UML mogą być połączone liniami oznaczającymi asocjacje, czyli wiązanie między obiektami tych klas

Agregacja Agregacja jest szczególnym przypadkiem asocjacji wyrażającym zależność część-całość. Istnienie części jest nie zależne od całości i może być ona skojarzona z wieloma całościami.

Jest to szczególny przypadek asocjacji wyrażający zależność Agregacja Auto marka model silnik Silnik pojemność moc momentObr * * Jest to szczególny przypadek asocjacji wyrażający zależność część-całość

Agregacja – implementacja Java cz. 1 public class Samochod { static Vector samochody = new Vector(); String marka; String model; Silnik silnik; public Samochod(String mar, String mod, Silnik sil){ marka=mar; model=mod; silnik=sil; samochody.add(this); }

Agregacja – implementacja Java cz. 2 public class Silnik { static Vector silniki = new Vector(); int pojemnosc; int moc; int momentObr; Samochod sam; Public Silnik (int poj, int hp, int moment, Samochod sam).{ pojemnosc = poj; moc = hp; momentObr = moment; silniki.add(this); this.sam = sam; }

Kompozycja Kompozycja jest szczególnym rodzajem agregacji. Kompozycja oznacza, że cykl życiowy składowej zawiera się w cyklu życiowym całości, oraz że składowa nie może być współdzielona. Nawigacja odbywa się w kierunku od całości do części. Część jest zależna od całości i nie może bez niej istnieć.

Kompozycja Auto marka model silnik Silnik pojemność moc momentObr 1 * Jest to specyficzny przypadek agregacji, gdzie część nie może być odseparowana od całości

Kompozycja – implementacja Java cz. 1 public class Samochod { static Vector samochody = new Vector(); String marka; String model; Silnik silnik; public Samochod(String mar, String mod, Silnik sil){ marka=mar; model=mod; silnik=sil; samochody.add(this); }

Kompozycja – implementacja Java cz. 2 public class Silnik { static Vector silniki = new Vector(); int pojemnosc; int moc; int momentObr; Samochod samochod; Public Silnik (int poj, int hp, int moment, Samochod sam){ pojemnosc = poj; moc = hp; momentObr = moment; samochod = sam; silniki.add(this); }

) Asocjacja kwalifikowana (przy pomocy tablic asocjacyjnych) Kwalifikator jest atrybutem asocjacji (lub zestawem atrybutów), którego wartości służą do podziału zbioru obiektów definiowanych przez klasę znajdującą się na jednym z końców tej asocjacji innymi słowy mając na jednym końcu obiekt asocjacji odpowiada on na pytanie jak znaleźć obiekt z drugiego końca. Tablice asocjacyjne są to tablice w których zamiast indeksów liczbowych używa się identyfikatorów znakowych(kluczy)

Asocjacja kwalifikowana (przy pomocy tablic asocjacyjnych) Bank Osoba nr konta 0..1 1..* 0..1 Bank nr konta kwalifikator asocjacji 1 Osoba Bank * * Bank Osoba nr konta * Bank/Osoba 0..1 nr konta Osoba

Asocjacja kwalifikowana – implementacja Java z użyciem kolekcji HashMap public class Bank{ HashMap konta = new HashMap(); String nazwa; public Bank(String n){ nazwa = n; } public void zalozKonto(int numerKonta, Osoba o){ if(konta.containsKey(numerKonta)) System.out.println(“Juz jest taki numer konta”); else { konta.put(numerKonta, o); Osoba.bankiOsoby.add(this); public void usunKonto(int numerKonta, Osoba o){ if(konta.containsKey(numerKonta)){ konta.remove(numerKonta); Osoba.bankiOsoby.removeElement(this); return; public class Osoba{ Vector bankiOsoby = new Vector(); String imie; String nazwisko; public Osoba(String i, String n){ imie = i; nazwisko = n;

Asocjacja n-arna Asocjacja n-arna to asocjacja, której wystąpienia łączą n obiektów, będących instancjami co najwyżej n klas. Dana klasa może pojawić się na więcej niż jednej pozycji w asocjacji.

Asocjacja n-arna K1 K3 K1 K3 K2 K2 asocjacja asocjacja 3-arna 4-arna nazwa asocjacji K3 K2 K2

Asocjacja n-arna Profesor imie nazwisko Student imie nazwisko nrIndeksu 1..* 1 1 Cwiczenie nazwaPrzedmiotu data

Asocjacja n-arna – implementacja Java cz. 1 public class Profesor{ static Vector profesorzy = new Vector(); String imie; String nazwisko; public Vector prowadzoneCwiczenia; public Profesor(String im, String nazw){ imie = im; nazwisko=nazw; prowadzoneCwiczenia = new Vector(); profesorzy.add(this); } public class Student{ static Vector studenci = new Vector(); int numerIndeksu; public Vector odbywaneCwiczenia; public Student(String im, String nazw, int numer){ nazwisko = nazw; numerIndeksu = numer; odbywaneCwiczenia = new Vector(); studenci.add(this);

Asocjacja n-arna – implementacja Java cz. 2 public class Cwiczenie{ String nazwaPrzedmiotu; String data; public Profesor profesor; public Vector studenciNaCwiczeniu; public Cwiczenie(Profesor prof, Vector stud, String nazwa, String dat){ nazwaPrzedmiotu = nazwa; data = dat; prof.prowadzoneCwiczenia.addElement(this); Iterator it = stud.iterator(); Student s; while(it.hasNext()){ s=(Student) it.next(); s.odbywaneCwiczenia.addElement(this); }