background image

 

 

Obiektowe bazy danych

background image

 

 

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. 

background image

 

 

Zasady podejścia 

obiektowego

• Obiekty
• Hermetyzacja
• Klasy
• Dziedziczenie
• Polimorfizm
• Przekazywanie komunikatów

background image

 

 

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 atrybutów i 

powiązań z innymi obiektami.  

background image

 

 

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.

background image

 

 

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.

background image

 

 

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.

background image

 

 

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. 

background image

 

 

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.

background image

 

 

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.

background image

 

 

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

.

background image

 

 

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.

background image

 

 

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. 

background image

 

 

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.

background image

 

 

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

background image

 

 

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.

background image

 

 

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

background image

 

 

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.

background image

 

 

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 jest 

symbol

 pojęcia. Lewa strona przedstawia 

intensję, definicję, pomysł

 lub 

wytłumaczenie 

pojęcia. Prawa strona przedstawia 

przykłady elementów 

ekstensji

 lub 

zbioru obiektów

, do których stosuje się to 

pojęcie.

background image

 

 

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 oznaczenia pojęcia umożliwia 

wprowadzanie skrótów do porozumiewania się.

48291

Pojęcia bez nazwy

background image

 

 

Sabotażyst

a 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.
Idealny produkt mógłby być następnym przykładem pojęcia nie mającego 

egzemplarzy. Jednak jak można by oceniać produkty bez pojęcia produktu idealnego. 

Nowa firma może mieć pojęcie Zamówienia i Klienta, lecz jeszcze nie mieć żadnych 

klientów ani zamówień. 

Pojęcia bez egzemplarzy

Brak

background image

 

 

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

Pojęcia bez definicji

„X17”,
„Z42”.

background image

 

 

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 firmie 

może istnieć kilka standardowych nazw jakiegoś pojęcia.

Pojęcia z synonimami 

„IBM”,

„Jan Kowalski”

background image

 

 

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.
Większość repozytoriów nie potrafi efektywnie obsługiwać homonimów. Obecnie ten 

kto rejestruje nazwę pojęcia jako pierwszy dostaje pełne prawa do tego słowa. W ten 

sposób, jeśli księgowość jako pierwsza użyje nazwy Sprzedaż, to dział sprzedaży 

będzie musiał wybrać inne słowo.

Pojęcia z homonimami

48291

48291

Sprzedaż 
zatwierdzona 
podpisaniem 
kontraktu

background image

 

 

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. 

background image

 

 

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

background image

 

 

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

background image

 

 

Ewa

Jan

Kobieta

Mężczyzna

Pracownik

O ile obiekty są pojedynczymi, niezależnymi egzemplarzami, to 
zbiór jest pewną kolekcją (klasą) obiektów. Zbiór może zawierać 
wiele obiektów, a każdy obiekt może być elementem wielu 
zbiorów.

Na rysunku pokazano trzy pojęcia: Kobieta, Mężczyzna i Pracownik. 
Obiekt Ewa należy jednocześnie do dwu zbiorów: Kobieta i 
Pracownik. Oczywiście może należeć także do innych zbiorów 
takich jak: Żona, Matka, Dobry przyjaciel. 

background image

 

 

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

background image

 

 

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. 

O ile typy obiektowe dotyczą zbiorów obiektów, o tyle powiązania 
dotyczą połączeń obiektów między zbiorami.

class pracownicy

Osoba

Organizacja

Folder

Plik

*

zatrudnia

zawiera

*

background image

 

 

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

background image

 

 

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

Klasy Osoba i Samochód nie są od siebie niezależne; są powiązane ze sobą 
związkiem o nazwie jest właścicielem.

Prosty diagram klas: Samochody i ich właściciele

background image

 

 

object model statyczny

J an:Osoba

671212:  

J AN 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 dany obiekt.

Przykładowe wystąpienie diagramu klas

background image

 

 

class pracownicy

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: OsobaFirma 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ść związku ważne 
informacje dotyczące zatrudnienia danej osoby w danej firmie, takie jak: stanowisko, 
okres umowy, płaca itp., nie są atrybutami ani osoby, ani firmy, ale atrybutami pary 
(osoba, firma), a więc atrybutami powiązań pomiędzy konkretnymi obiektami klasy 
Osoba i Firma.

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.

background image

 

 

class pracownicy

Wykładowca

-  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 zestaw par (w,s), (w,p) i 
(s,p). Musimy mieć do dyspozycji trójki (w,s,p). Potrzebne są więc wystąpienia 
związku potrójnego zachodzącego pomiędzy tymi klasami, nazwanego tu 
nauka.

background image

 

 

class model statyczny

Student

Pracownik

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ć zapisany na wiele wykładów (co najmniej jeden). Na jeden 
wykład może być zapisanych wielu studentów (co najmniej jeden). Wykład jest prowadzony przez 
jednego profesora. Profesor może prowadzić wiele wykładów; może też nie prowadzić żadnego 
wykładu.

background image

 

 

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

background image

 

 

class Plan zajęć

Rejestracja na 

semestry::

SemestrAkademicki

-  poraRoku:  
-  rok_rozpoczęcia:  
-  status:  

Rejestracja na 

semestry::

Przedmiot

OgólnyPlanZajęć

GrupaStudencka

Przedmioty, sprawdziany, oceny::

Zajęcia

-  czas_trwania:  int
-  dzień_tygodnia:  dni
-  godzina_rozpoczęcia:  godziny

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


Document Outline