Komponens alapú programozásKompAlap Komponens alapú programozás Bevezetés Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék Ez a tananyag felhasználja.

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

Windows Communication Foundation (WCF)
© Kozsik Tamás Adatbáziskezelés •Relációs adatbáziskezelők •Noha a Java objektum-elvű, egyelőre nem az objektum-elvű adatbáziskezelőket támogatja.
Szoftverminőség, 2010 Farkas Péter. SG - Sajátos célok  SG 1. Termék / komponens megoldás kiválasztása  SP 1.1. Alternatívák és kiválasztási kritériumok.
Programozás III OOP ALAPOK.
Java komponens modellek
RENDSZERINTEGRÁLÁS B_IN012_1
A Microsoft rendszermenedzsment víziója A Dynamic Systems Initiative A System Definition Model Az üzemeltetésre tervezett szoftverek A SDM jelentősége.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Programozás alapjai A programozás azt a folyamatot jelenti, melynek során a feladatot a számítógép számára érthető formában írjuk le. C++, Delphi, Java,
RMI = Remote Method Invocation
© 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
Mérés és adatgyűjtés laboratóriumi gyakorlat Makan Gergely, Mingesz Róbert, Nagy Tamás 2. óra szeptember 9., 10. v
Programozás II. 3. Gyakorlat C++ alapok.
Modellvezérelt webalkalmazás-tervezés
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.
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.
Osztott alkalmazások kezelése. VIR elosztott architektúra indítékai: - meglévő komponensek integrációja - WEB / Internet elterjedése (nemzetköziség) -
WSDL alapismeretek A WSDL (Web Services Description Language – Web szolgáltatások leíró nyelv) egy XML-alapú nyelv a Web szolgáltatások leírására és azok.
JSP és JavaBean JavaServer Pages és Java Beans Fabók Zsolt Általános Informatikai Tanszék Miskolci Egyetem.
SZOLGÁLTATÁSMENEDZSMENT 4. előadás: ITIL V3 / Service Transition I.
Szoftvertechnológia Rendszertervezés.
Bevezetés az ebXML-be Forrás: An Introduction to ebXML ebXML and Web Services Practical Considerations In Implementing Web Services Romin IraniRomin Irani.
WEB MES (webes gyártásirányító rendszer)
Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék
Ficsor Lajos CPP6 / 1 Virtuális bázisosztály Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék.
Bevezetés a C++ programozási nyelvbe
ESzabványok Workshop 1. előadás: Bevezető, eAdatmodell október 13.
Hálózati Bombermen Belicza András Konzulens: Rajacsics Tamás BME-AAIT.
ARCHITECTArchitect AcademyFoundationsInsidersMCPtréningekvizsgákgyakorlatprojektek Novák István eEvangelist – „Dive deeper” Grepton Zrt. Technológiai vezető.
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
Budapest, június 28. Ontológia kezelő modul tervezése szöveges információt kezelő informatikai rendszer számára Förhécz András BME Méréstechnika.
Tóth Gergely, február BME-MIT Miniszimpózium, Általános célú biztonságos anonimitási architektúra Tóth Gergely Konzulensek: Hornák Zoltán.
2008/2009 – 2. félév levelező tagozat
Topológia felderítés hibrid hálózatokban
Bevezetés a PRADO keretrendszerbe Kardos Gergely.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Objektumorientált tervezés Út az objektumig Az objektum fogalma, jellemzői Objektummal kapcsolatos fogalmak Hardverfogalmak A rendszer modell nézetei Objektumorientált.
V 1.0 Szabó Zsolt, Óbudai Egyetem, Programozási Paradigmák és Technikák Programozási eszközök Interfészek Generikus.
Verhás & Verhás Szoftver Manufaktúra Mi is az a Maven? build és deployment eszköz mint az ANT dependencia manager mint az IVY riport készítő.
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.
Supervizor By Potter’s team SWENG 1Szarka Gábor & Tóth Gergely Béla.
Java web programozás 11..
Enterpise JavaBeans Simon Balázs
Objektumvezérelt rendszerek tervezése 7. óra – Iterator, State, Interpreter © Szőke Gábor.
Objektumvezérelt rendszerek tervezése 4.óra – Composite, Decorator © Fülöp Lajos.
Objektumvezérelt rendszerek tervezése
Adamkó Attila UML2 Adamkó Attila
Szoftver születik Eötvös Konferencia Köllő Hanna.
Webes alkalmazásfejlesztés
Ficsor Lajos CPP2 / 1 Származtatási mechanizmus a C++ nyelvben Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék.
Típuskonverzió a C++ nyelvben
1 Objektum orientált programozás Az objektumok és az osztályok – példányosodás Nagy Szilvia.
2. Operációs rendszerek.
5. előadás Parametrikus polimorfizmus. Generikus programozás. Az Ada sablonok.
.NET FRAMEWORK Röviden Krizsán Zoltán 1.0. Tulajdonságok I Rövidebb fejlesztés 20 támogatott nyelv (nyílt specifikáció) 20 támogatott nyelv (nyílt specifikáció)
Ficsor Lajos Objektumok inicializálása CPP4 / 1 Objektumok inicializálása Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 6. gyakorlat.
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Osztályok, objektumok definiálása és alkalmazása. Saját.
SZOFTVER TESZTKÉRDÉSEK TÖMEGES IMPORTÁLÁSÁRA ILIAS E-LEARNING KERETRENDSZERBE Kovács Magda-díj 2015/16. Kimmel Gábor Mérnökinformatikus szak MI2013N.
JSF – komponens alapú webfejlesztés. Mi az a JSF mire jó ● Egy szerver oldali, komponens alapú felhasználói felület keretrendszer ● Támogatja a webes.
A szoftver mint komplex rendszer: objektumorientált megközelítés.
UML használata a fejlesztésben, illetve a Visual Studio 2010-ben
Hibernate / EclipseLink / OpenJPA összehasonlítás
Neumann János Informatikai Kar
Web programozás és haladó fejlesztési technikák – C#
Előadás másolata:

Komponens alapú programozásKompAlap Komponens alapú programozás Bevezetés Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék Ez a tananyag felhasználja a TEMPUS S_JEP Network Computing Chapter 8 Developing of Network Computing Applications Component Based System Development (Lajos Ficsor) egyes részeit, magyar nyelvre fordítva Utolsó módosítás:

Komponens alapú programozásKompAlap / 2 Tartalom Miért kell a software komponens? A software komponens koncepció

Komponens alapú programozásKompAlap / 3 Miért kell a software komponens? A többrészes (multi-tier) architektúra elválasztja legalább a prezentáció üzleti logika adatmanipuláció rétegeket, de ezek a rétegek még így is túl komplexek maradnak A rétegek további szétválasztása lehetséges és sokszor szükséges is

Komponens alapú programozásKompAlap / 4 Miért kell a software komponens? (folyt.) Üzleti nyomás a minél rövidebb fejlesztési ciklus érdekében A komponensek segítik az újrahasználható részek fejlesztését Könnyebbé teszik a skálázható alkalmazások fejlesztését.

Komponens alapú programozásKompAlap / 5 Mi a komponens? A komponens legjellegzetesebb tulajdonságai A komponens egy függetlenül telepíthető egység A komponens jól elhatárolt a környezetétől és más komponensektől Egy komponenst a használatához telepíteni kell Egy komponens sohasem telepíthető részlegesen A komponens magába zárja az általa nyújtott szolgáltatásokat A komponens felhasználójának nem kell ismernie a komponens felépítésének részleteit

Komponens alapú programozásKompAlap / 6 Mi a komponens? (folyt.) A komponens egy harmadik fél számára fejlesztési egység (A component is a unit of third-party composition) Egy komponensnek elegendően zártnak kell lennie A komponenshez pontos specifikáció kell tartozzon Egy komponens a környezetével a jól definiált interface-én keresztül kommunikál

Komponens alapú programozásKompAlap / 7 Mi a komponens? (folyt.) Egy komponensnek nincs perzisztens állapota Egy komponenst és a saját másolatát nem lehet megkülönböztetni lehetséges kivétel: nem funkcionális attribútumok (például licensz szám) Egy komponens tetszőleges példányban betölthető és aktivizálható egy adott rendszerben. A rendszerben jelenlevő másolatok száma lényegtelen.

Komponens alapú programozásKompAlap / 8 Komponens és objektum összehasonlítása Komponens Telepítési egység Kompozíció egysége Nincs perzisztens állapota Egységbe zárja a lehetséges funkcióit (features) Objektum Példányosítás egysége Van "terve" (osztály) Az osztály: újrafelhasználható egység Van perzisztens állapota Egységbe zárja az állapotát és a viselkedését

Komponens alapú programozásKompAlap / 9 A komponens definíciója A szakirodalom számos definíciót ismer. Mi az alábbit használjuk: Clemens Szyperski (Component Software, p.34) "Egy software komponens egy kompozíciós egység szerződésszerűen specifikált interfésszel és csak explicit módon függ a környezetétől. Egy software komponens függetlenül telepíthető és harmadik fél által kompozíciós egységként használható."

Komponens alapú programozásKompAlap / 10 A definíció magyarázata Az előbbi definíció tömör, de több lényeges dolgot foglal össze. Jobb megértéséhez a továbbiakban kiemeljük és értelmezzük az egyes részeit.

Komponens alapú programozásKompAlap / 11 A komponens interfésze A definíció része: "kompozíciós egység, szerződésszerűen specifikált interfésszel" Az interfész a kliens elérési pontja a komponens szolgáltatásaihoz Egy komponensnek több interfésze lehet a különböző igényű kliensek kiszolgálásához Direct (procedural) interfész Közvetlenül a komponens biztosítja

Komponens alapú programozásKompAlap / 12 A komponens interfésze (folyt.) Indirect (object) interfész A komponens által elérhetővé tett objektum(ok) biztosítját Az indirekció módja: method dispatch (kb. metódus hívás továbbítás, továbbadás) Az objektum osztálya meghatározza az objektum interfészének implementációját Futásidőben egy metódus hívás feloldásánál az objektum megkeresi a cél objektum osztályát és a hívást az adott osztály megfelelő metódusához irányítja

Komponens alapú programozásKompAlap / 13 Indirekt interfész: egy példa 1.A nyelvtani ellenőrző ismeri a közvetítőt (mediator) 2.A nyelvtani elemző regisztrálja magát - a közvetítő csak az absztrakt interfészt ismeri 3.A szövegszerkesztő tud a közvetítőről 4.A szövegszerkesztő szerez egy referenciát az aktuális nyelvtani ellenőrzőhöz (a szerkesztő csak az absztrakt ellenőrző interfészt ismeri) Word processing component Word processor class Grammar checking component Grammar checker class Text services mediator component Text services class Checker interface has-a implements

Komponens alapú programozásKompAlap / 14 Szerződésszerű interfész Eredetileg: "contractually specified interface" Az interfész specifikáció egy szerződés a kliens és a komponens, a kliens és a komponens készítője között A szerződés rögzíti, mit kell a kliensnek tennie ahhoz, hogy használhassa az interfészt Elméletben a szerződés futásidőben finomítható

Komponens alapú programozásKompAlap / 15 A szerződés tartalma Minden operációra specifikálnia kell az alábbiakat: Prekondíciók: a kliensnek kell ezeket biztosítania az operáció igénybevétele előtt Postkondíciók: a komponensnek kell biztosítani, mielőtt visszatér a klienshez Specifikálni kell a működés helyességének szintjét: Részlegesen helyes (partially correctness): az operáció vagy helyes postkondíciókkal terminálódik, vagy egyátalán nem terminálódik Teljes helyesség (total correctness): az operáció mindenképpen terminálódik

Komponens alapú programozásKompAlap / 16 A szerződés tartalma (folytatás) A szerződés tartalmazhat a komponens működésére vonatkozó nem funkcionális követelményeket, mint például teljesímény rendelkezésre állás adatbiztonság kapacitás

Komponens alapú programozásKompAlap / 17 Explicit környezeti függőség A definíció része: "csak explicit módon függ a környezetétől" Pontosan specifikáltnak kell lennie, mit kell a komponens környezetének biztosítania a komponens működéséhez más komponensektől igényelt interfészek a környező komponens világ pontos specifikációja (komponens modell fajtája, verziószáma). Például: CORBA x.x, Java x.x.x, COM/DCOM x.x

Komponens alapú programozásKompAlap / 18 Komponens modellek Minden komponens modell egy adott osztott objektum modellt használ middleware-ként. A három legelterjedtebb komponens modell: NameMiddlewareProgramming Language Platform JavaBeans/ Enterprise JavaBeans Java RMIJavaAny ActiveXDCOMAnyMicrosoft CORBA BeansCORBAAny

Komponens alapú programozásKompAlap / 19 References Component-based programming Clemens Szyperski: Component Software. Beyond the Object-Oriented Programing Addison-Wesley, 1999 Lajos Ficsor: Component based system development