Az objektumorientált megközelítés elınye: Hátránya:

Hasonló dokumentumok
Objektumorientált felbontás

Szoftverprototípus készítése. Szoftverprototípus készítése. Szoftverprototípus készítése

Szoftverprototípus készítése

Szoftvertechnológia 2008/2009. tanév 2. félév 8. óra. Szoftvertechnológia

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Adatstruktúrák, algoritmusok, objektumok

rendszerszemlélető, adatközpontú funkcionális

Objektumorientált paradigma és a programfejlesztés

Irányítástechnika Elıadás. PLC-k programozása

Bánsághi Anna 2014 Bánsághi Anna 1 of 31

Könyvtári kölcsönzések kezelése

OOP. Alapelvek Elek Tibor

Modellinformációk szabványos cseréje. Papp Ágnes, Debreceni Egyetem EFK

Objektumorientált paradigma és programfejlesztés Bevezető

Interfészek. PPT 2007/2008 tavasz.

Komponens alapú fejlesztés. Szoftvertechnológia elıadás

Bánsághi Anna 1 of 67

A LOGSYS GUI. Fehér Béla Raikovich Tamás, Laczkó Péter BME MIT FPGA laboratórium

Már megismert fogalmak áttekintése

GSM átjelzı berendezés ( ) Mőszaki Leírás

Objektum orientált programozás Bevezetés

A programkomponensek között különbözı típusú interfészek léteznek. következésképpen különbözı típusú interfészhibák fordulhatnak elı.

Absztrakció. Objektum orientált programozás Bevezetés. Általános Informatikai Tanszék Utolsó módosítás:

Operációs rendszerek

III. Alapfogalmak és tervezési módszertan SystemC-ben

Mőszaki Leírás. GSM átjelzı berendezés ( ) RGE-01 VERZIÓ 4

Alkalmazások architektúrája

Interaktív, grafikus környezet. Magasszintû alkalmazási nyelv (KAL) Integrált grafikus interface könyvtár. Intelligens kapcsolat más szoftverekkel

Szoftver-technológia II. Szoftver újrafelhasználás. (Software reuse) Irodalom

COMET webalkalmazás fejlesztés. Tóth Ádám Jasmin Media Group

Irányítástechnika alapvetı célja

Szoftverarchitektúrák 3. előadás (második fele) Fornai Viktor

Osztott Objektumarchitektúrák

UML (Unified Modelling Language)

Szoftver újrafelhasználás

Integráci. ciós s tesztek. ciós s tesztek (folyt.) Integration Level Testing (ILT) Ficsor Lajos. Miskolci Egyetem Általános Informatikai Tanszék

10-es Kurzus. OMT modellek és diagramok OMT metodológia. OMT (Object Modelling Technique)

Adatstruktúrák, algoritmusok, objektumok

OO rendszerek jellemzői

A prototípus gyors, iteratív fejlesztése azért nagyon fontos, mert a költségek így ellenırizhetık.

Norway Grants. Az akkumulátor mikromenedzsment szabályozás - BMMR - fejlesztés technológiai és műszaki újdonságai. Kakuk Zoltán, Vision 95 Kft.

Együttmőködési rendszerek, csoporttevékenység támogatása 1. rész

Bevezetés az SAP világába. 5. Kommunikációs és integrációs technológiák

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

Számítógép architektúra

A programozás alapjai

NC program ellenorzo szimulátor fejlesztése objektumorientált módszerrel

Irányítástechnika Elıadás. PLC rendszerek konfigurálása

S01-7 Komponens alapú szoftverfejlesztés 1

Bemeneti eszközök. Bemeneti egységek - Billentyőzet. A számítógép vázlatos felépítése

Programozás módszertan p.1/46

Java grafikai lehetőségek

Objektumelvű programozás

Programozási nyelvek Java

Telepítési útmutató DoktorInfo B300 jelentéshez

Szoftver architektúra, Architektúrális tervezés

Szolgáltatási szint és performancia menedzsment a PerformanceVisor alkalmazással. HOUG konferencia, 2007 április 19.

HT2110 ID kártyás beléptetı rendszer

Az egyed-kapcsolat modell (E/K)

QuickSend. , és SMS küldés program. Felhasználói kézikönyv. Program dokumentáció 2008 JMGM Magyarország Informatikai Kft.

HA8EV ORBITRON Programmal vezérelt Azimut/Elevációs forgató elektronika v10.0

Iman 3.0 szoftverdokumentáció

GENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és. Függvénysablonok

30.B 30.B. Szekvenciális hálózatok (aszinkron és szinkron hálózatok)

14. Objektum-orientált tervezés

PDF DOKUMENTUMOK LÉTREHOZÁSA

Szaniszló Gábor, ABB Kft MEE szakmai nap elıadás, Az IEC61850-es szabvány gyakorlati alkalmazása. ABB Group June 1, 2010 Slide 1

Objektumorientált programozás C# nyelven

Szekvenciális hálózatok és automaták

A Vizsgálóhelyi nyilvántartó program Online Telepítıje

Szoftvermérés:hogyan lehet a szoftvertermék vagy a szoftverfolyamat valamely jellemzőjéből numerikus értéket előállítani.

A folyamat közös fázisai. A szoftverfolyamat modelljei. A vízesésmodell fázis: követelmények elemzése és meghozása

Szerver oldali Java programozás /II. 1. óra. Elemkönyvtárak. Elemkönyvtárak használata Saját elemkönyvtár készítése.

Dr. Mileff Péter

Irányítástechnika Elıadás. Programozható logikai vezérlık

Kommunikáció. Folyamatok közötti kommunikáció. Minden elosztott rendszer alapja

Bevezetés a Programozásba II 5. előadás. Objektumorientált programozás és tervezés

LABMASTER anyagvizsgáló program


Programozási alapismeretek 4.

Számítógépes Hálózatok. 5. gyakorlat

Garázskapu nyitó. Kezelési útmutató

Turing-gép május 31. Turing-gép 1. 1

Szekvencia diagram. Szekvencia diagram Dr. Mileff Péter

Programfejlesztési Modellek

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

A SZOFTVERTECHNOLÓGIA ALAPJAI

Operációs rendszerek. Az X Window rendszer

Beszédfelismerés alapú megoldások. AITIA International Zrt. Fegyó Tibor

4. Biztonsági elıírások. 1. A dokumentációval kapcsolatos megjegyzések

Elosztott rendszer architektúrák

Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon

A szoftver-folyamat. Szoftver életciklus modellek. Szoftver-technológia I. Irodalom

Gyártórendszerek irányítási struktúrái

A szemantikus elemzés elmélete. Szemantikus elemzés (attribútum fordítási grammatikák) A szemantikus elemzés elmélete. A szemantikus elemzés elmélete

Komponens alapú programozás Bevezetés

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.

Bánsághi Anna 2014 Bánsághi Anna 1 of 33

SOA modell: Ez az interfész definiálja az elérhető adatokat, és megadja, hogy hogyan lehet azokhoz hozzáférni.

Átírás:

1 Egy objektumorientált architekturális modell a rendszert lazán kapcsolódó, jól definiált interfészekkel rendelkezı objektumok halmazára tagolja. Az objektumok a többi objektum által biztosított szolgáltatásokat hívják. A felbontás objektumosztályokkal, azok attribútumaival és mőveleteivel foglalkozik. Implementációkor az objektumok ezekbıl az osztályokból jönnek létre, és az objektum mőveleteinek koordinálásához valamilyen vezérlési modellt alkalmaznak. 2 Az objektumorientált megközelítés elınye: az objektumok lazán kapcsolódnak, így az objektumok implementációja változtatható anélkül, hogy az hatással lenne más objektumokra. A komponensek közvetlen implementációjának biztosítására objektumorientált programozási nyelveket fejlesztettek ki. Hátránya: az objektumoknak explicit módon kell hivatkoznia a többi objektum nevére és interfészére. Ha a rendszerben interfész változtatás történt, akkor a változtatást minden, a megváltozott objektumot használó helyen át kell vezetni. 3 4 1

Más néven adatfolyam-modell. Lényege: Funkcionális transzformációk dolgozzák fel a bemeneteket és hoznak létre kimeneteket, közöttük áramlanak az adatok és sorban elırehaladva kerülnek átalakításra. Minden feldolgozási lépés transzformációként valósul meg. A bemeneti adatok ezeken a transzformációkon mennek keresztül, míg végül átalakulnak kimeneti adatokká. A transzformációk mind szekvenciálisan, mind pedig párhuzamosan végrehajthatók. Az adatok egyesével vagy kötegelve is feldolgozhatók. Az interaktív rendszereket nehéz csıvezetékelvő modell alapján megírni, míg az egyszerő szöveges be-, illetve kimenet modellezhetı ily módon. 5 6 Elınye: támogatja a transzformációk újrafelhasználhatóságát, könnyen érthetı és bıvíthetı új transzformációkkal, implementálható konkurens és szekvenciális környezetben egyaránt. Hátránya: Az egyes transzformációknak vagy egyeztetniük kell egymással az átadandó adatok formátumát, vagy a kommunikációban részt vevı adatok számára egy szabványos formátumot kell kialakítani. 7 8 2

Ahhoz, hogy az alrendszerek rendszerként mőködjenek, vezérelni kell ıket. hogy szolgáltatásaik a megfelelı helyre a megfelelı idıben eljussanak. A strukturális modellek nem tartalmaznak ilyen elemeket ezért a rendszer kiépítıjének az alrendszereket valamilyen vezérlési modellnek megfelelıen kell szerveznie. A vezérlési modellek az alrendszerek közötti vezérlési folyamatokkal foglalkoznak. 1. Központosított vezérlés: a vezérlés teljes felelısségét egyetlen alrendszer látja el, amely beindítja és leállítja a többi alrendszert. 2. Eseményalapú vezérlés: ahelyett, hogy a vezérlési információ egyetlen alrendszerbe lenne beágyazva, minden alrendszer válaszolhat egy külsıleg létrejött eseményre. Ezek az események vagy más alrendszerekbıl, vagy a rendszer környezetébıl származhatnak. A vezérlési stílusok kiegészítik a strukturális stílusokat. Minden korábban bemutatott strukturális stílust meg lehet valósítani központosított és eseményalapú vezérléssel egyaránt. 9 10 A központosított vezérlési modellben létezik egy kitüntetett alrendszer: a rendszer-vezérlı, A többi alrendszer végrehajtásáért felelıs. A központosított vezérlési modellek két csoportba oszthatók: attól függıen, hogy a vezérelt alrendszerek szekvenciálisan vagy párhuzamosan hajtódnak-e végre. 1. A hívás-visszatérés modell: A megszokott fentrıl le alprogram modellje, ahol a vezérlés az alprogram-hierarchia csúcsán kezdıdik és alprogramhívások segítségével jut el a fa alsóbb szintjeire. Ez a modell csak szekvenciális rendszerek esetén alkalmazható. 11 12 3

A vezérlés a hierarchiában magasabb szintő rutintól jut el az alacsonyabb szinten lévıhöz, majd visszatér a hívás helyére. A modell modulszinten használható a tevékenységek és objektumok vezérlésére, mert sok objektumorientált rendszerben az objektumok mőveletei (metódusok) eljárásként vagy függvényként vannak implementálva. A modell merev és korlátozott természete egyben elıny és hátrány is. Erıssége a vezérlési folyam elemzésének és bizonyos bemenet esetén a rendszer válasza kiszámíthatóságának viszonylagos egyszerősége. Hátránya, hogy a normálistól eltérı mőködés esetén használata kényelmetlen. 13 14 2. A kezelımodell: Konkurens rendszerekre alkalmazható. Egy kijelölt rendszerkezelı rendszerkomponens irányítja a többi rendszerfolyamat indítását, leállítását, valamint koordinálja azokat. A folyamat olyan alrendszer vagy modul, amely végrehajtható más folyamatokkal párhuzamosan. Ez a fajta modell használható szekvenciális rendszerek esetén is. 15 A rendszert vezérlı folyamat a rendszer állapotváltozói alapján dönti el: hogy az egyes folyamatokat mikor kell elindítani, illetve leállítani. Ellenırzi: hogy a többi folyamat hozott-e létre feldolgozandó vagy feldolgozásra továbbküldendı információt. A vezérlı általában ciklikusan ellenırzi az érzékelıket és folyamatokat, bekövetkezett-e valamilyen esemény vagy állapotváltozás. Éppen ezért ezt a modellt eseményciklusmodellnek is szokás nevezni. 16 4

Az esemény-vezérelt vezérlési modelleket külsıleg létrehozott események irányítják. Az eseményvezérelt rendszereknek sok fajtája ismeretes, beleértve a szerkesztıket, ahol a szerkesztı utasításokat felhasználói felület események jelzik. 1. Eseményszóró modellek 2. Megszakításvezérelt modellek 17 18 Eseményszóró modellek: egy esemény minden alrendszerhez eljut, és bármelyik, az esemény kezelésére programozott alrendszer reagálhat rá. A vezérlési politika nincs beépítve az eseményés üzenetkezelıbe. Az alrendszerek eldöntik, hogy mely eseményekre tartanak igényt, az esemény- és üzenetkezelı pedig biztosítja, hogy ezek az események eljussanak hozzájuk. Megszakításvezérelt modellek: Ezeket kizárólag olyan valós idejő rendszerekben használják, ahol egy megszakítás-kezelı észleli a külsı megszakításokat. Ezek aztán valamely más komponenshez kerülnek feldolgozásra. 19 20 5

Egy objektumorientált rendszer egymással együttmőködı objektumokból áll, amely az objektum saját állapotát karbantartja és errıl az állapotról információs mőveleteket biztosít. Az állapot reprezentációja privát, az objektumon kívülrıl közvetlenül nem hozzáférhetı. Egy objektumorientált tervezési folyamat az objektum-osztályoknak és az azok közötti kapcsolatoknak a megtervezésébıl áll. 21 22 Az objektumorientált tervezés az objektumorientált fejlesztés része a fejlesztési folyamat során objektumorientált stratégiát használunk: 1. Objektumorientált elemzés: a szoftver objektumorientált modelljének kialakításával foglalkozik. 2. Objektumorientált tervezés: a meghatározott követelményeknek megfelelı szoftverrendszer objektumorientált modelljének kialakítása. Az objektumorientált tervezés objektumai a probléma megoldásával kapcsolatosak. A különbözı lépések közötti átmenetnek észrevehetetlennek kell lennie, Mindegyik lépésben kompatibilis jelölésrendszert kell használni. Az objektumorientált rendszereket a más elven fejlesztett rendszerekkel szemben könnyebb megváltoztatni, mert az objektumok egymástól függetlenek. 3. Objektumorientált programozás: a szoftverterv objektumorientált programozási nyelven történı megvalósítása. Pl.: C++, D, Java. 23 24 6

Egy objektum implementációjának megváltozása vagy új szolgáltatásokkal történı bıvülése nem befolyásolhatja a rendszer többi objektumát. Ezért azt mondhatjuk, hogy az objektumok potenciálisan újrafelhasználható komponensek, mivel az állapotnak és a mőveleteknek független egységbe zárásai. Ez növeli az érthetıséget és így a terv karbantarthatóságát is. 25 Ian Sommerville féle objektum definíció: Egy objektum egy állapottal és az ezen az állapoton ható, meghatározott mőveletekkel rendelkezı entitás. Az állapotot objektum-attribútumok halmazaként adjuk meg. Az objektum mőveletei szolgáltatásokat biztosítanak a többi objektum számára. Az objektumok egy objektumosztály-definíció alapján jönnek létre. 26 Egy objektumosztály definíciója egyszerre típusspecifikáció és egy objektumok létrehozására szolgáló sablon. Az adott osztályba tartozó objektummal kapcsolatos összes attribútum és mővelet deklarációját tartalmazza. 27 Az Alkalmazott objektumosztály 28 7

Az objektumok úgy kommunikálnak, hogy szolgáltatásokat kérnek más objektumoktól (meghívják azok módszereit). A szolgáltatás végrehajtásához szükséges információ és a szolgáltatás végrehajtásának eredményei paraméterként adódnak át. Pl.: // Egy puffer objektum módszerének hívása, amely visszaadja a pufferben található következı értéket v = Buffer.GetNextElement(); // Puffer elemszámának a beállítása v = Buffer.SetElements(20); 29 Egy objektum szolgáltatáskérés üzenetet küldhet egy másiknak, akitıl a szolgáltatást kéri. A fogadóobjektum: elemzi az üzenetet, azonosítja a szolgáltatást és az ahhoz kapcsolódó adatokat, majd végrehajtja a kívánt szolgáltatást. Ha a szolgáltatáskérelmek ily módon vannak implementálva, az objektumok közötti kommunikáció szinkron, azaz a hívóobjektum megvárja a szolgáltatás befejezıdését (soros végrehajtás). A gyakorlatban a legtöbb objektum-orientált nyelvben ez a modell az alapértelmezett. 30 Az újabb OOP nyelvekben azonban, mint pl. a JAVA-ban vagy a D-ben, léteznek a szálak, amelyek megengedik a konkurens módon végrehajtódó objektumok létrehozását és az aszinkron kommunikációt (a hívóobjektum folytatja a mőködését az általa igényelt szolgáltatás futása alatt is). Ezek a konkurens objektumok kétféleképpen implementálhatók: Aktív objektumok vagy Szerverek. 1. Aktív objektumok: önmaguk képesek belsı állapotukat megváltoztatni és üzenetet küldeni, anélkül, hogy más objektumtól vezérlıüzenetet kaptak volna. (Ellentétük a passzív objektum.) Az aktív objektumot reprezentáló folyamat ezeket a mőveleteket folyamatosan végrehajtja, így soha nem függesztıdik fel. 31 32 8

2. Szerverek: az objektum a megadott mőveleteknek megfelelı eljárásokkal rendelkezı párhuzamos folyamat. Az eljárások egy külsı üzenetre válaszolva indulnak el és más objektumok eljárásaival párhuzamosan futhatnak. Mikor befejezték a tevékenységüket, az objektum várakozó állapotba kerül és további kéréseket vár. A szervereket leginkább osztott környezetben érdemes használni, ahol a hívó és a hívott objektum különbözı számítógépeken hajtódik végre. Az igényelt szolgáltatásra adott válaszidı megjósolhatatlan, ezért úgy kell megtervezni a rendszert, hogy a szolgáltatást igénylı objektumnak ne kelljen megvárni a szolgáltatás befejezıdését. A szerverek persze egyedi gépen is használhatók ahol a szolgáltatás befejezıdéséhez némi idıre van szükség pl. nyomtatás és a szolgáltatást több különbözı objektum is igényelheti. 33 34 Aktív objektumokat akkor célszerő használni, ha egy objektumnak saját állapotát megadott idıközönként frissíteni kell. Ez valós idejő rendszerekben gyakori, ahol az objektumok a rendszer környezetérıl információt győjtı hardvereszközökkel állnak kapcsolatban. Az objektumosztályok egy generalizációs vagy öröklıdési hierarchiába szervezhetık, az általános és a specifikus objektum-osztályok közötti kapcsolatot jeleníti meg. A hierarchiában a lejjebb található osztályok: rendelkeznek ugyanazokkal az attribútumokkal és mőveletekkel, mint szülıosztályaik, de új attribútumokkal és mőveletekkel egészítheti ki azokat, valamint meg is változtathatják szülıosztályaik attribútumainak és mőveleteinek némelyikét. 35 36 9

Egy objektum belsı állapotát az attribútumainak pillanatnyi értéke határozza meg. Perzisztens objektumok: A háttértárolón azon objektumok adatait kell tárolni, amelyek élettartama hosszabb, mint a program futási ideje. Tranziens objektumok: Azon objektumok, amelyek élettartama a program futási idejénél nem hosszabb. Ha a program nagyszámú perzisztens objektummal dolgozik, érdemes egy adatbázis-kezelı rendszerrel kiegészíteni. 37 38 10