1 / 110

Objektum-orientált programozás

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.

shino
Télécharger la présentation

Objektum-orientált programozás

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Objektum-orientált programozás Készítette: Ormos László

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

  3. A programfejlesztés folyamata A fejlesztés lépései: • modellezés, • tervezés, • implementáció.

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

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

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

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

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

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

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

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

  12. Az objektum Minden objektumnak maradéktalanul teljesítenie kell feladatát. A lokális felelősség elve: minden objektum felelős önmagáért.

  13. 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 … } }

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

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

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

  17. 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?

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

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

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

  21. (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:

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

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

  24. Az objektum Típus ábrázolás állat Vízi_állat madár emlős cet ponty varjú kutya veréb

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

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

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

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

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

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

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

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

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

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

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

  36. 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:

  37. 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:

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

  39. 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:

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

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

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

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

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

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

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

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

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

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

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

More Related