Objektum-orientált programozás

Slides:



Advertisements
Hasonló előadás
Összefoglalás Hardver,szoftver,perifériák Memóriák fajtái
Advertisements

ADATBÁZISOK.
A normalizálás az adatbázis-tervezés egyik módszere
C++ programozási nyelv Gyakorlat hét
EE/R adatmodell (Extended E/R) 1 Az objektum orientált szemlélet elterjedésével egyre nőtt az igény az olyan SDM (Semantic Data Model) modellek iránt,
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke A programozás alapjai 1. (VIEEA100) 9. előadás.
© Kozsik Tamás Beágyazott osztályok A blokkstrukturáltság támogatása –Eddig: egymásba ágyazható blokk utasítások Osztálydefiníciók is egymásba.
13.a CAD-CAM informatikus
Programozás alapjai.
OBJEKTUMORIENTÁLT PROGRAM
Bevezetés a Java programozásba
Vizuális modellezés Uml és osztálydiagram UML eszközök
Programozás II. 3. Gyakorlat C++ alapok.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.
SZÁMÍTÓGÉP ARCHITEKTÚRÁK
A Java programozási nyelvSoós Sándor 1/17 Java programozási nyelv 4. rész – Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
Java programozási nyelv 2. rész – Vezérlő szerkezetek
Modellezés és tervezés c. tantárgy Óbudai Egyetem Neumann János Informatikai Kar Alkalmazott Matematikai Intézet Mérnöki Informatikus MSc 9. Előadás és.
1. előadás. 1.) Szoftverfejlesztés, mint mérnöki tevékenység. Számítási eszközfejlődés. Számítási eszközfejlődés: hazai viszonyok. Mérföldkő: Simula 67.Klasszikus.
1. előadás. 1.) Szoftverfejlesztés, mint mérnöki tevékenység. Számítási eszközfejlődés. Számítási eszközfejlődés: hazai viszonyok. Mérföldkő: Simula 67.Klasszikus.
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
Megvalósíthatóság és költségelemzés Készítette: Horváth László Kádár Zsolt.
© Kozsik Tamás Csomagok. © Kozsik Tamás A program tagolása Típusdefiníciók (osztályok, interfészek) Metódusok Blokk utasítások Csomagok.
Szoftvertechnológia Rendszertervezés.
WEB MES (webes gyártásirányító rendszer) Kiss Miklós (G-5S8)
Bevezetés a C++ programozási nyelvbe
Objektumok. Az objektum információt tárol, és kérésre feladatokat hajt végre. Az objektum adatok (attribútumok) és metódusok (operációk,műveletek) összessége,
Adatfolyam modellezés az SSADM-ben
Anyagadatbank c. tárgy gyakorlat Féléves tematika Adatbázis alapfogalmak, rendszerek Adatmodellek, adatbázis tervezés Adatbázis műveletek.
Objektumorientált tervezés és programozás II. 3. előadás
Alprogramok deklarációja, definíciója és meghívása Páll Boglárka.
Adatszerkezetek 1. előadás
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT
Programtesztelés. Hibák keletkezésének okai nem egyértelmű vagy hiányos kommunikáció fejlesztés közben maga a szoftver bonyolultsága programozói (kódolási)
Hernyák Zoltán Programozási Nyelvek II.
Hernyák Zoltán Programozási Nyelvek II.
Javascript Microsoft által készített kiegészítése Statikus típusosság Nagy projektek Windows 8 fejlesztésénél WinRT egy részét ebben írták Nyílt forráskódú,
Objektumorientált programozás
Objektumorientált tervezés
Objektumorientált tervezés Út az objektumig Az objektum fogalma, jellemzői Objektummal kapcsolatos fogalmak Hardverfogalmak A rendszer modell nézetei Objektumorientált.
11. tétel Adatbázis táblái közti kapcsolatok optimalizálása
Komponens-absztrakció. Objektum-orientált paradigma korlátai Feltételezés az interfészekről: 1. öröklés és aggregáció alkalmazható, 2. közös programozási.
Termelő-fogysztó modell. A probléma absztrakt megfogalmazása: informális leírás. Adott egy N elemű közösen használt tároló, N  1. Adott a folyamatoknak.
Egyenesvonalú (lineáris) adatszerkezetek
1 Objektum orientált programozás Modellezés objektumokkal Nagy Szilvia.
1 Objektum orientált programozás Öröklődés: többszörös öröklődés, konstruktorok, destruktorok, overloading Nagy Szilvia.
Objektumvezérelt rendszerek tervezése
Adamkó Attila UML2 Adamkó Attila
A Visual Basic nyelvi elemei
Gyurkó György. Az állapotmodellezés célja Általánosságban ugyanaz, mint a többi dinamikus modellezési technikáé: Jobban megismerni a problémát. Finomítani.
Programozás, programtervezés
UML modellezés 3. előadás
Adatbáziskezelés. Adat és információ Információ –Új ismeret Adat –Az információ formai oldala –Jelsorozat.
Algoritmizálás, adatmodellezés
Haladó C++ Programozás Programtervezési minták – alapok Sonkoly Balázs
1 Objektum orientált programozás Az objektumok és az osztályok – példányosodás Nagy Szilvia.
5. előadás Parametrikus polimorfizmus. Generikus programozás. Az Ada sablonok.
Félcsoport (semigroup) = ({s},{ *: s s  s [infix]}. semigroup is a type specification = sorts: s oprs: *: s s  s [infix] eqns: m 1, m 2, m 3  s (m 1.
Adatszerkezetek és algoritmusok 2008/ Algoritmus Az algoritmus szó eredete a középkori arab matematikáig nyúlik vissza, egy a i.sz. IX. században.
Adatbázisszintű adatmodellek
A szoftver mint komplex rendszer: objektumorientált megközelítés.
Programozási nyelvek csoportosítása.
Strukturális tervezési minták
Adatstruktúrák Algoritmusok Objektumok
Programozási alapok.
Programozási nyelvek típusossága.
Operációs rendszerek.
Hernyák Zoltán Programozási Nyelvek II.
Algoritmus készítés.
Előadás másolata:

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és szerkezeti 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

Strukturált programozás áttekinthető programszerkezet, tervezés rétegenként, moduláris programozás, hordozhatóság Procedure A Procedure B Procedure D Procedure C

Az objektum-orientált programozás kialakulása 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 objektum egy rendszer azonosítható része, amely a külvilág felé mutatott viselkedésével, belső struktúrájával és állapotával jellemezhető. Az objektum tulajdonsá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.

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ó (tanuló) Jancsika Juliska Piroska objektumok (példányok) osztály

Az objektum Az osztálynak és objektumainak ábrázolása attribútumokkal együtt: tanuló név: text kor: integer (tanuló) Jancsika 7 Juliska 6 Piroska

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.

Dinamikus modellek Egy kommunikációs diagram: Ügyfél Címzett Bank Szállító megrendel utalványoz szállít átvesz számláz értesít

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: szállításra vár teljesít pénzt vár könyvel megrendel határidő átvesz értesít selejtez

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ó és D 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.

Dinamikus modellek Az állapotgép működése: 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 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”)

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. Cég Alkalmazott Eszköz alkalmaz birtokol Személyes használatban

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.

A fejlesztés módszere az öröklési hierarchia létrehozása: alaposztályok keresése (alulról felfelé) attribútumok és metódusok összehasonlítása alapján, származtatott osztályok képzése (fentről lefelé) új attribútumok és metódusok alapján. Az attribútumokat és az asszociációkat mindig a legáltalánosabb osztályhoz kell rendelni.

A fejlesztés módszere az objektum modellezés termékei: objektum modell: egy osztálydiagramból és objektumdiagramokból áll, osztályleírás: név, felelősségek, példányok, alaposztályok, komponensek, változók, relációk.

A fejlesztés módszere Dinamikus modellezés a forgatókönyv a rendszer vezérlési és sorrendi kérdéseit tartalmazza, forgatókönyvek összeállítása: események keletkezés helye, észlelése, eseménylisták.

A fejlesztés módszere kommunikációs diagramok felvétele kommunikációs modell: az objektum-objektum kapcsolatok időbeli alakulásának leírása, kommunikációs diagramok, üzenetek, aktiváló események.

A fejlesztés módszere állapotmodellek készítése az állapotmodell egy objektum események hatására kialakuló belső állapotait és az események hatására küldött üzeneteit írja le, az állapotmodell felépítése a kommunikációs diagramok alapján történik, finomítás.

A fejlesztés módszere eseményfolyam-diagram készítése az eseményfolyam-diagram az osztályok viselkedését, kapcsolódási felületét pntosítja, a dinamikus modell finomítása az analízis eredményei alapján: név, szolgáltatások, konkurencia, perzisztencia, teljesítmény.

A fejlesztés módszere Funkcionális modellezés funkciólista összeállítása, bemeneti és kimeneti adatok összegyűjtése, kontextus-diagram készítése, fizikai adatfolyam-ábra készjtése, logikai adatfolyam-ábra készjtése, rendszerhatár kijelölés.

A fejlesztés módszere Objektumorientált tervezés 1. Architektúrális tervezés. 2. Külső illesztés tervezése a környezettel való kapcsolattartáshoz. 3. Objektumtervezés az osztályok és objektumok specifikálásával.

A fejlesztés módszere Architektúrális tervezés alrendszerek és modulok kialakítása a logikailag összetartozó definíciók egyetlen implementációs egységbe tartoznak, az illesztések definícióját a modul- és alrendszerinterfész fájlokban kell megadni, a könyvtárak és modulok az architektúra kialakításában megváltoztathatatlan peremfeltételek.

A fejlesztés módszere Többprocesszoros és multiprogramozott rendszerek a program egy vagy több processzoron is futtatható, multiprogramozott rendszer esetében több párhuzamos folyamat (task) alkotja a programot, alrendszerek processzorokhoz rendelése esetén hardver- és szoftverkomponensek, teljesítmény igény, fizikai kapcsolatok.

A fejlesztés módszere A vezérlési és ütemezési szerkezet felépítése a vezérlést a dinamikus modell határozza meg, ütemezési stratégiák az erőforrások megosztására: nem preemptív stratégia: erőforrás átadás időzítéssel, preemptív stratégia: erőforrások védelme „szemaforokkal”.

A fejlesztés módszere a fizikai adatszerkezet implementációja az objektum belső állapotát attribútumainak pillanatnyi értéke határozza meg, perzisztens objektumok tárolása, objektum eléréséhez keresési eljárások, reláiós és objektumorientált adatbázisok objektumok tárolására. Az objektumorientált adatbázisok az objektumorientált elvek közvetlen alkalmazásai.

A fejlesztés módszere határállapotok megvalósítása a program lehetséges határállapotai: inicializálás, leállítás, katasztrófális hibaállapot, applikációs objektum a határállapotok tárolására.

A fejlesztés módszere Külső illesztés tervezése Programvezérelt illesztés könnyen implementálható, passzív külső adatforrások, a vezérlés a programon belül marad, Eseményvezérelt illesztés a vezérlést eg aktív elosztó objektum látja el, az eseményekhez kapcsolódó metódusok az eseménykezelők vagy triggerek.

A fejlesztés módszere Megjelenési modell képernyő felületek megjelenése, beavatkozó szervek formája és jelentése, a sémákban egyszerre látható, bevihető adatok és a köztük lévő relációk leírása, a képernyősémák közötti navigációs lehetőségek leírása, sémákon belüli állapottér-modell a felhasználói beavatkozás értelmezésére.

A fejlesztés módszere Objektumtervezés 1. Az objektum valamint a dinamikus és funkcionális modellek kombinációja: osztályok deklarációja, attribútumok és metódusok deklarációja. 2. Az üzenet algoritmusok valamint az implementációs adatstruktúrák kiválasztása. 3. Az asszociációk tervezése. 4. A láthatóság biztosítása: más objektumokra való hivatkozás, objektumok közötti üzenetváltás.

A fejlesztés módszere 5. Illesztés nem objektum-orientált környezethez. 6. Az ütemezési szerkezet kialakítása párhuzamosság feloldása egy processzor esetén, objektumok processzorhoz rendelése több processzoros rendszer esetén. 7. Optimalizálás. Az objektumtervezés eredménye az osztálydefiníciókat tartalmazó program vázlat.

Objektumok valósidejű rendszerekben A valósidejű rendszerek jellemzői időbeni viselkedés, válaszidő, megbízhatóság, biztonság, robusztusság, folyamatos, felügyelet nélküli működés, konkurens működés, méret, dinamika, kooperációskészség a program alrendszerekre bontható, az objektumok statikussá tehetők, az objektumok és taszkok kooperatívak.

Objektumok valósidejű rendszerekben Az időkövetelmények Az időkövetelmények megadása a rendszer és környezete közötti üzenetváltásra vonatkoznak, a rendszer és környezete kapcsolatának leírására vonatkoznak.

Objektumok valósidejű rendszerekben Az időkövetelmények típusai periodikus feladatok periódusidő T tényleges periódusidő, Tp névleges periódusidő, t1 … ti a feladat végrehajtásának időpontja, t a megengedett eltérés. T = Tp ± t ti+1 = ti + Tp ± t

Objektumok valósidejű rendszerekben Határidős feladatok eseményvezérelt külső esemény bekövetkezésétől számított időtartammal megadott időpont, a feladatot az esemény bekövetkezése után, de a határidő lejárta előtt kell végrehajtani, a külső esemény lehet periodikus vagy nem periodikus (sporadikus).

Objektumok valósidejű rendszerekben Időzített feladatok idővezérelt a feladat végrehajtása időponthoz kötött, a végrehajtás az adott időpontban késedelem nélkül elindítható végrehajtás adatfüggő időt igénylő rész végrehajtása, kiszámítható végrehajtási időt igénylő rész indítása,

Objektumok valósidejű rendszerekben Időkorlátos várakozás időkorlátos eseményvezérelt ha az esemény meghatározott időn belül nem következik be, akkor a rendszer más műveletek végrehajtásával folytatja a működést, a várt külső esemény a rendszer által küldött üzenetre érkező válasz.

Objektum-orientált programozás Borland Pascal nyelven A Pascal nyelv jellemzői: objektum típus, metódus, konstruktor és destruktor, öröklődés, sokalakúság.

Objektum-orientált programozás Borland Pascal nyelven Objektum deklarációja: type obj_név=object <adatok> <metódusok> end;

Objektum-orientált programozás Borland Pascal nyelven Metódusok az objektumban: type obj_név=object <adatok> public: procedure obj_név. met_1 (paraméterek); function met_m: típus; function met_n: típus; end;

Objektum-orientált programozás Borland Pascal nyelven A metódus deklarálása: procedure obj_név.met_m (paraméterek); begin <műveletek> end; function obj_név.met_n: típus;

Objektum-orientált programozás Borland Pascal nyelven Konstruktor és destruktor az objektumban: type obj_név=object <változók> constructor Init (size:integer); destructor Done; function obj_név1 (index:integer):típus; procedure obj_név2 (index:integer); paraméter : típus; end;

Objektum-orientált programozás Borland Pascal nyelven Konstruktor és destruktor deklarálása: constructor obj_név.Init (size:integer); begin <műveletek> end; destructor obj_név.Done; Megjegyzés: a destruktornak nincs sem típusa, sem argumentuma.

Objektum-orientált programozás Borland Pascal nyelven Az öröklődés: type obj_név1=object <változók_1>: <típus>; end; obj_név2=object (obj_név1) <változók_2>: <típus>; obj_név3=object (obj_név2) <változók_3>: <típus>; (következő kép)

Objektum-orientált programozás Borland Pascal nyelven (folytatás) var k : obj_név3; begin k.<változók_11> := <adat_11>; k.<változók_1n> := <adat_1n>; k.<változók_2> := <adat_2>; k.<változók_3> := <adat_3>; end;

Objektum-orientált programozás C++ nyelven A C++nyelv jellemzői: osztályok, struktúrák, metódusok vagy tagfüggvények, konstruktor és dekonstruktor, öröklődés, generikus adatszerkezet.

Objektum-orientált programozás C++ nyelven Az osztály mint objektum: class osztály { <adatok> <metódusok, konstruktorok, destruktorok> };

Objektum-orientált programozás C++ nyelven Metódus vagy tagfüggvény az osztályban: class osztály { <adatok>; publik: void met_1 (paraméter lista){argumentum}; // belső definíció void met_n (paraméter lista); // osztályon kívüli definíció };

Objektum-orientált programozás C++ nyelven A struktúra mint objektum: struct obj_név { <adatok> <metódusok> };

Objektum-orientált programozás C++ nyelven A metódus vagy tagfüggvény a struktúrában: struct obj_név { <adatok> void met_1 (paraméter lista); void met_n (paraméter lista); };

Objektum-orientált programozás C++ nyelven A konstruktor és a destruktor az osztályban: class oszt_név { <adatok> public: oszt_név (típusok) {argumentum} // konstruktor ~oszt_név ( ) { } // destruktor }; Megjegyzés: a destruktornak nincs sem típusa, sem argumentuma.

Objektum-orientált programozás C++ nyelven Öröklődés: objektumtípusok között fennálló kapcsolat. Élőlény név, kor Ember +nemzetiség Állat +élőhely Növény az egy általánosít specializál

Objektum-orientált programozás C++ nyelven Az öröklödés fajtái: egyszerű öröklődés, virtuális öröklődés, nem virtuális öröklődés, többszörös öröklődés.

Objektum-orientált programozás C++ nyelven Öröklődés - alaposztályok létrehozása: class oszt_név { protected: <változók> ; public: oszt_név (változók) {argumentum} void metódus (változók) {argumentum} };

Objektum-orientált programozás C++ nyelven Öröklődés - származtatott osztályok létrehozása: class szárm_oszt : public oszt_név { <változók> ; public: szárm_oszt (változók) : oszt_név (változók) {argumentum} void met_1 ( ) ; void met_n ( ) ; };

Objektum-orientált programozás C++ nyelven Származtatott osztály - metódusok: void oszt_név : : met_1 ( ) { _művelet_1( ); _művelet_i( ); } void oszt_név : : met_n ( ) { _művelet_j( );

Objektum-orientált programozás C++ nyelven Valósidejű programozás: párhuzamos folyamatok programozása egyprocesszoros számítógépen: P metódus az erőforrások lefoglalásához, V metódus az erőforrások felszabadításához, időzítés programozása: Timer osztály deklarálása.

Objektum-orientált programozás C++ nyelven Párhuzamos folyamatok Semaphore objektummal: class Semaphore { Bool free; public: Semaphore ( ) { V( ); } void P( ) { for (BOOL success = FALSE; !success; ) { asm cli; if (free) { free=FALSE; success=TRUE; } asm sti; } void V( ) { free=TRUE; } };

Objektum-orientált programozás C++ nyelven Valósidejű óra deklaráiója: class Timer { long time; public: Timer( ) { time=0; } void operator ( ) ( ) { time++; } long Get( ) { return time; } };

Objektum-orientált programozás C++ nyelven Generikus adatszerkezetek: olyan osztályok, melyeknek adattagjai és tagfüggvény típusai a fordítás alatt tetszőlegesen állíthatók be. Előállítás: előfordítóval - a C előfordító név összekapcsoló makrójával (##), sablonnal - a generikus osztály leírásával: template <class A, class B> class oszt_név { oszt_def}

… és még egy lehetőség: Objektum-orientált programozás makro-assembly nyelven

Objektum-orientált programozás macro-assembly nyelven Az assembly nyelv rendszerelemei: utasítások, direktívák. Az assembly program strukturális elemei: programok, szubrutinok, makrók.

Objektum-orientált programozás macro-assembly nyelven A macro-assembly nyelv obektumai: a makrók. A makró jellemzői: lokális felelősség, kapcsolat más makrókkal, polimorfizmus, feltételes viselkedés adatfüggő viselkedés, eseményfüggő viselkedés, időfüggő viselkedés.

Objektum-orientált programozás macro-assembly nyelven A macro szerkezeti felépítése: azonosító MACRO <paraméter lista> {típus deklaráció} {funkciók} ENDM makró törzs

Objektum-orientált programozás macro-assembly nyelven Hivatkozás egy makróra: azonosító <p1, p2,…, pn,> A makró mindig ugyanazt a feladatot végzi, de a paraméterektől függően más lehet a viselkedése.

Objektum-orientált programozás macro-assembly nyelven A makró mint objektum : obj_név MACRO <paraméter lista> <változók definiálása> met_1 met_2 met_n ENDM metódusok (makrók, eljárások, direktívák)

Objektum-orientált programozás macro-assembly nyelven A makró mint metódus: met_név MACRO <változók> {funkció} ENDM

Objektum-orientált programozás macro-assembly nyelven Az eljárás mint metódus: elj_név PROCEDURE {funkció} RET elj_név ENDP

Objektum-orientált programozás macro-assembly nyelven A direktíva mint metódus: obj_név MACRO <paraméterek> <változók> direktíva_1 direktíva_n ENDM metódusok

Objektum-orientált programozás macro-assembly nyelven Az objektum példányai: egy objektumra más paraméterekkel történő hivatkozás révén állíthatók elő. obj_1 p11, p12, … , p1n obj_2 p21, p22, … , p2n obj_m pm1, pm2, … , pmn, ahol obj_1…obj_m az objektumként használt makró azonosítója, pmn pedig az m-dik paraméter lista n-dik eleme.

Objektum-orientált programozás macro-assembly nyelven Az öröklődés: obj_1 MACRO <paraméterek> {makró törzs} ENDM obj_2 MACRO <paraméterek> obj_1 <paraméterek> makró törzs

Objektum-orientált programozás macro-assembly nyelven Feltételes működés: paraméter átadáshoz kötött, eseményvezérelt működés adatfüggés, megszakítás, idő pillanathoz kötött, valósidejű működés valósidejű óra, valósidejű operációs rendszer, feltételes fordítás.

Objektum-orientált programozás macro-assembly nyelven ...és mert valamennyi magas szintű programozási nyelvet Assembly nyelven írtak, minden megvalósítható vele, ami akár PASCAL-ban vagy a C++-ban, akár bármely más, magas szintű programozási nyelvben létezik. A sebesség nagyobb, a program pedig rövidebb, és a számítógép csak azt fogja csinálni, amit a programozó megír.

Objektum-orientált programozás macro-assembly nyelven Az Assembly hatékony alkalmazásához alapos rendszertechnikai ismeretek szükségesek.