Objektum orientált programozás

Slides:



Advertisements
Hasonló előadás
„Esélyteremtés és értékalakulás” Konferencia Megyeháza Kaposvár, 2009
Advertisements

Készítette: Boros Erzsi
ADATBÁZISOK.
Weblap szerkesztés HTML oldal felépítése Nyitó tag Záró tag Nyitó tag Záró tag oldalfej tözs.
A normalizálás az adatbázis-tervezés egyik módszere
C++ programozási nyelv Gyakorlat hét
Programozás III OOP ALAPOK.
Erőállóképesség mérése Találjanak teszteket az irodalomban
Funkcionális függés Redundancia 1NF, 2NF, 3NF
Humánkineziológia szak
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,
1Objektumorientált elemzés és tervezés – Dinamikus modellezés Gyurkó György Objektumorientált elemzés és tervezés Dinamikus modellezés.
Determinisztikus programok. Szintaxis: X : Pvalt program változók E : Kifkifejezések B : Lkiflogikai kifejezések C : Utsutasítások.
Műveletek logaritmussal
Koordináta transzformációk
Euklidészi gyűrűk Definíció.
Gyűrűk Definíció. Az (R, +, ·) algebrai struktúra gyűrű, ha + és · R-en binér műveletek, valamint I. (R, +) Abel-csoport, II. (R, ·) félcsoport, és III.
4. VÉGES HALMAZOK 4.1 Alaptulajdonságok
Turbo Pascal Változók.
A tételek eljuttatása az iskolákba
Vizuális modellezés Uml és osztálydiagram UML eszközök
Elektronikai Áramkörök Tervezése és Megvalósítása
Elektronikai Áramkörök Tervezése és Megvalósítása
Virtuális méréstechnika MA-DAQ műszer vezérlése 1 Mingesz Róbert V
Halmazok, relációk, függvények
2011. szeptember Az információtechnológia menedzselése Az információs rendszer fejlesztése Image of the slide: www2.raritanval.edu/departments/busadmin/.../Ch07-IntrotoBusiness.ppt.
A C++ programozási nyelvSoós Sándor 1/12 C++ programozási nyelv Gyakorlat - 8. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet.
JSP és JavaBean JavaServer Pages és Java Beans Fabók Zsolt Általános Informatikai Tanszék Miskolci Egyetem.
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.
6. SZÁMELMÉLET 6.1. Oszthatóság
1.3 Relációk Def. (rendezett pár) (a1 , a2 ) := {{a1} , {a1 , a2 }} .
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.
Bevezetés a C++ programozási nyelvbe
DRAGON BALL GT dbzgtlink féle változat! Illesztett, ráégetett, sárga felirattal! Japan és Angol Navigáláshoz használd a bal oldali léptető elemeket ! Verzio.
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,
Lineáris algebra.
Objektumorientált tervezés és programozás II. 3. előadás
szakmérnök hallgatók számára
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT
Hernyák Zoltán Programozási Nyelvek II.
A pneumatika alapjai A pneumatikában alkalmazott építőelemek és működésük vezérlő elemek (szelepek)
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.
Adatbázis-kezelés.
Határozatlan integrál
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.
Objektum orientált programozás
Virtuális Méréstechnika Sub-VI és grafikonok 1 Makan Gergely, Vadai Gergely v
Mérés és adatgyűjtés laboratóriumi gyakorlat - levelező Sub-VI és grafikonok 1 Mingesz Róbert V
Objektumvezérelt rendszerek tervezése
Adamkó Attila UML2 Adamkó Attila
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.
Adatbáziskezelés. Adat és információ Információ –Új ismeret Adat –Az információ formai oldala –Jelsorozat.
Ficsor Lajos CPP2 / 1 Származtatási mechanizmus a C++ nyelvben Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék.
Szimuláció.
Algoritmizálás, adatmodellezés
Haladó C++ Programozás Programtervezési minták – alapok Sonkoly Balázs
1Objektumorientált elemzés és tervezés – Dinamikus modellezés Gyurkó György Objektumorientált elemzés és tervezés Dinamikus modellezés.
1 Objektum orientált programozás Az objektumok és az osztályok – példányosodás Nagy Szilvia.
A termelés költségei.
Programozás I. 3. gyakorlat.
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
Gazdasági informatika II (SZIE GTK GVAM 1. évfolyam) 2009/2010. tanév 2. félév.
A szoftver mint komplex rendszer: objektumorientált megközelítés.
Szemantikai adatmodellek
Neumann János Informatikai Kar
Hernyák Zoltán Programozási Nyelvek II.
Előadás másolata:

Objektum orientált programozás Modellezés objektumokkal Nagy Szilvia

Modelltípusok Objektummodell: az adatokra koncentráló modell; struktúra, attribútumok, metódusok, objektumok közötti kapcsolat leírása osztálydiagrammal: egerészik a környékén ház macska otthon van benne

Modelltípusok Dinamikus modell: rögzíti az időbeliséget, a sorrendiséget; a vezérlést és ütemezést leíró modell folyamatábra, kommunikációs diagram vagy állapotdiagram egerészik eszik alszik figyel hízeleg dorombol

Modelltípusok Funkcionális modell: a végrehajtandó funkciókat, adattranszformációkat leíró modell adatfolyam-ábra forrás nyelő helynyilvántartó jegykiadás jegy jegyrendelés mit, mikor hely néző néző pénz számlázás számla számlanyilvántartó

Objektummodell Attribútumok: az objektum tulajdonságait meghatározó, az objektumban tárolt adatok. számuk és elnevezésük megadja a struktúrát változó, lehet összetett, de nem lehet objektum lehet közvetlen adat (változó) vagy referencia (pointer) az attribútumok lehetőleg egymástól függetlenek legyenek, és teljesen leírják az objektum modell szempontjából fontos tulajdonságait

Objektummodell Attribútumok típusai: elnevezés típus – név, anyja neve, személyi szám, alvázszám, törzskönyv szám,… általában nem változik, de ha szükséges, kijavítható leíró jellegű – az objektumok belső jellemzőit írják le, az objektumot ért hatások kimeneteként megváltozhatnak. referencia típusú – azon attribútumok, amelyek más objektumokba mutatnak

Objektummodell Relációk: láncolás: objektumok (példányok) közötti logikai vagy fizikai kapcsolat asszociáció: az osztályok közötti kapcsolat ember név cím gazdája kutya név kor opcionális anya név cím gyerek név sz. idő szül egy-több 1+

Objektummodell Relációk: A relációknak is lehetnek attribútumai – az asszociációk is felvehetnek osztály formát hallgató név Neptun-kód felvesz tárgy cím azonosító jegy

Objektummodell Relációk: Azonos osztálybeli példányok közötti szimmetrikus és nem szimmetrikus relációk ember név cím ember név cím feladó címzett levelezőtárs levelet küld szerepek

Objektummodell Normalizálás: egy objektum szemantikailag összetartozó attribútumokat kell, hogy tartalmazzon. Azaz az adatokat helyesen kell szervezni, ún. normál formák szerint. Egy objektum attribútumait úgy célszerű megválasztani, hogy azok az objektum egészére vonatkozzanak. kutya név fajta kor gazda oltás ideje gazda autója inkább a gazda objektumba

Objektummodell Öröklés: olyan implementációs eszköz, amely lehetővé teszi azt, hogy egy osztályból másik osztály származzon. A származtatott osztály rendelkezik az eredeti osztályban definiált attribútumokkal szerkezettel és viselkedéssel. Eredmény: fogalmi egyszerűsödés letisztulás, a hasonló osztályok összevonása korábbi osztálykönyvtárak használata, az osztályok újrahasznosíthatósága

Objektummodell Öröklés: az az osztály, amelyből örökölnek az alaposztály (superclass), az az osztály, amelyik örököl a származtatott osztály (subclass) Egy öröklődési sorban ez osztály fölött minden alaposztály az adott osztályunk őse (ancestor) Egy osztályból (akár közvetetten)származtatott osztályok az osztályunk leszármazottai (descendent)

Objektummodell Öröklés: általában az osztály specializálódik, esetleg általánosítjuk. felhasználhatunk absztrakt osztályt az örökléshez diák név születési idő Neptun-kód sikeres vizsgaszám kor(): int vizsga(s.vizsgaszám) ember név szül. idő kor(): int diák Neptun-kód sikeres vizsgaszám vizsga(s.vizsgaszám) absztrakt: nem használjuk másra, nem képződik objektum belőle

kor(): dátum-szül.idő-x Objektummodell Öröklés: a származtatott metódusok átdefiniálhatók, az új definíció helyettesíti az eredetit. Ilyenkor az eredeti osztályban virtuális (üres) metódusokat definiálunk: férfi név szül. idő kor(): dátum-szül.idő ember név szül. idő kor(): int nő név szül. idő kor(): dátum-szül.idő-x

Objektummodell Öröklés: a leszármazott osztályok az ősök valamennyi attribútumát tartalmazza. Lehet az ősőktől örökölt struktúrát megváltoztatni: új attribútum hozzáadásával új metódus hozzáadásával örökölt metódusok átdefiniálásával Fontos, hogy az öröklés során biztosítsuk, hogy az örökölt de átdefiniált metódusok az örökölt attribútumoknak azon részhalmazára képezzenek, amire az eredeti metódusok, azaz …

Objektummodell Öröklés: A metódusok öröklésénél figyelni kell, hogy az ősök szabályait ne sértsük meg. Metódusok kiterjesztése: az átdefiniált metódusok attribútumokra gyakorolt hatása ugyanolyan, mint az ősöknél, csak néhány új dologgal (új attribútumra vonatkozó hatással) bővítjük azt. (téglalap—átlós téglalap)

Objektummodell Öröklés: A metódusok öröklésénél figyelni kell, hogy az ősök szabályait ne sértsük meg. Metódusok szűkítése: az átdefiniált korlátozza a bemeneti paraméterek halmazát. Sem az új, sem az átdefiniált metódusok nem vezethetnek ki a korlátozott attribútumtérből (összeadás—integer összeadás)

Objektummodell Öröklés: A metódusok öröklésénél figyelni kell, hogy az ősök szabályait ne sértsük meg. Metódusok módosítása: az új metódus mind interfész szinten, mind pedig szemantikailag azonos az eredetivel, csak másként van a feladat algoritmizálva, pl a hatékonyság fokozásáért. (egyszerű cserés sorbarendezés—módosított buborékoltató sorbarendezés)

Objektummodell Öröklés: A metódusok öröklésénél figyelni kell, hogy az ősök szabályait ne sértsük meg. Metódusok befolyásolása: a származtatott osztálynak nagyjából olyannak kell lennie mint az ősnek, de nem igazán van logikai összefügés közöttük. A metódusokat át kell definiálni, tekintet nélkül a korábbi feladatra, esetleg az attribútumokkal egészen mást kell csinálni. Nem javasolt!

Objektummodell Többszörös öröklés: olyan új osztály definiálása, amely két, vagy több régi osztály tulajdonságait és metódusait egyesíti magában négyszög trapéz paralelogramma téglalap rombusz

Objektummodell Többszörös öröklés: fontos probléma, hogy egy közös őstől két vagy több ágon ugyanolyan nevű, de máshogy működő metódusokat örökölhetünk, pl. területre: téglalap téglalap::terület oldal1*oldal2 rombusz rombusz::terület átló1*átló2/2 négyzet

Objektummodell Komponensek: a tartalmazás reláció: rész – egész Aminek a része, az a szülő objektum, a részek pedig a gyermekek téglalap b oldal átló a oldal b oldalfelezőpont középpont

Objektummodell Komponensek: a tartalmazás reláció nem szimmetrikus, ha A része B-nek, B nem része A-nak. A szülő bizonyos – de nem minden – attribútumait átveszi a gyermek, de ha a gyermek olyan üzenetet kap, amelyre nem tud reagálni, akkor feljebb utalja a kérést a szülőnek … amíg kompetens objektumra nem talál

Objektummodell Komponens struktúrája: rögzített: a komponens objektumok típusa száma előre megadott változó: csak a szintek száma és az objektumok típusa adott, a komponensek száma változhat rekurzív: az objektum közvetve vagy közvetlen tartal- mazza önmagát program utasitás függvény egyszerű utasítás

Objektummodell Delegálás: egy objektum valamely metódusát úgy valósítjuk meg, hogy egy az objektummal komponens viszonyban álló objektum metódusával hajttatjuk végre a feladatot

Objektummodell Delegálás: egy objektum valamely metódusát úgy valósítjuk meg, hogy egy az objektummal komponens viszonyban álló objektum metódusával hajttatjuk végre a feladatot

Dinamikus modell A sztatikus modell (objektummodell) nem elegendő, a vezérléshez szükséges az időbeli viselkedés leírása is. Az objektumok állapotai és az állapotváltozásokat kiváltó események a modell részei. Objektum orientált programozáskor egy eseménynek egyetlen kiváltója és egyetlen észlelője van esemény→üzenetküldés

Dinamikus modell Egy esemény észlelése az objektumot arra készteti, hogy megváltoztassa bizonyos attribútumait, és más objektumokat is változásra indítson: A dinamikus modellezés során le kell írni, hogy az objektumok milyen események hatására milyen állapotokba kerülnek és milyen üzeneteket küldenek. Egy objektum véges állapotú állapotgéppel modellezhető. Az üzenetek küldése kommunikációs diagramokkal írható le.

Dinamikus modell Egy esemény észlelése az objektumot arra készteti, hogy megváltoztassa bizonyos attribútumait, és más objektumokat is változásra indítson: A dinamikus modellezés során le kell írni, hogy az objektumok milyen események hatására milyen állapotokba kerülnek és milyen üzeneteket küldenek. Egy objektum véges állapotú állapotgéppel modellezhető. Az üzenetek küldése kommunikációs diagramokkal írható le.

Dinamikus modell Esemény : pillanatszerű történés (folyamatos működés esetén mintavételezés) Ha két esemény között logikai összefüggés van, akkor többnyire időben is meghatározott sorrenden követik egymást. Ha nincs meghatározott sorrendiség, illetve ok-okozati összefüggés, akkor az események konkurensek. Az eseményeknek az időn kívül más paraméterei is lehetnek.

Dinamikus modell Forgatókönyvek: a rendszer működésének leírására szolgáló eseménysorozatok. Kommunikációs diagram: megérkezik A-ba értesíti felveszi az alkatrészt átteszi az alkatrészt megérkezik B-be értesíti felveszi a megmunkált alkatrészt átteszi autó gépsor1 daru gépsor2

Dinamikus modell A kommunikációs diagramon pontos időbeliség is feltüntethető, bár ritkán szükséges 0s 10s 20s időskála 30s 40s obj1 obj2 obj3 obj4

Dinamikus modell Kommunikációs diagram helyett lehet objektumok közötti üzenetküldéseket leírni, sorszámozott üzenetekkel: megérkezik A-ba/1 értesíti/2 autó daru gépsor1 felveszi az alkatrészt/3 átteszi az alkatrészt/8 átteszi/5 felveszi a megmunkált alkatrészt/7 értesíti/4 megérkezik B-be/6 gépsor2

Dinamikus modell Állapotgépek: állapotokból és a közöttük létrejövő átmenetekből áll nem ég a szomszéd erdő ég a szomszéd nem ég a szomszéd égő erdő ég a szomszéd timeout nem ég a szomszéd pusztaság2 pusztaság ég a szomszéd

Dinamikus modell Állapotgépek: kiindulási állapot: végállapot: Aktivitás: az állapotokban végrehajtott tevékenység folyamatos: végig, amíg az állapotban van szekvenciális: csak az aktivitás elvégzéséhez szükséges ideig – esetleges abortált műveletek

Funkcionális modell Leírja, hogy mivel mi történik, illetve milyen adatokból milyen transzformációkkal lehet a kimeneti értékeket megkapni. Adatfolyam-ábra: a rendszerbe bemenő adatok, az adattárak és a rendszer által előállított adatok közötti funkcionális viszonyokat modellezi. Az adatfolyam-ábrák skatulyázhatók, egy durva blokkdiagram blokkjai kifejthetők részletesebb blokkdiagramként.

Funkcionális modell Adatfolyam-ábra: reij → a+ib r a kiszámítása a cosj szögfv j b kiszámítása b sinj

sinj és b összeszorzása Funkcionális modell Adatfolyam-ábra: lehet többszintű cosj a kiszámítása r a szögfv b kiszámítása j b sinj r sinj és b összeszorzása b sinj

Funkcionális modell Adatfolyam-ábra (Data Flow Diagram): Adatokat transzformál: az adatfolyamot nyilakkal jelölve összeköti az adat forrását a fogyasztójával (terminator). Jelölés a terminátorokra (forrásra és a nyelőre): négyzet Folyamatok (process) oválissal jelölve ezek az adatfolyam-ábra csomópontjai Adattárak (store) alá és föléhúzással: passzív elemek, csak adatokat tárolnak el, vagy szolgáltatnak, ha megkérik őket.

Funkcionális modell Az adattárak objektumok, struktúrájuk meghatározott. Olvasás a kimenő adatforgalom írás a bemenő adatforgalom egy adattárban. Az adatfolyamok többnyire névvel vannak ellátva, több helyre is transzformálhatók és szétválaszthatók kisebb adatfolyamokra típus mosógép szervízkönyvi adat gyártási év szervízelések száma

Funkcionális modell Vezérlőjel: avagy vezérlőfolyam vezérli a modell folyamatait, általában logikai, vagy felsorolás típusú adat a vezérlőjel értékének kitüntetett változása indíthat egy folyamatot (triggerelés) a vezérlőjel értéke szerint engedélyeződik vagy tiltódik le egy egyébként állandóan működő folyamat (kapuzás) Szaggatott vonallal jelöljük: jogosult azonosítás ajtónyitás szervízelések száma

Funkcionális modell A dinamikus modellhez képest nem ad új információt a vezérlőjel, használata nem kötelező. Adatszótár: az összetett adatszerkezetek leírására szolgáló speciális nyelvű program Folyamatspecifikáció: a folyamatok megvalósítására szolgáló program