1.13k likes | 1.28k Views
Objektum-orientált programozás. Készítette: Ormos László. Felhasznált irodalom. Benkő Tíborné - Kiss Zoltán - Dr.Tamás Péter - Tóth Bertalan: Programozás Borland Pascal 7.0 rendszerben - DPMI Windows, Computer Books, Budapest, 1995.
E N D
Objektum-orientált programozás Készítette: Ormos László
Felhasznált irodalom Benkő Tíborné - Kiss Zoltán - Dr.Tamás Péter - Tóth Bertalan: Programozás Borland Pascal 7.0 rendszerben - DPMI Windows, Computer Books, Budapest, 1995. Dr.Kondorosi Károly - Dr.László Zoltán - Dr.Szirmay-Kalos László: Objektum-orientált szoftverfejlesztés, Computer Books, Budapest, 1997. Benkő Tíborné - Benkő László - Dr.Gyenes Károly - Dr.Komócsin Zoltán: Objektm-orientált programozás Turbo Pascal nyelven 7., Computer Books, Budapest, 1997.
A programfejlesztés folyamata A fejlesztés lépései: • modellezés, • tervezés, • implementáció.
A programfejlesztés folyamata Reprezentáció az adatok adott szabályok szerint történő ábrázolása. Absztrakció a környezet általánosítható jellemzőinek kiemelése, elkülönítése az egyedi tulajdonságoktól. Dekompozíció a rendszer olyan együttműködő, kis feladatokat teljesítő egységekre történő felbontása, amelyek együttesen az eredeti rendszernek megfelelő viselkedést eredményezik.
A programfejlesztés folyamata A programfejlesztés lépései: • modellezés: a környezet tudati leképezése, • analízis: a leképezés működésének elemzése, • tervezés: a leképezésszerkezeti felépítésének kidolgozása, • leképezés: a tudati modell és a szerkezeti felépítés megfeleltetése, • implementáció: a szerkezeti felépítés adott szabályok szerinti megvalósítása.
A programfejlesztés folyamata Vízesésmodell analízis architekturális tervezés részletes tervezés kódolás integrálás tesztelés
A programfejlesztés folyamata Inkrementális fejlesztési modell Első fejlesztési ciklus 1. változat 1. változat 2. változat n. változat 3. változat
A programfejlesztés folyamata Spirál modell Alternatívák értékelése Kockázat elemzés Célok meghatározása Értékelés, új ciklus indítása Megvalósítás, tesztelés
Procedure A Procedure C Procedure B Procedure D Strukturált programozás • áttekinthető programszerkezet, • tervezés rétegenként, • moduláris programozás, • hordozhatóság
Az objektum-orientált programozás kialakulása Az objektum • bármi lehet, ami pontosan körülhatárolható, • valós vagy absztrakt, azonosítható és egyedi, • a vizsgált környezet jól meghatározott része, • kölcsönhatásban van más objektumokkal, • jellemzők rá a benne értelmezett műveletek és a vele végzett műveletek hatására keletkezett állapotok.
Az objektum-orientált programozás kialakulása Az objektumegy rendszerazonosítható része, amely a külvilág felé mutatott viselkedésével, belső struktúrájával és állapotával jellemezhető. Az objektumtulajdonságaira csak viselkedéséből lehet következtetni, nem látható szerkezeti felépítése, belső működése.
Az objektum Minden objektumnak maradéktalanul teljesítenie kell feladatát. A lokális felelősség elve: minden objektum felelős önmagáért.
Az objektum Egy nyomtatónak a programja: void print(file){ switch kind_of (file){ case ascii: print_ascii(file;break; case msword20: print_msword20(file;break; case tiff: print_tiff(file);break; case … } }
Az objektum A nyomtatni kívánt állománynak mint objektumnak tartalmaznia kell saját szerkezeti jellemzőit. A nyomtatónak mint objektumnak a felelőssége a definiált interfész és az emuláció pontos végrehajtása.
Az objektum Az objektum viselkedése: • aktív: folyamatosan működik, aktivizál más objektumokat, • paszív: csak környezete hatására jön működésbe.
Az objektum Üzenetek az objektumok között: • adatcsere: kommunikáció az objektum és környezete között, • vezérlés: lehetőség a passzív objektumok aktivizálására. Az üzenet felépítése: • név: az objektum azonosítója, • paraméterek: az objektum működését meghatározó adatok (újabb objektum is lehet).
Az objektum Az események az objektumok kölcsönhatását modellezik. Az eseményeket az objektumok okozzák. • Van-e az eseménynek címzettje? • Reagálhat-e egy objektum az eseményre? • Egyszerre hány objektum reagálhat az eseményre?
Az objektum Egy objektum az üzenet hatására az üzenet azonosítója, neve által meghatározott metódus végrehajtásával reagál. • Üzenet: mit kell csinálnia a megcímzett objektumnak, • Metódus: hogyan kell végrehajtani a feladatot.
Az objektum Az objektum jellemzője az üzenet hatására végrehajtott művelet után felvett állapota. Az objektum állapotát az attribútum tartalmazza, amely a struktúrát adott pillanatban kitöltő értékek halmaza.
osztály objektumok (példányok) tanuló (tanuló) Jancsika (tanuló) Juliska (tanuló) Piroska Az objektum A megegyező struktúrájú és viselkedésű objektumok csoportját osztálynak nevezzük. Az objektum az osztály egy példánya.
(tanuló) Jancsika 7 tanuló név: text kor: integer (tanuló) Juliska 6 (tanuló) Piroska 6 Az objektum Az osztálynak és objektumainak ábrázolása attribútumokkal együtt:
Az objektum Demeter-törvény Az objektumok és környezetük közötti csatolást gyengíteni kell. A csatolás akkor a leggyengébb, ha egy objektum metódusain belül csak • a metódus paramétereire és eredményére, • a metódust tartalmazó osztály attribútumaira, • a program globális változóira, • a metódusban definiált lokális változókra történik hivatkozás.
Az objektum Az objektum típusa A típus egy objektum-halmaz viselkedését specifikálja, az osztály pedig a típus által meghatározott viselkedést imlementálja. A kompatibilitás Két típus akkor kompatíbilis, ha az egyik típusú objektum bármikor és bárhol alkalmazható, ahol a másik típusú objektum használata megengedett.
Az objektum Típus ábrázolás állat Vízi_állat madár emlős cet ponty varjú kutya veréb
Az objektum Az objektum-változó olyan szerkezet, amely objektum-példányt tartalmaz. Az objektum-változó értékeket vehet fel, vagy meghatározott üzeneteket kaphat. A változónak küldött üzenetet a változóban éppen jelen lévő objektum kapja meg.
Modellezés objektumokkal 1. Az objektummodell leírja a rendszerben lévő objektumok struktúráit, attribútumait és metódusait. 2. A dinamikus modell a rendszer időbeli viselkedését írja le. 3. A funkcionális modell a rendszer által végrehajtott adatátalakításokat jeleníti meg.
Az objektummodell Attribútumok: az objektum tulajdonságait és állapotát meghatározó objektumban tárolt adatok, melyek lehetnek • egyszerű, • összetett, • közvetlen adatok, • referenciák.
Az objektummodell • Relációk és a láncolás: • a reláció az objektumok illetve osztályok közötti kapcsolat, amelyek lehetnek • bináris relációk, • többes relációk; • a láncolás az objektum példányok közötti logikai vagy fizikai kapcsolat, amely lehet • asszociáció, • szerepek.
Az objektummodell • Normalizálás: • Egy objektum attribútumait úgy célszerű megválasztani, hogy azok az objektum egészére legyenek jellemzőek. • Szükség esetén az adatbázis-kezelés normalizálási szabályait használjuk fel az objektumok attribútumai között fenálló relációk vizsgálatára.
Az objektummodell • Az öröklés olyan implementációs és modellezési eszköz, amely lehetővé teszi, hogy egy osztályból olyan újabb osztályokat származtassunk, amelyek az eredeti osztályban már definiált szerkezettel, tulajdonságokkal és viselkedéssel rendelkeznek. • Alapfogalmak • alaposztály, amelyből örököltünk, • származtatott osztály, amely örökölt.
Az objektummodell Többszörös öröklés Ha egy új osztályt definiálunk, amely két vagy több létező osztályra épül, akkor többszörös öröklésről beszélünk. Hátránya, hogy az implementáció nehezebb, és a fogalmi tisztaság csökkenhet. 1. osztály 2. osztály 3. osztály A_metódus C_metódus B_metódus B_metódus D_metódus E_metódus E_metódus F_metódus
Az objektummodell • Komponens-reláció A komponens- vagy tartalmazás reláció az asszociáció speciális esete. A komponens-reláció struktúrája: • rögzített - a komponens objektumok száma és típusa előre definiált, • változó - a szintek száma és az objektumok típusa meghatározott, a komponens-objektumok száma pedig változó, • rekurzív - az objektum közvetve vagy közvetlenül tartalmazza önmagát, a lehetséges szintek száma végtelen.
Az objektummodell • Metaosztály Az objektumot leíró osztály egyben maga is objektum, és lennie kell egy olyan osztálynak, amelynek maga is példánya: ez a metaosztály.
Dinamikus modellek • Események és állapotok • Az esemény egyedi, és eseményosztályba sorolható struktúrája és szemantikája alapján. • Minden esemény egyirányú kapcsolatot jelöl a küldő és a cél objektum között. • Az esemény bekövetkezésének időpontja az esemény implicit attribútuma.
Dinamikus modellek • A rendszer működése jól definiált események sorozatával, a forgatókönyvvel jellemezhető. • Az események sorrendje oksági rendet tükröz. • Minden esemény egy üzenet egyik objektumtól a másikhoz való küldését jelenti. • Az esemény sorrend és az üzenetváltásban résztvevő objektumok kommunikációs diagramban ábrázolhatók.
megrendel szállít átvesz Ügyfél Címzett Bank Szállító számláz utalványoz értesít értesít Dinamikus modellek • Egy kommunikációs diagram:
megrendel szállításra vár határidő átvesz értesít selejtez teljesít pénzt vár könyvel Dinamikus modellek • Az állapotdiagram • események és állapotok sorozatát: az állapotgép működését tartalmazza, • mindig egy egész osztály viselkedését írja le. Egy általános szolgáltatás állapotmodellje:
Dinamikus modellek • Az állapotgép működése: • 1.állapot-ba történő belépésnél • A akció, majd az aktivitás végrehajtása, • ha esemy esemény bekövetkeztekor a feltétel fennáll, akkor aktivitás végrehajtása megszakad, • B akció ésD akció után átlépés 2.állapotba. • Ha 1.állapot-ban • esemx megszakította az aktivitás végrehajtását, • végrehajtotta C akció-t és visszatér 1.állapot-ba.
1. állapot 2. állapot do:aktivitás entry/A akció exit/B akció esemx/C akció esemy(attribútum)/[feltétel]/D akció Dinamikus modellek Az állapotgép működése:
Dinamikus modellek • Beágyazott állapotmodellek Egy adott állapotban előírt aktivitás beágyazott állapotdiagrammal specifikálható. A beágyazott modell (almodell) akkor működik, ha a befoglaló modell (főmodell) állapotához tartozó aktivitás végrehajtása megkezdődik. • Az almodell állapotai megfelelnek a főmodell állapota finomításának. • A főmodellre vonatkozó események az almodell valamennyi állapotában egyformán értelmezett közös események.
A funkcionális modell A funkcionális modell leírja, hogy • mi történik a rendszerben, • miként lehet a bemeneti adatokból a kimenet értékeit meghatározni. Specifikálja • a modellben szreplő metódusokat, • a dinsmikus modell akcióit és tevékenységét.
A funkcionális modell • Adatfolyam-ábra A funkcionális modell adatfolyam-ábrák halmaza, amelyek a műveleteket és korlátozásokat specifikálják. Az adatfolyam-ábra egy gráf, amelynek • élei az adatutak, • csomópontjai pedig • adattranszformáló folyamatok, • adattárak, • adatforrások és adatnyelők.
A funkcionális modell • Adatszótár Összetett az egyszerűbb adatok kompozíciójaként létrehozott adat. Komozíciós elvek: • szekvencia: az egyes adatelemek sorrendje, • szelekció: a felsorolt adatok közül kizárólagosan egynek a kiválasztása, • iteráció: az azonos adatelemek ismétlődése.
A funkcionális modell • Folyamat-specifikáció • szöveges leírás, • pszeudo-kód, • folyamatábra, • döntési tábla, • döntési fa.
A funkcionális modell • Modell kapcsolatok A funkcionális modell folyamatai megfeleltethetők az objektummodell műveleteinek. A célobjektum a paraméterként kapott objektumok kliense, mivel a célobjektum használni fogja azokat a metódus végrehajtása során. A felhasznált objektumok a kiszolgálók (szerverek). A kliens-szerver viszony implementációs függőséget definiál az osztályokon.
A fejlesztés módszere Analízis • A feladatdefiníció: • a feladat körvonalainak, korlátainak vizsgálata, • az igények és elvárások vizsgálata, • az alkalmazási környezet vizsgálata, • a teljesítmény, a megbízhatóság és a prioritások vizsgálata, • a fejlesztési előírások tanulmányozása.
A fejlesztés módszere • Objektum modellezés: • az objektumok és osztályok azonosítása • redundáns osztályok, • irreleváns osztályok, • határozatlan osztályok, • attribútumok, • műveletek, • szerepek, • implementációs fogalmak és eszközök.
A fejlesztés módszere • az osztályok azonosítása CRC-kártyákkal: • osztály Class, • felelősség Responsibility, • együttműködők Collaborators. (alkalmazott módszer a „brain-storming”)
alkalmaz Alkalmazott Cég Személyes használatban birtokol Eszköz A fejlesztés módszere • az asszociációk azonosítása: • fizikai elhelyezkedés, • cselekvések, • kommunikáció, • birtoklás, • megfelelés előírt feltételeknek.
A fejlesztés módszere • az attribútumok azonosítása: • az objektum tulajdonságát fejezi ki, • csak az alkalmazás szempontjából fontos attribútumokat kell meghatározni, • kerülni kell az attribútumok közötti funkioális függőséget.