Objektum orientált programozás

Slides:



Advertisements
Hasonló előadás
Tamás Kincső, OSZK, Analitikus Feldolgozó Osztály, osztályvezető A részdokumentumok szolgáltatása az ELDORADO-ban ELDORADO konferencia a partnerkönyvtárakkal.
Advertisements


Kamarai prezentáció sablon
„Esélyteremtés és értékalakulás” Konferencia Megyeháza Kaposvár, 2009
Készítette: Boros Erzsi
Összefoglalás Hardver,szoftver,perifériák Memóriák fajtái
ADATBÁZISOK.
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
Rendszerfejlesztés.
Az előadásokon oldandók meg. (Szimulációs modell is tartozik hozzájuk)
Humánkineziológia szak
Programozás III KOLLEKCIÓK 2..
3. A programozás eszközei, programozás-technikai alapismeretek
1Objektumorientált elemzés és tervezés – Dinamikus modellezés Gyurkó György Objektumorientált elemzés és tervezés Dinamikus modellezés.
Műveletek logaritmussal
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Koordináta transzformációk
Utófeszített vasbeton lemez statikai számítása Részletes számítá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.
OBJEKTUMORIENTÁLT PROGRAM
Vizuális modellezés Uml és osztálydiagram UML eszközök
MI 2003/ Alakfelismerés - még egy megközelítés: még kevesebbet tudunk. Csak a mintánk adott, de címkék nélkül. Csoportosítás (klaszterezés, clustering).
Ember László XUBUNTU Linux (ami majdnem UBUNTU) Ötödik nekifutás 192 MB RAM és 3 GB HDD erőforrásokkal.
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.
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.
6. előadás Parametrikus polimorfizmus. Generikus programozás. Az Ada sablonok.
Szoftvertechnológia Szoftvergyártás 2..
Szoftvertechnológia Rendszertervezés.
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.
Lineáris egyenletrendszerek (Az evolúciótól a megoldáshalmaz szerkezetéig) dr. Szalkai István Pannon Egyetem, Veszprém /' /
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,
Anyagadatbank c. tárgy gyakorlat Féléves tematika Adatbázis alapfogalmak, rendszerek Adatmodellek, adatbázis tervezés Adatbázis műveletek.
1Objektumorientált elemzés és tervezés - Alapfogalmak Gyurkó György Objektumorientált elemzés és tervezés Alapfogalmak.
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
3.2. A program készítés folyamata Adatelemzés, adatszerkezetek felépítése Típus, változó, konstans fogalma, szerepe, deklarációja.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Hernyák Zoltán Programozási Nyelvek II.
VÉGES AUTOMATA ALAPÚ TERVEZÉSI MODELL
Objektumorientált programozás
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.
Rendszertervezés Alapfogalmak; Az informatikai rendszer
Csurik Magda Országos Tisztifőorvosi Hivatal
A klinikai transzfúziós tevékenység Ápolás szakmai ellenőrzése
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
7. kurzus Az objektum-orientált tervezés alapelemei
Mesterséges Intelligencia 1. Eddig a környezet teljesen megfigyelhető és determinisztikus volt, az ágens tisztában volt minden cselekvésének következményével.
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.
1 Objektum orientált programozás Az objektumok és az osztályok – bevezetés Nagy Szilvia.
Programozási alapismeretek 8. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 8.2/  További programozási.
előadások, konzultációk
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.
Kiterjesztések szemantikája: Szemantikai tartomány : Adatoknak, vagy értékeknek egy nem üres halmazát szemantikai tartománynak nevezzük. Jelölése: D. Egy.
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.
A szoftver mint komplex rendszer: objektumorientált megközelítés.
6. kurzus Az objektum-orientált tervezés alapelemei
Előadás másolata:

Objektum orientált programozás Az objektumok és az osztályok – bevezetés Nagy Szilvia

A modellezés folyamata A szoftver előállítás mikéntje többféle szemszögből is érdekes: programozási technikák módszertanok technológiák Technológia: a társadalom által felvetett gyakorlati problémák megoldására szolgáló dolgok gazdaságos, a tudomány eredményeit felhasználó előállításának mikéntje (a módszerek, eszközök, technikák együttese.

A modellezés folyamata A szoftverfejlesztés lépései: problématér implementációs tér a fogalmi modellnek megfelelő implementációs modellek implementációs modell fogalmi modell tervezés modellezés modellezés megvalósított rendszer a felhasználható eszközökből építhető rendszerek a követelmények-nek megfelelő rendszerek imple-mentá-ció

A modellezés folyamata A szoftverfejlesztés lépései: modellezés A modell a valóságról bennünk kialakult kép; nem tükröz minden részletet, azokra a tulajdonságokra koncentrál, amelyek a feladat megoldása szempontjából fontosak. Egy modell több dolgot leírhat, és egy dolog modellezésére több korrekt modell is létezhet tervezés implementáció

A modellezés folyamata A szoftverfejlesztés lépései: modellezés tervezés Több jó fogalmi modell is van, s egy fogalmi modellnek több implementációs modell is megfeleltethető, ezek közül a lehető legjobb kiválasztása a tervezés – mind a fogalmi, mind pedig az implementációs térben optimumra törekedünk. implementáció

A modellezés folyamata A szoftverfejlesztés lépései: modellezés tervezés implementáció Az optimalizált rendszerterv átültetése a valóságba.

A modellezés folyamata Absztrakció: olyan gondolkodási művelet, amely segítségével a dolgok számunkra fontos tulajdonságait elválasztjuk a nem fontosaktól – az általános tulajdonságokat elkülönítjük az egyediektől. Különböző absztrakciós szintek a dolgok különböző pontosságú modelljeihez vezetnek. Finomítás: az absztrakciós szint csökkentése

A modellezés folyamata Dekompozíció: egy rendszer egyszerűbb, működő részrendszerekre való bontása úgy, hogy a részrendszerek együttesen a teljes eredeti rendszer működését és tulajdonságait bírják. A részrendszerek egymástól függetlenül írhatók le, modellezhetők, kezelhetők, azonban együttműködésük módját is le kell írni.

A modellezés folyamata A modell egy-egy finomítása után szükséges lehet a kapott részleteknek megfelelő dekompozíció. Az absztrakciós szint növelésekor viszont bizonyos dekompozíciók fölöslegessé válhatnak. A modellezés során különböző absztrakciós, illetve dekompozíciós szintű modelleket használhatunk. Akkor jól használható és karbantartható a szoftverünk, ha minden absztrakciós szinten egymásnak megfelelő a fogalmi és az implementációs modellünk.

A modellezés folyamata Dokumentáció ahhoz, hogy a tervezés során kapott modellt fel tudjuk idézni, illetve másokkal megtudjuk osztani, dokumentációt kell róla készíteni. Egy leírás akkor formális, ha csak pontosan definiált fogalmakat, szerkezeteket és modelleket használ, és a definíciók formáját is rögzíti. Célszerű a dokumentációt – legalább valamilyen szinten – formálisan elkészíteni.

A modellezés folyamata problématér implementációs tér leképezés analízis tervezés absztrakciós szint fogalmi modell implemen-tációs modell modellezés implementáció lehetséges rendszerek megvalósított rendszer

A modellezés folyamata problématér implementációs tér leképezés 2 1 3 absztrakciós szint Top-down haladás lépésenkénti finomítás: minden lépésben egy domináns fogalom (struktúrálandó objektum) egyszerűbb fogalmakból való felépítéséről hozunk döntést.

A modellezés folyamata problématér implementációs tér leképezés 1 3 absztrakciós szint 2 Bottom-up haladás szintézis, majd absztrakció úgy, hogy a fogalmi és az implementációs modell struktúrája hasonló legyen

A modellezés folyamata problématér implementációs tér leképezés absztrakciós szint Az objektumorientált szoftverfejlesztés ezt az utat követi

A modellezés folyamata absztrakciós szint formalizáltság Specifikáció: formalizálás növelése Tervezés: az absztrakciós szintet csökkentve egy magasabb absztrakciós szintű elemnek alacsonyabb absztrakciós szintűekből való előállítása

architekturális tervezés Életciklus A szoftverek életciklusában rendkívül fontos a fejlesztés analízis architekturális tervezés részletes tervezés kódolás integrálás tesztelés

Objektum-orientáltság fogalma A tervezés során sorozatos döntésekkel konkretizáljuk a tervezendő programot. Egy-egy döntést egy strukturálandó objektumról avagy domináns fogalomról (annak továbbontásáról) hozunk. Ez a domináns fogalom vált idővel az objektum-orientáltság alapjává. Kezdetben strukturálatlan adatmanipulációk sorozata volt egy-egy program, s a saját készítőjükön kívül kevés ember tudott rajta eligazodni.

Objektum-orientáltság fogalma Strukturált programozás (E.W. Dijkstra): a program legyen egy absztrakt gép („oldd meg a feladatot” utasítással) ha nincs ilyen gép, készítsük el annak egy egyszerűbb absztrakt gépet, melynek programja az előző absztrakt gépet szimulálja egészen addig egyszerűsítjük az absztrakt gépeket, amíg e kapunk olyant, amely utasításkészletét egy valóságos gépen is végre tudjuk hajtani.

Objektum-orientáltság fogalma Strukturált programozás (E.W. Dijkstra): Szintenként lehet elemezni a programot továbbra is nehezen áttekinthető programokat kaptak

Objektum-orientáltság fogalma Szükséges volt olyan szerkezetek kidolgozása, amelyek példányosíthatók, mint a változók, ugyanakkor a rajtuk értelmezett műveletek is példányosodnak. Az objektum-orientáltság célja az volt, hogy a programban az egy-egy objektumra vonatkozó összes adat/információ egyetlen helyen jelenjen meg, s ez az információ a program más részein (vagy más programokban) újra felhasználható legyen.

Objektum-orientáltság fogalma Az objektum-orientáltság egy szemléletmód (paradigma), amely a modellezéstől kezdve az implementáción keresztül a karbantartásig a teljes programfejlesztést átfogja. Az objektum-orientált módszertan alkalmazásával kifejlesztett rendszert együttműködő objektumokként modellezték, s az implementáció során is az objektumokat szimuláló absztrakt gépeket programrészeket hoztak létre. köznapi gondolkodás, gyűjtőnevek.

Az objektumok tulajdonságai egy valós absztrakt, azonosítható, egyedi dolog, a vizsgált környezet jól definiálható szereplője hatását gyakorol más objektumokra, és a más objektumok is gyakorolnak hatást rá jellemezhető a rajta elvégezhető műveletekkel és a műveletek hatására létrejött állapotaival bármi lehet, aminek pontos határai megállapíthatók

Az objektum fogalma Az objektum egy rendszer egyedileg azonosítható szereplője, amelyet a külvilág felé mutatott viselkedésével, belső struktúrájával és állapotával lehet jellemezni. Az objektumok belső struktúráját a külső szemlélő és a többi szereplő nem látja: az objektumok elrejtik az általuk hordozott információ egy részét. Ez az egységbe zárás (encapsulation): a „objektum” egységbe zárja a programozója a tulajdonságokat, az állapotokat és a végrehajtható műveleteket, az objektum viselkedését.

Az objektum felelőssége Az objektum maradéktalanul eljátssza a rá kiszabott szerepeket, így rendelkezik minden olyan képességgel és ismerettel ami a feladatok végrehajtásához szükséges. Minden objektumnak van egy felelősségi köre, melybe tartozó feladatokat végre kell hajtania. Minden objektum felelős önmagáért: lokális felelősség elve.

Az objektum tulajdonságai Az objektum viselkedése: a viselkedés az objektum által végrehajtott tevékenységsorozat. Egy objektum lehet aktív vagy passzív: aktív, ha a környezet ráhatása nélkül is folyamatosan működik, más objektumokat bír működésre… passzív, ha csak valamiféle üzenet hatására lép működésbe.

Az objektum tulajdonságai Az objektumok hatásukat egymásnak küldött üzenetekkel (message) fejtik ki. Az üzenetek az objektumok az objektumok közötti adatcsere és a működésüket szabályozó eszköz. Az üzenetnek van neve és paraméterei. A név statikus (nem változik), az azonosítja az üzenetet az objektum számára. Az üzenet neve vezérlő jellegű: a név által hordozott információ határozza meg, miként viselkedik az objektum

Az objektum tulajdonságai Az objektumok hatásukat egymásnak küldött üzenetekkel (message) fejtik ki. Az üzenetek az objektumok az objektumok közötti adatcsere és a működésüket szabályozó eszköz. Az üzenetnek van neve és paraméterei. A paraméterek változhatnak, ugyanaz az üzenet különböző paraméterekkel másféle lefutást eredményezhet. A paraméter tetszőleges változó (akár objektum is) lehet.

Az objektum tulajdonságai Egy objektum többféle nevű üzenetet fogadhat és egy üzenetet több objektum is képes lehet értelmezni. Előfordulhat olyan modellezés, hogy az objektum azonosítani tudja az üzenet küldőjét és szelektálni tud, hogy melyik küldőnek engedelmeskedjen.

Az objektum tulajdonságai Ha több aktív objektum engedélyezett – azaz van konkurencia – tisztázni kell a modellezéskor, hogy induláskor lehet-e több aktív objektum a rendszerben lehet-e aszinkron üzenetküldés, azaz nem kell-e az újabb üzenet küldésével megvárni az előbbi válaszreakcióját lehet-e objektumon belüli konkurencia, azaz egy objektum elfogadhat-e új üzenetet, amíg egy előzőre adott válaszreakció közben van

Az objektum tulajdonságai Esemény (event): azonosítható, pillanatszerű történés (a történés folyamata érdektelen a modellezés szempontjából) Az eseménynek is van neve (statikus jellemző) és lehetnek paraméterei (dinamikus jellemzők) Az eseményeket objektumok hozzák létre, és az események bekövetkezéséről értesülnek az érintett objektumok. Egy alternatív megfogalmazás az üzenetek helyett.

Az objektum tulajdonságai Tisztázni kell, hogy lehet-e címzettje egy eseménynek, azaz a kiváltó objektum irányíthatja-e hogy melyik objektum reagáljon eldöntheti-e az objektum, hogy melyik eseményekre reagáljon, s ha igen, hogyan egy eseményre csak egy objektum reagálhat-e vagy több is

Az objektum tulajdonságai Ha az objektum képes egy eseményt fogadni, akkor annak megkapására egy az üzenet neve által meghatározott metódus (method) végrehajtásával reagál. A kiváltott viselkedés pontos leírása (implementációja) a metódus kódjában található. Üzenet: azt mondja meg, mit kell csinálni. Metódus: azt mondja meg hogyan kell azt tenni.

Az objektum tulajdonságai Attól függően, hogy korábban milyen hatások érték az objektumot, másképpen reagálhat ugyanarra az üzenetre: a korábbi üzenetek hatására az objektum különböző állapotokba kerülhet. Az objektum állapota valahol az objektum egységébe zárva (encapsulated) megjelenik. Az objektum nem csak metódusokat, hanem állapotokat is tartalmazhat, egy-egy metódus megváltoztathatja a belső állapotot.

Az objektum tulajdonságai Az objektum állapotát az attribútumai tárolják. Az attribútumok értékei a futás során változnak, ezért az attribútumokat változókkal reprezentáljuk.

Polimorfizmus Különböző objektumok megkaphatják ugyanazt az üzenetet, azonban előfordulhat, hogy máshogy reagálnak. Ha egy objektum úgy küldhet üzenetet egy másiknak, hogy nem kell arra figyelemmel lennie, hogy ki kapja az üzenetet, akkor polimorfizmusról (többalakúság) beszélünk.

Objektum összefoglalása Az objektum olyan modellje egy dolognak, amely a számára kívülről érkező üzenetekre reagálva valamiképpen viselkedik, van egy kívülről nem látható statikus struktúrája, amely magában foglalja az attribútumokat, melyek az objektum állapotát hivatottak leírni. Egy objektum állapota a struktúrát adott pillanatban kitöltő értékek halmaza. (behavior, structure, state)

Osztályok és példányok Bizonyos objektumok viselkedése és struktúrája megegyezhet, csak állapotuk különböző: az ilyen objektumok egy közös minta szerint készülnek. Ez a közös minta az osztály (class). Az osztály avagy objektumosztály azonos viselkedésű és struktúrájú objektumok forrása – az objektum pedig a viselkedését meghatározó osztály egy példánya (instance). Minden objektum egyedi, létező dolog; megkülönböztethetőek, függetlenül az aktuális állapotuktól.

Osztályok és példányok Minden objektum ismeri a saját osztályát. Rajzi jelölés (OMT-módszertan szerint): macska (macska) Brewster-szög (macska) Kiskövércica (macska) Háziállat (macska) Hofi

Osztályok és példányok Az osztály elemeinek attribútumai is jelölhetők: macska név: text fajta: text kor: integer szín: int v.text (macska) Brewster-szög fajtátlan 4 fekete (macska) Hofi perzsa 3 fehér

Osztályok és példányok Az attribútumokon kívül a végrehajtható metódusok is feltüntethetők, sőt kezdőértékek, metódusparaméterek is: macska név: text fajta: text kor: integer szín: integer macska név: text fajta: text =„fajtátlan” gazda: text otthon: boolean =1 csavargás gazdacsere csavargás(otthon):boolean gazdacsere(paraméterlista):eredmény

Osztályok és példányok Egy objektum a többinek csak a metódusait mutatja, az attribútumait és állapotait nem információ elrejtése. Az, hogy maga az objektum mennyi mindent lát a külvilágból, meghatározó szerepű. Célszerű egy-egy metódusba minél kevesebb, a környezettől függő adatot beépíteni, azaz az objektum és a környezete közötti csatolást gyengíteni.

Osztályok és példányok Demeter-törvény: akkor leggyengébb a csatolás az objektum és a környezete között, ha csak a metódus paramétereire és eredményeire a metódust tartalmazó osztály attribútumaira a program globális változóira a metódus lokális változóira hivatkozik.

Objektumok típusai Típus: egy objektumhalmaz viselkedését specifikálja, definiálja az objektumok által értelmezhető üzeneteket és az operációk szemantikáját. Osztály: a típus által meghatározott viselkedést implementálja, tartalmazza az implementáció részleteit. Egy objektumtípust többféle objektumosztály is leírhat. Különböző objektumtípusok lehetnek kompatibilisek egymással.

Objektumok típusai Ha egy T1 típus kompatibilis egy T2 típussal, akkor bárhol, ahol T2 típus alkalmazása megengedett, ott alkalmazható T1 típus is. minden T2 típus által megértett üzenetet T1 is megérti. T2 típus a T1-nek szupertípusa, T1 viszont T2 szubtípusa. rövidszőrű macska házimacska hosszúszőrű macska T2 típus T1 típus

Objektumok típusai szupertípus sziámi rövidszőrű korat brit macska man-szigeti perzsa hosszúszőrű angóra szubtípus mosómedve

Objektumok típusai A kompatibilitás fontos szerepet játszik az öröklődésnél. Lehet, hogy egy bizonyos szempontból kompatibilis egy típus egy másikkal, de új üzenetet bevezetve nem lesz az