Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaPiroska Soósné Megváltozta több, mint 10 éve
1
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-12495-97 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: 2007. 10. 08.
2
Komponens alapú programozásKompAlap / 2 Tartalom Miért kell a software komponens? A software komponens koncepció
3
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
4
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.
5
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
6
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
7
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.
8
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
9
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ó."
10
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.
11
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
12
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
13
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 4 3 2 1
14
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ó
15
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
16
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
17
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
18
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
19
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 http://mazsola.iit.uni-miskolc.hu/tempus/discom/courses/net/component2.zip
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.