22
1 Objektumorientált elemzés és tervezés - Alapfogalmak 2009.09.0 1. Gyurkó György Objektumorientált elemzés és tervezés Alapfogalmak

Gyurkó György

Embed Size (px)

DESCRIPTION

Objektumorientált elemzés és tervezés. Alapfogalmak. Gyurkó György. Amiben az OO megközelítés különös. Feltalálta a szoftverépítés, az absztrakció (vele az elrejtés), az újrafelhasználás - PowerPoint PPT Presentation

Citation preview

Page 1: Gyurkó György

1Objektumorientált elemzés és tervezés - Alapfogalmak2009.09.01.

Gyurkó György

Objektumorientáltelemzés és tervezés

Alapfogalmak

Page 2: Gyurkó György

2Objektumorientált elemzés és tervezés - Alapfogalmak2009.09.01.

Amiben az OO megközelítés különös

Feltalálta a szoftverépítés, az absztrakció (vele az elrejtés), az újrafelhasználás optimális alapegységét az objektumot (típusszinten az osztályt); és arra ráépített néhány igen hasznos konstrukciót (öröklődés, polimorfizmus).

Page 3: Gyurkó György

3Objektumorientált elemzés és tervezés - Alapfogalmak2009.09.01.

Az objektum(a szerkezet és a viselkedés egysége)

bankszámlabankszámlaszámszámlatulajdonos-névpénznemkamatlábegyenleg

attribútumok, azaz a szerkezet

befizetéskivételkamatjóváíráskamatterhelésegyenleg-lekérdezés

műveletek (metódusok), azaz a viselk edés

Page 4: Gyurkó György

4Objektumorientált elemzés és tervezés - Alapfogalmak2009.09.01.

Osztály (= típus)

Az osztály: egyrészt a bele tartozó objektumok

halmaza, másrészt a közös vonásokat (a közös

sémát) hordozó kategória.

Azonos osztályba tartoznak az azonos szerkezetű és viselkedésű objektumok.

Page 5: Gyurkó György

5Objektumorientált elemzés és tervezés - Alapfogalmak2009.09.01.

Osztály és példányaOsztály Objektum az osztályból

Bankszámla bankszámla1:Bankszámla

bankszámlaszámszámlatulajdonos-névpénznemkamatlábegyenleg

bankszámlaszám: 10023401számlatulajdonos-név: Kiss Józsefpénznem: HUFkamatláb: 15egyenleg: 515.879

befizetéskivételkamatjóváíráskamatterhelésegyenleg-lekérdezés

Példá-nyosítás

Page 6: Gyurkó György

6Objektumorientált elemzés és tervezés - Alapfogalmak2009.09.01.

Megjegyzések:

Egy objektum tökéletes másolata egy új objektumot képez. - Tehát bár két objektum minden attribútum-értékében azonos mégis két különböző objektum.

Következmény: Az objektum nem azonosítható valamely attribútumával.

Minden objektumnak belső azonosítója van, ami a memóriában mutatóra (memóriacímre) képeződik le.

Page 7: Gyurkó György

7Objektumorientált elemzés és tervezés - Alapfogalmak2009.09.01.

Általánosítás és specializáció

Tárgyi eszköz

Ingatlan Jármű Berendezés

Ált

alá

nos í

t ás -

- -- -

- -- -

> <- -

- -- -

- --

Speci

ali z

áci

ó

Page 8: Gyurkó György

8Objektumorientált elemzés és tervezés - Alapfogalmak2009.09.01.

Tárgyi eszköz

leltári számbruttó értéknettó értékleírási módleírási kulcs

főosztály(ősosztály)

értékcsökkenés Ingatlan

leltári számbruttó értéknettó értékleírási módleírási kulcshelységnévhelyrajzi számterület

Ingatlan alosztály értékcsökkenés

helységnévhelyrajzi számterület

(utód osztály,leszármazott osztály)

Az alosztálytényleges teljessémája (az örö-költ + saját)

Az öröklődés

Page 9: Gyurkó György

9Objektumorientált elemzés és tervezés - Alapfogalmak2009.09.01.

Az öröklődés(folytatás)

Analitikus öröklődés Utódnál: plusz attribútum vagy plusz művelet

vagy valamely műveletének más a megvalósítása

Korlátozó öröklődés Az utódnál valamely attribútum vagy művelet nem értelmezhető. Pl. a négyzet (mint a téglalap utódja) esetén az egyik oldallal párhuzamos nyújtás. (A szoftvertervezésben általában kerülendő!)

Page 10: Gyurkó György

10Objektumorientált elemzés és tervezés - Alapfogalmak2009.09.01.

Megjegyzés:

Az öröklődés az újrafelhasználás egyik módja.

Minimális redundancia a tervezésben - egyértelműség

Page 11: Gyurkó György

11Objektumorientált elemzés és tervezés - Alapfogalmak2009.09.01.

PolimorfizmusAz ős egy művelete új metódust (megvalósítást) kap az utódnál, valamely attribútum új értelmezést kap.Mérhető sí kidom

Terület()

Téglalap Körx1,y1,x2,

x,y,r

y2 Terület()Terület()

Page 12: Gyurkó György

12Objektumorientált elemzés és tervezés - Alapfogalmak2009.09.01.

Megjegyzés:

A polimorfizmus teljessé teszi az elrejtést. Elrejti azt a tényt, hogy azonos műveletnek különböző osztályoknál más a megvalósítása.

Szilárd, hordozható alkalmazás.

A polimorfizmus következménye: A program egy változója futási időben a programkódban adott típusának (=sztatikus típusának) bármely leszármazott osztályából vett példányt hivatkozhat (=dinamikus típus).

Page 13: Gyurkó György

13Objektumorientált elemzés és tervezés - Alapfogalmak2009.09.01.

A polimorfizmus haszna:idomA: Téglalap;

idomB: Kör;

IF idomA.Terület() < idomB.Terület() THEN …

Ugyanez polimorfizmus nélkül:

idomA: Téglalap;

idomB: Kör;

IF Tégla_Terület(idomA) < Kör_terület(idomB) THEN …

Az utóbbi kód érzékeny arra, ha egy téglalap helyett kört (vagy fordítva) kell venni.

Az objektumorientált kódot akkor sem kell módosítani, ha a valamelyik objektum egy később definiált osztályba tartozik (pl. háromszög).

Page 14: Gyurkó György

14Objektumorientált elemzés és tervezés - Alapfogalmak2009.09.01.

Absztrakt osztályCsak olyan objektumok tartoznak bele, amelyek valamely alosztályának is példányai. (Nincsenek közvetlen példányai.)

Absztrakt művelet:A műveletnek az ős osztálynál nincs megvalósítása (metódusa), az csak az alosztályokban rendelődik a művelethez. – A műveletet csak azért tüntetik fel a magasabb osztály szintjén, hogy utaljanak arra a legszélesebb objektumhalmazra, amire a művelet értelmezhető. (Java: Van legalább egy absztrakt művelete.)

Page 15: Gyurkó György

15Objektumorientált elemzés és tervezés - Alapfogalmak2009.09.01.

Példányattribútum: Minden példányra új másolat jön létre belőle.

Osztályattribútum: Az osztály egy példányban létezik.

Osztály attribútumai: példányattribútumok + osztályattribútumok.

Példányművelet: Példány hajtja végre. Közvetlenül példányattribútumokat kezel.

Osztályművelet: Osztály hajtja végre. Közvetlenül csak osztályattribútumokat ér el.

Konstruktor: Ez hozza létre az osztály egy új példányát, és beállítja annak kezdeti állapotát. (Se nem osztályművelet, se nem példányművelet.)

Nem példányosodó osztály: Akár közvetlenül, akár örökölten csak osztályattribútumai és osztályműveletei vannak.

Page 16: Gyurkó György

16Objektumorientált elemzés és tervezés - Alapfogalmak2009.09.01.

Az újrafelhasználás esetei

• Példányosítás

• Öröklődés (kiegészülve a polimorfizmussal)

• Kész objektumok újrafelhasználása

Page 17: Gyurkó György

17Objektumorientált elemzés és tervezés - Alapfogalmak2009.09.01.

Objektumok kapcsolataiAsszociáció

Az asszociáció olyan kapcsolat, ami kifejezésre jut az egyik vagy mindkét objektum szerkezetében: Az egyik objektumot vagy annak mutatóját attribútumként tartalmazza a másik objektum szerkezete.

Rendeléstétel 0..n 1 Cikk

rendeltCikk

Rendeléstétel Cikk

Rendelésszám 0..1 1

rendeltCikk

Page 18: Gyurkó György

18Objektumorientált elemzés és tervezés - Alapfogalmak2009.09.01.

Objektumok kapcsolatai Asszociáció (folytatás)

apa

0..1

Személy apa-fiú

0..n

fiú

Kapcsolat

• neve (+szerepnevek)

• multiplicitása

• navigáció iránya (láthatóság)

• minősítése

Page 19: Gyurkó György

19Objektumorientált elemzés és tervezés - Alapfogalmak2009.09.01.

Objektumok kapcsolataiAggregáció és kompozíció

Könyvtár 0..n Fájl

Könyv 0..n Fejezet

Általában a kompozíciónak közvetlen attribútuma a komponens.

Általában az aggregációnak a részobjektum mutatója képezi egy attribútumát.

Page 20: Gyurkó György

20Objektumorientált elemzés és tervezés - Alapfogalmak2009.09.01.

Objektumok (osztályok) kapcsolatai

Függőség

Ez a kapcsolat nem látszik az osztályok szerkezetéből.

SzolgáltatóOsztály

ÜgyfélOsztály

// Nincs SzolgáltatóOsztály típusú attribútuma,// sem ilyenre mutató attribútuma+ egyMuvelet // Van egy SzolgáltatóOsztály típusú

//belső változója

Page 21: Gyurkó György

21Objektumorientált elemzés és tervezés - Alapfogalmak2009.09.01.

Megjegyzések:

Egy OO alkalmazás (program) nem utasítások sorozata, hanem objektumok együttműködése.

Az objektumok közötti kapcsolat mindig azt jelenti, hogy az egyik objektum (az ügyfél = a kliens) használja a másikat (a szolgáltatót = a szervert).

Az ügyfél objektumnak „látni” kell a szolgáltató objektumot, különben nem tudja felkérni a szolgáltatásra. - Ha két objektum kölcsönösen használja egymást, akkor kölcsönösen látniuk kell egymást.

Egy x objektum általában úgy látja az y objektumot, hogy az x-nek egyik attribútuma vagy maga az y, vagy az y mutatója.

Page 22: Gyurkó György

22Objektumorientált elemzés és tervezés - Alapfogalmak2009.09.01.

Osztály1

müvelet1() : Osztály1

Osztály2

müvelet2( p : Osztály1)

Osztály3

müvelet3()

Osztály4

Osztály5

müvelet4()

Osztály6

+attr : ...

A müvelet3 használ egy Osztály1 típusú belsõ

változót.

A müvelet4 osztálymüvelet használja az Osztály5 egy

publikus osztályattribútumát.

Osztályok közötti függőségek