Kamil Łącki Dominik Strzelichowski

Slides:



Advertisements
Podobne prezentacje
C++ wykład 2 ( ) Klasy i obiekty.
Advertisements

C++ wykład 4 ( ) Przeciążanie operatorów.
Programowanie obiektowe
Związki w UML.
Programowanie obiektowe
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.
Projektowanie systemów informacyjnych
Sposoby implementacji asocjacji
Implementacja ekstensji klasy
Tomasz Pieciukiewicz Rafał Hryniów
Implementacja asocjacji
Programowanie obiektowe w Javie
Projektowanie systemów informacyjnych
Co UML może zrobić dla Twojego projektu?
Tablice.
C++ wykład 2 ( ) Klasy i obiekty.
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
Tablice tablica jest sekwencją elementów tego samego typu (prostego lub obiektowego) w Javie tablice są obiektami, a zmienne tablicowe przechowują referencję
Hibernate relacje.
Model dziedziny. Świat rzeczywisty i jego model Świat rzeczywisty (dziedzina problemu) Świat obiektów (model dziedziny) Samochód Osoba Dom Modelowanie.
Wykład 4 Analiza i projektowanie obiektowe
Wykład 3 Analiza i projektowanie strukturalne
Techniki i języki programowania
Pakiety w Javie Łukasz Smyczyński (132834). Czym są pakiety? Klasy w Javie są grupowane w pewne zbiory zwane pakietami. Pakiety są więc pewnym podzbiorem.
Podstawy programowania
Java 3 MPDI Programowanie obiektowe W7. import java.io.*; public class X { // kontrukcja throws – określenie jakie wyjątki może dana metoda // sygnalizować
Źródła: podręcznikopracował: A. Jędryczkowski.
OMT - Model obiektów, cz.3.
OMT - Model obiektów, cz.1.
Programowanie obiektowe – zastosowanie języka Java SE
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.
Andrzej Repak Nr albumu
Java – coś na temat Klas Piotr Rosik
Inicjalizacja i sprzątanie
Związki Agregacje Związki n-arne Ograniczenia.
Podstawy informatyki 2013/2014
Programowanie obiektowe 2013/2014
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
Modelowanie obiektowe Diagramy klas
UML W V ISUAL S TUDIO Mateusz Lamparski. UML D EFINICJA Unified Modeling Language (UML) to graficzny język do obrazowania, specyfikowania, tworzenia i.
Interakcja człowiek – komputer Podstawy metod obiektowych mgr inż. Marek Malinowski Zakład Matematyki i Fizyki Wydz. BMiP PW Płock.
Michał Krawczykowski kl. IIIB
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)
Kurs języka C++ – wykład 4 ( )
Diagram klas Diagramy klas służą do obrazowania statycznych aspektów projektowanych systemów jako: Projekt struktury logicznej baz danych Projekt składników.
Paweł Starzyk Obiektowe metody projektowania systemów
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 
Kolekcje (3) Zbiory. Porównywanie i porządkowanie elementów kolekcji. (c) Krzysztof Barteczko 2014.
Wykład 5 Model obiektowy (3)
Asocjacja,Kompozycja,Agregacja
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.
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
Programowanie Obiektowe – Wykład 6
Programowanie Obiektowe – Wykład 2
Programowanie obiektowe – zastosowanie języka Java SE
Projektowanie systemów informacyjnych
PGO Dziedziczenie Michail Mokkas.
PGO Porównywanie obiektów
Zapis prezentacji:

Kamil Łącki Dominik Strzelichowski Implementacja asocjacji (z atrybutami i bez) przy użyciu: - Referencji (kolekcji referencji) - Tablic asocjacyjnych Kamil Łącki Dominik Strzelichowski MAS Tomasz Pieciukiewicz

Definicja asocjacji Asocjajce modelują różnego rodzaju związki występujące pomiędzy bytami w dziedzinie problemowej (związki te nie zawsze wynikają wprost z wymagań użytkownika) .Często asocjację można zidentyfikować dopiero w trakcie budowy modelu dynamicznego .

Identyfikacja asocjacji Przy identyfikowaniu asocjacji zwracamy uwagę na następujące aspekty modelu: Ścieżki dostępu Liczności asocjacji Role dla asocjacji rekurencyjnych Atrybuty związane z asocjacjami Klasy docelowe Asocjacje które mogą być : agregacjami,kompozycjami lub asocjacjami kwalifikowanymi

Powiązania i rodzaje asocjacji Fizyczny lub pojęciowy związek między obiektami odpowiadający związkowi istniejącemu między bytami, w analizowanej rzeczywistości, modelowanymi przez te obiekty. Powiązanie jest wystąpieniem asocjacji Powiązanie :Osoba Kasia :Firma Krawiecka pracuje_w Jasio Szewska Ewa Obiekty i powiązania Osoba imię Firma rodzaj pracuje_w Klasy i asocjacja Asocjacje mogą łączyć więcej niż dwie klasy (tzw. asocjacje n-arne), ale nie jest to zalecane.

Powiązania i rodzaje asocjacji c.d Asocjacja binarna Asocjacja n-arna Asocjacja kwalifikowana

Oznaczanie asocjacji Nazwy asocjacji, takie jak np. pracuje_dla, wyznaczają znaczenie tej asocjacji w modelu pojęciowym opisującym dziedzinę problemowej (czy też pewien fragment dziedziny problemowej). Czarny trójkącik określa kierunek (czytania) wyznaczony przez nazwę asocjacji. Na przykład, na diagramie poniżej określa, że to osoba pracuje dla firmy, a nie firma pracuje dla osoby. pracuje_dla Firma Osoba 1 1..*

Liczność asocjacji Asocjacje mogą być wyposażone w oznaczenia liczności. Liczność oznacza, ile obiektów innej klasy może być powiązane z jednym obiektem danej klasy; zwykle określa się to poprzez parę liczb (znaków), oznaczającą minimalną i maksymalną liczbę takich obiektów. Liczność jest oznaczana na obu końcach asocjacji.

Liczność asocjacji c.d Przkłady oznaczenia dla liczności asocjacji: UML znaczenie 1 1..* 2..* 3-5 2,4,18 0..1 0..* * 1 1, 2, 3, ... 2, 3, 4, ... 3, 4, 5 2, 4, 18 1, ? 0, 1 0, 1, 2, ...

Liczności c.d Przykłady diagramów Ad1 Ad2 Ad3 Ad4 Państwo Stolica * Firma Pracownik 0..* 0..1 Osoba Adres pracuje_dla Firma Osoba 1 1..*

Prosta asocjacja w Javie bez atrybutów i tablic Jeden-do-jednego public class Miasto { String nazwa; public Miasto(String nazwa) { this.nazwa = nazwa; } public class Panstwo { Miasto stolica; public Polska(String nazwaStolicy) { stolica = new Miasto(nazwaStolicy);

Asocjacje złożone Asocjacje Referencyjne z kolekcjami Tablice asocjacji

Kolekcje Kolekcja jest uporządkowanym ciągiem elementów tego samego typu. Elementami kolekcji mogą być wartości typów obiektowych i na odwrót, kolekcje mogą być atrybutami wartości typów obiektowych.

Referencje i Kolekcje referencji Jeden-do-wielu public class Osoba { String ImieINazwisko; public Osoba(String daneOsobowe) { this.ImieINazwisko = daneOsobowe; } public class Firma { public static Vector kolekcjaPracownikow = new Vector(); void dodajPracownikow(Osoba pracownik){ kolekcjaPracownikow.add(pracownik);

Referencje i Kolekcje referencji Wiele-do-wielu public class Osoba { public static Vector kolekcjaFirm = new Vector(); String ImieINazwisko; public Osoba(String daneOsobowe) { this.ImieINazwisko = daneOsobowe; } void dodajFirme(Firma firma){ kolekcjaFirm.add(firma); public class Firma { public static Vector kolekcjaPracownikow = new Vector(); void dodajPracownikow(Osoba pracownik){ kolekcjaPracownikow.add(pracownik);

Tablice Asocjacyjne Zasadniczą różnicą między tablicą, a tablicą asocjacyjną (zwaną też czasem haszem ;) - hash table) jest sposób odwoływania się do poszczególnych ich elementów - w zwykłej tablicy każdemu elementowi odpowiada indeks liczbowy , podczas gdy w wypadku tablic asocjacyjnych każdemu elementowi jest przyporządkowany identyfikator znakowy (klucz)

Tablice Asocjacyjne Jeden-do-wielu public static void main(String[]args){ Firma firma = new Firma(nazwaFirmy); Osoba pracownik1 = new Osoba(); Osoba pracownik2 = new Osoba(); public static Hashtable firmaPracownicy = new Hashtable(); public static Vector kolekcjaPracownikow = new Vector(); kolekcjaPracownikow.add(pracownik1); kolekcjaPracownikow.add(pracownik2); firmaPracownicy.put(firma.nazwaFirmy,kolekcjaPracownikow); }

Tablice Asocjacyjne Wiele-do-wielu public static void main(String[]args){ Oddzial oddzial 1= new Oddzial(nazwa Oddzialu); Oddzial oddzial 2 = new Oddzial(nazwa Oddzialu); Osoba pracownik1 = new Osoba(nazwaOsoby); Osoba pracownik2 = new Osoba(nazwaOsoby); public static Hashtable oddzialPracownik = new Hashtable(); public static Hashtable pracownikOddzial= new Hashtable(); public static Vector pracownikVec = new Vector(); public static Vector oddzialVec = new Vector(); pracownikVec.add(pracownik1); pracownikVec.add(pracownik2); oddzialVec.add(oddzial1); oddzialVec.add(oddzial2); oddzialPracownik.put(oddzia1.nazwaOdzialu, pracownikVec); pracownikOddzial.put(pracownik2.nazwaOsoby, OddzialVec); }

Podsumowanie Asocjacje Jeden-do-jednego Asocjacje Jeden-do-wielu i wiele-do-wielu Referencje Bardziej czytelne Prostsze Tablice Sporo dodatkowego kodu Bardziej skomplikowane