gyurkó györgy
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 PresentationTRANSCRIPT
1Objektumorientált elemzés és tervezés - Alapfogalmak2009.09.01.
Gyurkó György
Objektumorientáltelemzés és tervezés
Alapfogalmak
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).
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
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.
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
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.
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
ó
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
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ő!)
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
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()
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).
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).
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.)
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.
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
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
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
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.
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
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.
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