• Nie Znaleziono Wyników

Obiektowe bazy danych

N/A
N/A
Protected

Academic year: 2021

Share "Obiektowe bazy danych"

Copied!
37
0
0

Pełen tekst

(1)

Obiektowe bazy danych

(2)

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.

(3)

Zasady podejścia obiektowego

• Obiekty

• Hermetyzacja

• Klasy

• Dziedziczenie

• Polimorfizm

• Przekazywanie komunikatów

(4)

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

(5)

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.

(6)

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.

(7)

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.

(8)

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.

(9)

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.

(10)

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.

(11)

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.

(12)

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.

(13)

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.

(14)

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.

(15)

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

(16)

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.

(17)

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

(18)

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.

(19)

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

(20)

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

(21)

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

(22)

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”.

(23)

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”

(24)

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

(25)

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.

(26)

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ą.

(27)

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).

(28)

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).

(29)

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

*

(30)

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).

(31)

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

(32)

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

(33)

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.

(34)

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

(35)

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ć

(36)

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

(37)

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..*

Cytaty

Powiązane dokumenty

Przedstawia on grupę trojga ludzi, mężczyzn i kobietę, dotykających się policzkami – dziwny i piękny obraz.. Simeon Solomon, żyjący w XIX wieku, został wykluczony ze

Otrzymana wartość M moŜe zastąpić parametr λ z poprzedniego wzoru i być uŜywana jako miara niezawodności (średni czas do pierwszego uszkodzenia – MTBF Mean Time

Testowa ocena dokładności lokalizacji obrazów punktów siatki reseau na macierzy drugiej pochodnej obrazu cyfrowego.. Ocenę dokładności automatycznego lokalizowania linii

Projekt jest to przedsięwzięcie, na które składa się zespół czynności, które charakteryzują się tym, że mają:.. 

Z tego względu wydaje się oczywiste, że konieczne jest istnienie w języku SQL instrukcji, których zadaniem jest wprowadzanie danych do bazy, modyfikacja uprzednio

Marketing personalny obejmuje działania przedsiębiorstwa, których celem jest zbudowanie i utrzymanie wizerunku firmy przyjaznej, atrakcyjnej i odpowiedzialnej za

Ogół zasad umożliwiających przedstawienie liczb za pomocą umownych znaków przyjęto nazywać systemem liczbowym, a znaki, za pomocą których zapisuje się obecnie liczby

Za pomocą kwerend można pobierać i tworzyć zestawienia danych które Cię aktualnie interesują.. Sortowanie polega na uporządkowanym układaniu