Metodyka Obiektowa pojęcia podstawowe

background image

Programowanie Obiektowe

Metodyka Obiektowa

Pojęcia podstawowe

A.Gaj

background image

PO - Podstawy

Wg. Encyklopedii Britannica:
W percepcji świata ludzie używają stale trzech metod

organizacji, które przenikają całe ich myślenie:

• Różnicowanie doznania na poszczególne obiekty i ich

atrybuty – na przykład rozróżnianie między drzewem, a
jego rozmiarami i relacją przestrzenną do innych
obiektów,

• Rozróżnienie między całymi obiektami i ich częściami

składowymi – na przykład, kiedy kontrastuje się drzewo
z gałęziami, z których się ono składa,

• Tworzenie klas obiektów i rozróżnianie ich – na przykład

konstrukcja klasy wszystkich drzew i klasy wszystkich
kamieni oraz rozróżnienie między nimi.

[Britannica, Teoria klasyfikacji,

1986]

background image

PO - Podstawy

Dziedzina problemu i zakres obowiązków systemu

Dziedzina problemu to rozważane pole działania.
np.: zarządzanie przestrzenią powietrzną, lotnictwo,

finanse, ....

System [gr. umieścić razem] zbiór lub ułożenie elementów

tak powiązanych, że tworzą jedność lub ograniczoną całość;
jak na przykład system słoneczny, system nawadniający,
system zasilania.

Odpowiedzialność [gr. wymaganie odpowiedzi] warunek

jakość, fakt lub przykład bycia odpowiedzialnym (w
oryginale więcej synonimów – responsible, answerable,
accountable, liable) co do osoby, urzędu lub długu.
[Webster, 1977]

System – zbiór elementów (obiektów) i powiązań pomiędzy

nimi, dodatkowo wyróżnienie tego zbioru elementów i
powiązań musi mieć swój cel (cel modelowania).

background image

PO - Podstawy

Dziedzina problemu i zakres obowiązków

systemu

Dziedzina problemu to rozważane pole

działania.

Zakres obowiązków (odpowiedzialności)

systemu.

To powiązany w całość zbiór rzeczy, za

które system odpowiada.

background image

PO - Podstawy

W czasie prac nad projektem musimy być

przygotowani na ustawiczne zmiany.

Powinniśmy też zapewnić wielokrotny

użytek fragmentów kodu.

background image

PO - Podstawy

Zasady zarządzania złożonością:

• Abstrakcja,
• Hermetyzacja,
• Dziedziczenie,
• Skojarzenie,
• Komunikacja za pomocą komunikatów,
• Powszechnie występujące metody organizacji: obiekty i

atrybuty, całość i części, klasy i składowe oraz
rozróżnianie między nimi,

• Skala,
• Kategorie zachowania: bezpośrednia przyczynowość,

zmiany w czasie, podobieństwo funkcji.

background image

PO - Podstawy

Model analizy obiektowej [Yourdon, Coad]

• Warstwa tematów,
• Warstwa klas-i-obiektów,
• Warstwa struktury,
• Warstwa atrybutów,
• Warstwa usług.

background image

PO - Podstawy

Pojęcie klasy

Klasa – [łac.] zbiorowisko ludzi lub rzeczy

połączonych podobieństwem lub

wspólnymi cechami.

Obiekt – [łac.] osoba lub rzecz, do której

odnosi się czynność, myśl lub uczucie.

Coś, co jest widoczne lub namacalne;

produkt lub substancja.

[Webster,1977]

background image

PO - Podstawy

Obiekt - jest abstrakcyjnym bytem

reprezentującym lub opisującym pewną rzecz
lub pojęcie obserwowane w świecie
rzeczywistym. Obiekt jest odróżnialny od innych
obiektów, ma nazwę i dobrze określone granice.

background image

PO - Podstawy

Pojęcie klasy

Klasa (class) pojęcie klasy jest używane w

trzech dość bliskich znaczeniach:

• Zbiór obiektów o zbliżonych właściwościach.
• Byt semantyczny rozumiany jako miejsce

przechowywania takich cech grupy podobnych
obiektów, które są dla nich niezmienne (np.
zestaw atrybutów, nazwy, metod, ograniczeń
dostępu).

• Wyrażenie językowe specyfikujące budowę

obiektów, dozwolone operacje na obiektach,
ograniczenia dostępu, wyjątki, itd.

background image

PO - Podstawy

Pojęcie klasy

Obiekty są klasyfikowane zgodnie z podobieństwem

pewnych ich własności oraz podobieństwem sposobów
ich użycia. Niezmienne cechy obiektów (zwane
inwariantami lub niezmiennikami), w szczególności
zestaw atrybutów (wraz z typami) oraz operacje, które
można na nich wykonywać (metody), są zbierane
wewnątrz specjalnego bytu programistycznego
nazywanego klasą. Typy umożliwiają statyczną i
dynamiczną kontrolę poprawności budowy obiektów,
poprawności ich użycia w programach oraz poprawności
użycia operacji przypisanych do obiektów. Obiektowość
zakłada oddzielenie zewnętrznej specyfikacji klasy,
zwanej interfejsem, od jej implementacji.

background image

PO - Podstawy

Pojęcie klasy

Klasa abstrakcyjna (abstract class) klasa

zawierająca własności (atrybuty, metody)
dziedziczone przez jej podklasy, ale nie
posiadająca bezpośrednich wystąpień
obiektów.

background image

PO - Podstawy

Pojęcie klasy

Klasa budowa:

• Nazwa,
• Atrybuty,
• Metody.

background image

PO - Podstawy

Pojęcie klasy

Metoda obiektu – operacja (jest abstrakcją

programistyczną tej samej kategorii co funkcja i
procedura) związana semantycznie z obiektem,
stanowiąca jego interfejs do otoczenia obiektu
lub będącą operacją wykonywaną na
atrybutach danego obiektu.

Atrybut obiektu – zmienna zdefiniowana w

ciele klasy; jej wartość, wraz wartościami
innych atrybutów, w konkretnym obiekcie
określa stan tego obiektu.

background image

PO - Podstawy

Pojęcie klasy

Atrybut obiektu:

– Nazwana własność lub wartość przypisana do obiektu

np. Nazwisko („Kowalski”) dla obiektu Pracownik,

– Obiekt będący składową innego obiektu; taki obiekt-

atrybut jest zwykle wystąpieniem swojej własnej
klasy,

– Nazwa przypisana do pewnej wartości

przechowywanej w ramach obiektu, np. nazwa
Nazwisko,

– Wyrażenie składające się z nazwy i typu wartości

przechowywanych wewnątrz pewnej grupy obiektów;
takie wyrażenie jest częścią definicji klasy (typu)
obiektów, np. Nazwisko: string.

background image

PO - Podstawy

Powiązania (relacje) pomiędzy klasami–

obiektami

Relacja (łac.) – stosunek, filoz. byt

niesamodzielny, wiążący 2 byty samodzielne,
wszelki związek lub zależność (stosunek)
między dwoma lub więcej przedmiotami danego
rodzaju, pojęciami, wielkościami.

Relacja – mat. podzbiór iloczynu kartezjańskiego

pewnych dziedzin (zbiorów).

background image

PO - Podstawy

Powiązania pomiędzy klasami – obiektami:

• Dziedziczenia,
• Agregacji,
• Skojarzenia.

background image

PO - Podstawy

Dziedziczenie
Związek pomiędzy klasami obiektów

określający przekazywanie cech (definicji
atrybutów, metod, itd.) z nadklasy do jej
podklas. Dziedziczenie jest podstawowym
mechanizmem sprzyjającym ponownemu
użyciu.

Zachodzi pomiędzy klasami.

Oznacza dla klas potomnych uzyskanie

wszystkich cech klas nadrzędnych (rodziców).

background image

PO - Podstawy

Dziedziczenie

nadtyp

podtyp

Jednobazowe

ud dziedziczenie

Osoba

Kobieta

Mężczyzna

background image

PO - Podstawy

Dziedziczenie

Wielobazowe

cd dziedziczenie wielobazowe

samochód

jednostka
pływająca

amfibia

background image

PO - Podstawy

Agregacja
Związek pomiędzy klasami obiektów

(szczególny przypadek asocjacji), modelujący

stosunek całości do jej części (np. stosunek

samochodu do silnika). Obiekty są powiązane

związkiem agregacji, jeżeli jeden z nich

można uważać za część drugiego, zaś czas i

cykl życia tych obiektów są jednakowe.

Odzwierciedla powiązanie całość-część

pomiędzy klasami-obiektami.

Kompozycja – mocna forma agregacji;

oznacza, że dana część może należeć tylko

do jednej całości i część nie może istnieć bez

całości.

background image

PO - Podstawy

Agregacja

ud agregacja

Auto

Nadwozie

Podwozie

Klima

składa się z

składa się z

może mieć

Kompozycję – oznaczmy czarnym rombem.

background image

PO - Podstawy

Skojarzenie (asocjacja)

Związek pomiędzy klasami obiektów; może

łączyć dwie lub więcej klas (niekoniecznie
różnych). Skojarzenie umożliwia wymianę
komunikatów pomiędzy obiektami klas
skojarzonych.

background image

PO - Podstawy

Komunikat

Sygnał skierowany od obiektu nadawcy do

obiektu odbiorcy, którego efektem jest
wywołanie odpowiedniej metody u
odbiorcy komunikatu, określonej przez
nadawcę. Komunikat może mieć
parametry. Obiekt nadawcy musi „znać”
obiekt odbiorcy, tzn. posiada nazwę lub
adres odbiorcy, aby właściwie
zaadresować komunikat.

background image

PO - Podstawy

Skojarzenie

(asocjacja)

ud asocjacja

Auto

Osoba

jest związany z

background image

PO - Podstawy

Przykład Diagramu Powiązań Klas

cd Use Case View

Auto

Osoba

Nadwozie

Podwozie

Auto terenowe

Kobieta

Mężczyzna

Klima

może mieć

dziedziczy z

składa się z

składa się z

jest związany z

background image

Notacja dla zapisu liczności

związków asocjacji pomiędzy

obiektami

Czytając od
lewej do prawej

A jest zawsze
związane z
jednym B

A jest zawsze
związane z
jednym lub
wieloma B

A jest zawsze
związane z
żadnym lub
jednym B

A jest zawsze
związane z
żadnym, jed-
nym lub
wieloma B

Martin/Odell

Booch (w. 2.0)

Coad/Yourdon

Rumbaugh
(OMT)

Barker (CASE
Method)

A

B

A

B

A

B

A

B

A

B

1

A

B

1..N

A

B

0..
1

A

B

N

A

B

1

A

B

1,m

A

B

0,1

A

B

0,m

A

B

A

B

A

B

1+

A

B

A

B

A

B

A

B

A

B

background image

Zalety podejścia

obiektowego

• Metodyka obiektowa daje projekt bardziej stabilny - odporny na

zmiany - klas-obiektów w porównaniu z funkcjami.

• Metodyka obiektowa posługuje się tymi samymi technikami

(diagramami) we wszystkich fazach wytwarzania aplikacji, co
czyni ją bardziej zrozumiałą dla dużego zespołu projektowego.

• Rzecz najistotniejsza, w metodyce obiektowej dane i procesy są

połączone w klasy - obiekty, nie prowadzi się tu dwóch
projektów: struktur danych i procesów jak to jest w metodyce
strukturalnej.

• Metodyka obiektowa pozwala na stosowanie procesu spiralnego

(przyrostowego) wytwarzania aplikacji, co znakomicie poprawia
komunikację - wzajemne zrozumienie - z użytkownikiem i co za
tym idzie wydatnie skraca czas produkcji aplikacji.

Dziedziczenie pozwala w metodyce obiektowej na wielokrotne

wykorzystanie fragmentów projektów (klas lub nawet całych
podsystemów).

background image

Metody obiektowe

• Metody obiektowe wynikają z naturalnego

postrzegania świata przez nas. Człowiek

analizuje otoczenie poprzez jego relację

względem otaczających go obiektów.

• Świat nie jest obiektem jednorodnym. Składa

się on z wielu innych obiektów pozostających

w pewnych powiązaniach (relacjach)

względem siebie, funkcjonujących w jego

otoczeniu. Obiektami są na przykład ludzie,

państwa, nacje, domy, miasta, zespoły miast.

Przykładów takich można podać jeszcze

bardzo wiele (zarówno obiektów widocznych

„gołym okiem”, jak i obiektów, których

wyodrębnienie jest mniej oczywiste).

background image

Obiektowa rzeczywistość

woda

w.słodka

w.słona

destylowana

rzeki

jeziora

oceany

ryby

delfiny

akumulatory

lekarstwa

może być

może być

może być

zasila

zasila

zasila

zasila

żyją w nich

żyją w nich

żyją w nich

żyją w nich

napełnia się

można użyć
do produkcji

Przykłady różnych związków pomiędzy obiektami.

background image

Obiektowa rzeczywistość, cd.

• Człowiek postrzega rzeczywistość

stosując klasyfikację obiektów względem
różnych pojęć abstrakcyjnych:

Pojęcie 1

Pojęcie 2

Pojęcie 3

Pojęcie n

postrzeganie

abstrakcyjne

ob

ie

kt

y

św

ia

ta

r

ze

cz

yw

is

te

go

...

Rys.2. Mechanizm obiektowego postrzegania rzeczywistości

background image

Podstawowe terminy

pojęcie

jest wyobrażeniem lub oznaczeniem,

które stosujemy dla obiektów w naszej
świadomości. Pojęcie będziemy utożsamiać z

typem obiektowym (klasą obiektów)

,

obiekt

jest egzemplarzem pojęcia,

dziedzina

jest wybranym obszarem

zainteresowań, który zawiera kolekcję
obiektów będących egzemplarzami
dziedziny,

specyfikacja dziedziny

jest kolekcją pojęć

odnoszących się do wybranego obszaru
zainteresowań.

background image

Instensja i ekstensja klasy

obiektów

instensja

typu obiektowego (klasy

obiektów, pojęcia) jest definicją
pojęcia. Jest to pewna koncepcja, idea
stosująca się do określonej grupy
obiektów w naszej świadomości,

ekstensja

typu obiektowego (klasy

obiektów, pojęcia) to zbiór obiektów
danej klasy (pojęcia).

background image

Klasa obiektów w języku

programowania

• współczesne języki programowania, np.

Pascal, Modula2, C++ czy Java
nazywamy językami programowania
zorientowanymi obiektowo (OOP).
Oznacza to, że do środowiska
nieobiektowego wstawiono tzw.
obiektowe rozszerzenie (object
extention)
i w ten sposób umożliwiono
programowanie zgodne z podejściem
obiektowym
.

background image

Klasa obiektów w języku

programowania, cd.

• w językach zorientowanych

obiektowo nadrzędną jednostką
programową jest moduł, w którym
umieszczana jest implementacja
typów i zmiennych obiektowych.

• w językach obiektowych

podstawową jednostką
syntaktyczną i semantyczną
programu jest klasa obiektów.

background image

Klasa obiektów w języku

programowania, cd.

klasa w języku programowania składa

się ze swoich zmiennych i metod.

atrybuty obiektu umożliwiają

przechowywanie zestawu wartości
określających stan obiektu,

metody obiektu są jedynym

interfejsem obiektu z jego
otoczeniem. Mówimy wtedy, że

obiekty są hermetyczne

.

background image

Mechanizmy obiektowości

Obiekt jako dana - wykorzystywane

tak, jak zmienne w językach
programowania,

Ukrywanie informacji - informacja o

wewnętrznej budowie obiektu nie jest
dostępna poza jego definicją,

Hermetyzacja - dostęp do obiektu

wyłącznie za pośrednictwem jego
metod,

background image

Polimorfizm – wielopostaciowość; w terminologii

obiektowej jest to możliwość istnienia wielu metod o tej

samej nazwie, powiązana z możliwością wyboru

konkretnej metody podczas wykonywania (dynamiczne

wiązanie).

Polimorfizm metod - wielopostaciowość metod

obiektów; oznacza możliwość istnienia w danej klasie

wielu metod o tej samej nazwie rozróżnianych po typie

lub liczbie argumentów; powiązana z możliwością

wyboru konkretnej metody podczas wykonywania

(dynamiczne wiązanie). Często jest utożsamiany z

przesłanianiem i przeciążaniem.

Mechanizmy obiektowości, cd.

background image

Przesłanianie – odnosi się do sytuacji, gdy

implementacje metod posiadających tą samą nazwę

znajdują się na różnych poziomach hierarchii

dziedziczenia klas. Metoda zdefiniowana na danym

poziomie drzewa klas przesłania metody zdefiniowane

„wyżej” w drzewie dziedziczenia posiadające tą samą

nazwę. Przesłanianie wymaga dynamicznego wiązania.

Przeciążanie – sytuacja w której ta sama nazwa (lub

symbol) jest użyta dla oznaczenia dwóch lub więcej

funkcji (procedur, operatorów lub metod), rozstrzygnięcie

tej homonimii następuje na podstawie kontekstu jej

użycia (np. typu lub liczby argumentów operacji) .

Mechanizmy obiektowości, cd.


Document Outline


Wyszukiwarka

Podobne podstrony:
języki i metody programowania C2 - podstawowe pojęcia, informatyka, języki i metody programowania C2
Pojęcia podstawowe, excel
Pojęcia podstawowe, Studia, Prawo, Prawo Kanoniczne
1 pojecia podstawoweid 8796
14. Metody nauczania, Teoretyczne podstawy wychowania
Metodyka?dań obiektów architektonicznych 05
1 Kancelaria współczesna pojęcia podstawowe
Pojęcie, Podstawy ubezpieczeń, Podstawy ubezpieczeń
Pojęcia podstawowe w układach trójfazowych, POLITECHNIKA LUBELSKA w LUBLINIE_
Z chaosu, Ergonomia-pojecia podstawowe, 1-1
Pojęcia podstawowenowotwory
Pojęcia podstawowe 2
32 Porównaj znane Ci metody?dania obiektów wysmukłych, wskaż podobieństwa oraz różnice, wymień zale
Metodologia w VIII, WYBRANE METODY ANALIZY WIELOZMIENNOWEJ - PODSTAWOWE ZAŁOŻENIA ANALIZY CZYNNIKOWE

więcej podobnych podstron