Obiektowe bazy danych
Wprowadzenie
• Era stosowania ogólnego, jednorodnego podejścia przy tworzeniu systemów przetwarzania danych dobiega końca.
• Jest wiele różnych sposobów specyfikowania i programowania systemów. Różne zadania mogą mieć różne charakterystyki, wymagające różnych podejść. Wyzwanie polega na wybieraniu i łączeniu tych podejść.
• Tradycyjne podejście JEŚLI … TO, DOPÓKI WYKONUJ jest popularne w wielu sytuacjach (nie jest jednak ani jedyne, ani najlepsze).
• Przykładowo: system stawiania diagnoz medycznych najlepiej daje się
zaprogramować za pomocą reguł i mechanizmu wnioskującego. W innej sytuacji posłużenie się siecią neuronową lub algorytmem genetycznym może wydajnie
doprowadzić do pożądanego wyniku. Kiedy indziej logika predykatów lub wyrażenie funkcyjne będzie najlepszą metodą określenia programu.
• Zezwolenie twórcy na wybór tych podejść, które najlepiej rozwiązują dany problem jest właściwe.
• We współczesnej informatyce pojęcie obiektowość ma wiele różnych znaczeń.
Termin ten był po raz pierwszy zastosowany w odniesieniu do grupy języków programowania wywodzących się z języka będącego odkryciem pochodzenia
skandynawskiego, znanego jako Simula. Język Simula był pierwszym językiem, który wprowadził pojęcie abstrakcyjnego typu danych jako zintegrowanego pakietu struktur danych i procedur.
Zasady podejścia obiektowego
• Obiekty
• Hermetyzacja
• Klasy
• Dziedziczenie
• Polimorfizm
• Przekazywanie komunikatów
Zasady podejścia obiektowego
• Obiekty – są to podstawowe elementy, z których składa się modelowany świat rzeczywisty. Każdy obiekt ma
tożsamość, która pozwala odróżnić jeden obiekt od drugiego. Dwa obiekty o tych samych wartościach atrybutów są różne i rozróżnialne. W obiektowy
systemach programowania tożsamość obiektów jest realizowana przez identyfikatory przydzielane przez system obiektom podczas ich tworzenia. Takie
identyfikatory są niezmienne i niepowtarzalne. Obiektowi jest przypisany typ, który wyznacza jego budowę, oraz zachowanie, czyli zbiór operacji (zw. metodami), które
można wykonać na obiekcie. Obiekt może być powiązany z innymi obiektami. Obiekt zawsze znajduje się w
określonym stanie, wyznaczonym przez wartość jego
Zasady podejścia obiektowego
• Hermetyzacja – oznacza, że obiekt nie ujawnia otoczeniu swojej budowy, udostępniając jedynie operacje zdefiniowane na swoim interfejsie.
Hermetyzacja jest przejawem modularności, czyli
oddzielenia zewnętrznych aspektów obiektu, dostępnych dla innych obiektów, od szczegółów jego wewnętrznej realizacji, niedostępnych z zewnątrz. Konsekwentne stosowanie hermetyzacji prowadzi do uniezależnienia programu od zmian implementacji obiektów, większej
niezależności od siebie poszczególnych części systemu, a tym samym zwiększa odporność na błędy
powodowane w trakcie dokonywania modyfikacji.
Zasady podejścia obiektowego
Klasy – obiekty, które mają ten sam typ i zachowanie należą do tej samej klasy. Klasa jest pojęciem, które pozwala analitykowi na ograniczenie złożoności
analizowanego wycinka rzeczywistości przez rozważanie grupy podobnych do siebie obiektów – czyli klasy –
zamiast pojedynczych obiektów. W systemach
wykonawczych obiektowych języków programowania klasa jest też generatorem („fabryką”) obiektów:
wywołując określoną operację klasy, potrafimy utworzyć nowy obiekt należący do tej klasy. Klasyfikowanie
obiektów jest przykładem zastosowania bardziej ogólnej zasady abstrakcji, przejawiającej się w ignorowaniu
szczegółów, którymi różnią się obiekty, na rzecz
wydobywania istotnych dla danej aplikacji podobieństw.
Zasady podejścia obiektowego
Dziedziczenie – klasy tworzą hierarchie
dziedziczenia, w których klasy podrzędne, zw.
Podklasami przejmują (czyli dziedziczą)
wszystkie właściwości (atrybuty i operacje) klas nadrzędnych, zw. Nadklasami, a ponadto mają właściwości specyficzne dla siebie, których nie mają nadklasy. Każdy obiekt należący do danej klasy (a więc generowany przez daną klasę)
może pełnić rolę obiektu (jest wystąpieniem)
każdej nadklasy tej klasy, gdyż ma wszystkie
cechy (budowę i zachowanie) obiektu nadklasy.
Zasady podejścia obiektowego
Polimorfizm – w systemie obiektowym ta sama nazwa może oznaczać różne elementy systemu, w zależności od tego, do jakiego obiektu się odnosi. Polimorfizm (czyli wielopostaciowość) może w
zależności od kontekstu odnosić się zarówno do atrybutów, jak i (częściej) do metod. Przykładowo operacja wyświetl() może być zrealizowana przez różne obiekty. To obiekt „wie”, jak wykonać
konkretną, adresowaną do niego operację wyświetl(). W programie napisanym w obiektowym języku programowania nie zawsze z góry (tzn. na etapie kompilacji wiadomo, do obiektu jakiej klasy będzie adresowana dana operacja. W związku z tym polimorfizm metod wymaga stosowania późnego wiązania, czyli mechanizmu
kojarzenia wywołania metody z odpowiednim fragmentem programu (procedurą) na etapie wykonywania programu, a nie na etapie
kompilacji programu.
Zasady podejścia obiektowego
Przekazywanie komunikatów – w podejściu obiektowym system informatyczny traktujemy jako zbiór niezależnie od siebie istniejących obiektów, które porozumiewają się ze sobą za pośrednictwem komunikatów. Komunikat jest wyrażeniem językowym skierowanym do obiektu i
wywołującym jedną z metod, które są związane z
obiektem. Komunikat zwykle niesie ze sobą dane, które stają się parametrami wywoływanej przezeń metody
obiektu. Komunikaty mogą być synchroniczne lub asynchroniczne. Po wysłaniu komunikatu
asynchronicznego obiekt nie czeka na odpowiedź, lecz
kontynuuje działanie.
Zasady podejścia obiektowego
Tworzenie SI zgodnie z paradygmatem
obiektowym polega na utworzeniu szeregu modeli wizualnych na diagramach UML.
Modele te dotyczą:
• wymiaru funkcjonalnego – model przypadków użycia,
• wymiaru strukturalnego – model statyczny,
• wymiaru dynamicznego – model
behawioralny.
Obiektowość w systemach komputerowych
• Obiektowość jest jednym ze sposobów osiągnięcia spójności. Jest to technika organizowania i jako taka jest bardzo użytecznym narzędziem integrującym.
• W szerokim rozumieniu obiektowość oznacza sposób organizowania naszych sądów o naszym świecie. To organizowanie bazuje na typach rzeczy – lub typach obiektowych – w naszym świecie. W ten sposób możemy definiować atrybuty tych typów obiektowych, operacje przeprowadzane na typach obiektowych, reguły oparte na typach obiektowych, maszynowe uczenie się oparte na typach obiektowych itp. Zamiast pojedynczej fizycznej jednostki zawierającej zmienne i metody, ogólniejsze podejście obiektowe dostarcza metody
organizowania naszej wiedzy na poziomie koncepcyjnym.
• Obiektowość zatem dostarcza skorowidza dla naszej wiedzy -niezależnie od tego, czy ta wiedza jest wyrażona w kategoriach reguł, logiki, funkcji, języków relacyjnych, sieci neuronowych itd.
• Obiektowość można używać jako podejścia do organizowania i łączenia wielu różnych technik programistycznych, włączając w to bazy wiedzy, obliczenia równoległe, restrukturyzację procesów przedsiębiorstwa i szybkie tworzenie programów.
• Obiektowość nie ogranicza się do systemów informatycznych.
Obiektowość systemów w ogólności
• Obiektowość powstała z potrzeby łatwiejszego sposobu symulowania systemów – nie tylko symulowania systemów informatycznych, lecz dowolnych rodzajów systemów.
• Obiektowość dostarcza metodę do tworzenia
dowolnych systemów – niezależnie od tego,
jak te systemy będą implementowane. Ponadto
tej samej obiektowej specyfikacji można użyć w
wielu innych dziedzinach, niezależnie od tego
czy dotyczą one ludzi, maszyn lub komputerów.
Podejście obiektowe
• Podejście obiektowe modeluje sposób w jaki ludzie rozumieją i przetwarzają rzeczywistość (podkreśla się rolę ludzi, ponieważ to oni tworzą systemy).
• Jeśli chcemy budować systemy działające poprawnie i spójnie,
nasze specyfikacje powinny być jasne, zwięzłe i jednoznaczne.
Takie specyfikacje są możliwe jedynie wówczas, gdy używa się formalnych podstaw. Te reprezentacje mogą mieć postać tekstową lub graficzną. Mogą pod określić strukturę i zachowanie systemu względem koncepcyjnym lub implementacyjnym. Mogą być
implementacjami wyrażonymi w językach programowania, językach
definiowania baz danych (DDL) i językami manipulowania danymi
(DML). Takie implementacje można by jeszcze rozszerzyć tak, by
zawierały inne zautomatyzowane podejścia, takie jak jednostki
sterujące, robotykę i układy komputerowe.
Pojęcia i rzeczywistość
• Tworzenie pojęć ułatwia nam porządkowanie naszego życia.
• Pojęcie jest wyobrażeniem lub oznaczeniem, które stosujemy do rzeczy lub obiektów w naszej
świadomości.
• Wiemy, że posiedliśmy pojęcie, kiedy możemy je z powodzeniem zastosować do rzeczy wokół nas.
• Pojęcia są środkiem służącym do rozpoznawania.
• Używane przez nas pojęcia mogą być bardzo
różnorodne, ponieważ sami je wybieramy.
Przykłady pojęć
Materialne Niematerialne Role Opinie
Osoba Ołówek Samochód
Czas Jakość Firma
Doktor Pacjent Właściciel
Wydajna praca Wysoka zapłata Dobry przykład Relacyjne Zdarzenia Inne typy pojęć
Małżeństwo Partnerstwo Posiadanie
Sprzedaż Zakup
Załamanie rynku
Zestaw Liczba Ikona
Obraz
Sygnał
Proces
Intensja i ekstensja
• Intensja jest pełną definicją pojęcia i
testu określającego, czy to pojęcie odnosi się do danego obiektu.
• Ekstensja jest zbiorem wszystkich obiektów, do których stosuje się to pojęcie.
• Intensja i ekstensja są dwiema stronami tej samej monety – termin „pojęcie”
zawiera obie.
Pojęcie Instrument muzyczny można traktować jako jednostkowy element mający instensje i ekstensje
Instrument muzyczny
Dowolne urządzenie zdolne do wydawania melodyjnych i
harmonijnych dźwięków
Symbolizowanie intensji i ekstensji
• Symbole są zwięzłym sposobem odwoływania się do obiektów. Są szczególnie pomocne wtedy, gdy chcemy przekazywać informacje o pojęciach nie używając ich
definicji. Symbolem pojęcia instrument muzyczny jest prostokąt z etykietą instrument muzyczny.
• Na kolejnym slajdzie pojęcie jest symbolizowane
słowami Instrument muzyczny zawartymi w prostokącie.
Jego intensja jest wyrażona przez opisową definicję, a jego ekstensją jest zbiór egzemplarzy Instrumentów muzycznych. W ten sposób, kiedykolwiek pojęcie
zostanie zidentyfikowane podczas analizy, może zostać przedyskutowane w kategoriach nazwy, definicji i
obiektów do których się stosuje.
Instrument muzyczny
(Ekstensja) Pojęcie
(Symbolizuje)
Instrument muzyczny
Dowolne urządzenie zdolne do wydawania melodyjnych i
harmonijnych dźwięków
(Intensja)
Trójka pojęciowa dla Instrumentu muzycznego
Wzięte razem, dwustronna natura pojęcia i jego symboliczna reprezentacja, wspomagają
analityka obiektowego w rozumieniu i przekazywaniu pojęć związanych z dziedziną zastosowań.
Trójka pojęciowa z rysunku ilustruje sposób myślenia o tych trzech aspektach. Na samej górze
Brak
Prowizja od zakupu, sprzedaży lub
dostarczania towarów lub usług
Niepełna trójka pojęciowa, w które pojęcie nie ma ani nazwy, ani symbolu
Używanie trójki pojęciowej jest ważne podczas analizy obiektowej. Pod pewnymi warunkami
można pominąć jeden lub więcej aspektów trójki pojęciowej. Przykładowo ktoś może zdefiniować pojęcie bez symbolizującej je nazwy. Pojęcia i odpowiadające im obiekty nie wymagają istnienia nazw. Jednak ludzie wydajniej się porozumiewają, używając nazw do wyrażania pojęć.
Odwoływanie się wyłącznie do definicji pojęcia spowalnia proces komunikowania się (ciągłe cytowanie definicji byłoby długie i nudne. Wybranie symbolu takiego jak np. Zamówienie do
48291
Pojęcia bez nazwy
Sabotażysta w korporacji
Osoba niszcząca własność z intencją zaszkodzenia
korporacji
Niepełna trójka pojęciowa, w które pojęcie nie ma żadnych egzemplarzy
Przykład niepełnej trójki, z symbolem pojęcia i definicją, lecz bez obiektów w zbiorze
egzemplarzy. Możemy mieć np. pojęcie Sabotażysty w korporacji, lecz jednocześnie mieć nadzieję, iż unikniemy jego egzemplarzy. Wprowadzenie pojęcia Sabotażysty w korporacji pozwoliłoby tej organizacji wykryć rzeczy niespodziewane. Bez tego pojęcia wykrycie nie byłoby możliwe.
Pojęcia bez egzemplarzy
Brak
P-CD-X99
Brak
Niepełna trójka pojęciowa, w które pojęcie nie ma definicji
Uwaga: Należy wystrzegać się sytuacji, w której nie można ustalić żadnej definicji pojęcia, a wydaje się jednak, że udało się określić odpowiadający mu zbiór obiektów. Przykładowo
przedstawiono zbiór zawierający „X17”, „Z42”, … i nie mający żadnej udokumentowanej definicji odnoszącego się do tych obiektów pojęcia P-CD-X99. Ten rodzaj problemów jest widoczny w organizacjach, które budują systemy bez dokumentacji. Analityk powinien zadbać o zdefiniowanie definicji każdego pojęcia w systemie. Pojęcie bez definicji nie jest pojęciem. Jest dosłownie bez
Pojęcia bez definicji
„X17”,
„Z42”.
…
Klient, Interesant
Osoba lub organizacja kupująca dobra lub usługi
Zdarzają się sytuacje, w których dla danego pojęcia występuje więcej niż jeden symbol lub definicja. Przykładowo Klient i Interesant mogłyby być dwiema nazwami tego samego pojęcia.
Czyli pojęcie może mieć jedną definicję i kilka nazw. To zjawisko jest czasami nazywane
synonimem lub aliasem. Sprawia ono kłopot wielu administratorom danych, ponieważ chcieliby mieć proste i uporządkowane środowisko, w którym wszystko ma jedną standardową nazwę. O ile standaryzacja jest użyteczna, o tyle wymuszanie jednej nazwy jest niepraktyczne. W jednej
Pojęcia z synonimami
„IBM”,
„Jan Kowalski”
Sfinalizowana sprzedaż
Sprzedaż zatwierdzona podaniem rąk
Zdarzają się sytuacje, w których trójka z homonimem ma, zamiast definicji z wieloma nazwami, nazwę z wieloma definicjami. Przykładowo większość firm ma dwie różne definicje
Sformalizowanej sprzedaży. Dla sprzedawcy sprzedaż jest potwierdzana podaniem rąk i
potwierdzającym skinieniem głowy. Dla księgowości sprzedaż istnieje dopiero po zatwierdzeniu i podpisaniu kontraktu sprzedaży. Wprawdzie jest możliwe, że ten sam obiekt jest egzemplarzem spełniającym obie definicje, jednak podstawowy problem pojawia się wtedy, kiedy te dwa zbiory są różne.
Pojęcia z homonimami
48291
48291
Sprzedaż zatwierdzona podpisaniem kontraktu
Dziedziny
• Dziedzina jest wybranym obszarem zainteresowań, który zawiera kolekcje obiektów będących egzemplarzami specyfikacji dziedziny.
• Specyfikacja dziedziny jest kolekcją pojęć odnoszących się do dziedziny.
• Dziedziny mogą być konkretne, tak jak zapas części, abstrakcyjne jak zamówienie lub złożone, w których nie zachodzi żadne przetwarzanie. Jednak systemy zwykle mają zarówno składniki strukturalne, jak i odnoszące się do zachowań.
• Dziedzina jest „sferą … aktywności i oddziaływania”, umożliwiającą zdefiniowanie perspektywy lub kontekstu.
• Bez perspektywy czy kontekstu nasze umysły mogą źle zrozumieć zawartość przekazu. Dla analityka oznacza to, że może być zagrożona koncepcyjna ścisłość.
• Dziedziny określają zakres, który formalnie ogranicza i koncentruje nasze wysiłki związane ze specyfikowaniem. Ograniczenie naszych wysiłków pomaga nam
koncentrować się na tym co jest naszym obszarem zainteresowań. Zatem
zdefiniowanie dziedziny wspomaga analityka przez umożliwienie mu dotarcia do sedna analizowanych zagadnień.
• Dziedzina systemu jest analizowanym przez analityka rzeczywistym światem;
specyfikacja dziedziny jest produktem analizy systemu. Specyfikacja dziedziny zatem definiuje zbiór pojęć (tak strukturalnych, jak i odnoszących się do zachowań) dla
konkretnej dziedziny.
Obiekt
• Obiekt jest to coś, do czego da się zastosować jakieś pojęcie. Obiekt jest egzemplarzem pojęcia.
• Terminy obiekt i egzemplarz można stosować wymiennie.
• Większość obiektów istnieje tylko przez pewien okres. Dla tych obiektów można sensownie zdefiniować momenty początkowy i końcowy.
• O ile obiekty są pojedynczymi, niezależnymi egzemplarzami, to zbiór jest pewną kolekcją (klasą) obiektów. Należenie do zbioru jest całkowicie określone przez
pełną definicję (instensję) związanego z nim pojęcia. Ta definicja działa jak filtr, który przesiewa wszystkie obiekty, przepuszczając do zbioru tylko te, które przejdą test należenia do zbioru. Zbiór jest inną nazwą ekstensji pojęcia.
• Zbiór może zawierać wiele obiektów, a każdy obiekt może być elementem wielu zbiorów. Każdy zbiór jest kolekcją tych obiektów, które pomyślnie przeszły test przynależności określony przez pojęcie.
• Gdy stwierdzamy, że pojęcie stosuje się do konkretnego obiektu, ten obiekt jest sklasyfikowany jako element pewnego zbioru.
• Obiekt może w dowolnym momencie należeć do wielu zbiorów. To zjawisko
nazywamy wielokrotną klasyfikacją. Ponadto, wraz z upływem czasu, obiekt może należeć do różnych zbiorów – to zjawisko nazywamy dynamiczną klasyfikacją.
Pojęcie a typ obiektowy
• Typ obiektowy jest powszechnie
stosowanym terminem na określenie
pojęcia w środowisku osób zajmujących się standardami analizy obiektowej
(niektórzy używają terminu klasa).
Powiązanie obiektów
• Powiązania umożliwiają łączenie w
sensowny sposób obiektów różnych typów
(dwa typy obiektowe Organizacja i Osoba
są ze sobą powiązane).
Powiązanie dwóch typów obiektowych (klas)
Typy obiektowe są oznaczone prostokątnymi węzłami, linia oznacza powiązanie.
Węzły są użytecznym mechanizmem prezentacji, gdyż graficznie odróżniają typy obiektowe od związanych z nimi struktur.
class pracow nicy
Osoba Organizacj a
Folder Plik
* zatrudnia
zawiera
*
Model statyczny
Model obrazujący wymiar strukturalny systemu, przedstawiany jest na diagramach klas i diagramach obiektów. Podstawowe elementy
występujące na diagramach klas to klasy (class) i związki (association).
W klasie zdefiniowana jest struktura obiektów (wyznaczona przez typ klasy) i ich zachowanie (wyznaczone przez zbiór operacji (metod) klasy).
Atrybuty i operacje nazywamy właściwościami klasy i jej obiektów.
Zazwyczaj każda właściwość klasy występuje we wszystkich obiektach należących do tej klasy. Mówimy, że taka właściwość ma zasięg lokalny:
odnosi się zawsze do jednego, konkretnego obiektu. Klasa może mieć również właściwości o zasięgu globalnym, czyli takie, które dotyczą wszystkich obiektów należących do tej klasy, a nie są bezpośrednio
właściwościami żadnego z tych obiektów. Przykładem atrybutu globalnego może być liczba obiektów należących do danej klasy. Przykładem metody globalnej może być metoda podająca liczbę obiektów należących do klasy.
Przechowywanie atrybutów globalnych w każdym obiekcie klasy byłoby niecelowe i bardzo kosztowne, w związku z czym są one zazwyczaj
przechowywane w wyróżnionym obiekcie reprezentującym klasę jako całość (tzw. obiekcie kontenerowym).
class Domain Objects
Osoba - pesel: int - nazwisko: char - adres: char - liczebność: int
+ podaj_opis() : void + podaj_liczebność() : void
Samochód - nr_rejestracyjny: int - rok_produkcji: int - marka: char - liczenność: int
+ podaj_opis() : void + podaj_liczebność() : void + podaj_średni_wiek() : void jest_właścicielem
*
Rysunek przedstawia prosty diagram klas dla systemu przechowującego informacje o samochodach i ich właścicielach. Występują na nim dwie klasy: Osoba i Samochód.
Klasa Osoba, poza atrybutami o zasięgu obiektu (pesel, nazwisko i adres), ma też atrybut liczebność, o zasięgu klasy. Ma jedną metodę o zasięgu obiektu, podaj_opis() oraz jedną metodę o zasięgu klasy, podaj_liczebność(). Właściwości globalne są podkreślone.
Klasa Samochód ma również właściwości lokalne: nr_rej, rok_produkcji, marka, podaj_opis() oraz globalne: liczebność, podaj_liczebność(), podaj_średni_wiek().
Prosty diagram klas: Samochody i ich właściciele
obj ect model statyczny
Jan:Osoba - 671212:
- JAN KOWALSKI:
- GDAŃSK, MOKRA 6:
bmw :Samochód - GD 12345:
- 1999:
- BMW 315i:
fiacik:Samochód - GDKM1234:
- 1984: int - FIAT 126p:
jest_właścicielem
jest_właścicielem
Na rysunku zamieszczono diagram obiektów będący jednym z niezliczonych możliwych wystąpień diagramu klas. Z tego diagramu wynika, że wymieniona na nim osoba (Jan Kowalski z Gdańska) jest właścicielem dwóch samochodów, których szczegóły podano jako wartości ich atrybutów. Obiekty klas Osoba i Samochód zostały tu wyróżnione poprzez ich nazwy (identyfikatory)
poprzedzające nazwę klasy. Użycie nazwy obiektu jest nieobowiązkowe; konieczne jest natomiast umieszczenie (po znaku dwukropka) nazwy klasy, do której należy
Przykładowe wystąpienie diagramu klas
class pracow nicy
Osoba - nazwisko:
Firma - nazwa:
Zatrudnienie - okres_umowy: int - stanowisko:
- płaca:
+ zawrzyj_umowę() : void + awansuj() : void + rozwiąż_umowę() : void +pracuje_w
1..*
+zatrudnia 1..*
Związek jako klasa
Mamy tu 3 klasy: Osoba, Firma i Zatrudnienie. Związek pomiędzy klasą Osoba i klasą Firma reprezentuje powiązania pomiędzy poszczególnymi osobami i firmami, w których te osoby pracują. Ten związek nie został na diagramie nazwany; zamiast tego przy ikonach
reprezentujących klasy umieszczono nazwy ról, jakie pełnią obiekty danej klasy w tym związku. I tak każda osoba pełni rolę „pracuje_w”, a każda firma rolę „zatrudnia”. Z umieszczonych na
diagramie oznaczeń liczebności wynika, że każda osoba może pracować w jednej lub więcej firmach, a każda firma może zatrudniać jedną lub więcej osób. Z uwagi na przyjętą liczność
Celowe jest utworzenie klasy reprezentującej ten związek, czyli klasy Zatrudnienie. Klasa ta zawiera również metody potrzebne do
zarządzania związkiem, np. metodę umożliwiającą zmianę stanowiska czy zmianę płacy. W takim
rozwiązaniu nie ma potrzeby
przechowywania w strukturze obiektu informacji o jego powiązaniach z
innymi obiektami, gdyż wszystkie informacje mogą być
przechowywane w obiektach reprezentujących te powiązania.
class pracow nicy
Wykładow ca - nazwisko:
Student - nr_albumu:
Przedmiot - nazwisko:
nauka
* *
*
Związek stopnia 3 pomiędzy wykładowcami, studentami i przedmiotami
Stopień (degree lub arity) związku jest to liczba klas, pomiędzy którymi zachodzi dany związek. W związku podwójnym obiekty związanych ze sobą klas są powiązane ze sobą w pary, w związku potrójnym w trójki itp.
Na diagramie przedstawiono przykład związku potrójnego, zachodzącego pomiędzy przedmiotami, wykładowcami i studentami pewnej szkoły. Przyjmijmy założenie, że wszystkie podwójne między parami (Wykładowca, Przedmiot), (Wykładowca, Student), (Przedmiot, Student) mają liczebność typu „wiele do wielu”. Aby dowiedzieć się, do którego wykładowcy dany student uczęszczał na dany przedmiot, nie wystarczy żaden
class model statyczny
Student Pracow nik
Osoba
Profesor
Wykład Kurs
1 prowadzi
* 1..*
zawiera 1
1..*
zapisany na 1..*
+poprzedza 0..1
+następuje po *
Zadanie
Przedstaw diagram klas odpowiadający następującym wymaganiom:
System ma za zadanie przechowywać informacje o pracownikach (w tym profesorach), studentach oraz przeprowadzonych kursach. Kurs może być poprzedzony innym kursem; sam także może poprzedzać inne kursy. Każdy kurs składa się z co najmniej jednego wykładu. Wykład wchodzi w skład tylko jednego kursu.
Należy pamiętać informacje o tym, na które wykłady był zapisany każdy ze studentów. Student może być
Przykład agregacji:
Zadanie: W skład grupy wchodzi od jednego do piętnastu studentów, przy czym student może należeć do dowolnej liczby grup; dla każdego
studenta przechowywana jest informacja o tym, w jakim okresie należał do danej grupy.
class model statyczny
Grupa - plan:
+ zmień_plan() : void
Student - plan:
+ zmiań_plan() : void
Termin - do:
- od:
* 1..15
class Plan zaj ęć
Rej estracja na semestry::
SemestrAkademicki - poraRoku:
- rok_rozpoczęcia:
- status:
Rej estracj a na semestry::
Przedmiot
OgólnyPlanZaj ęć
GrupaStudencka Przedmioty, sprawdziany, oceny::
Zaj ęcia - czas_trwania: int - dzień_tygodnia: dni
PracownikDydaktyczny PlanZajęć
ParametryUdostępnianiaOglnegoPlanuZajęć - filtr_grup_dziekańskicj: char
- filtr_pracowników_dydaktycznych: char - sposób_pokazywania: boolean = G/L
ParametryUdostępnianiaPlanuZajęć - sposób_pokazywania: boolean = L/T
«system»
«system»
-plany semestralne 0..*
-grupa 1 -lista zajęć 1..*
1 0..1
1
-plany dla grup 1..*
1 -prowadzący
1
-przedmioty_prowadzone 0..*
0..*
1 -zarządzający 1
-przedmioty_zarządzane 0..*