KompAlap - PowerPoint PPT Presentation

1 / 19
About This Presentation
Title:

KompAlap

Description:

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 – PowerPoint PPT presentation

Number of Views:91
Avg rating:3.0/5.0
Slides: 20
Provided by: Fics1
Category:

less

Transcript and Presenter's Notes

Title: KompAlap


1
Komponens alapú programozásBevezetés
  • Ficsor Lajos
  • Miskolci Egyetem
  • Általános Informatikai Tanszék
  • Ez a tananyag felhasználja a
  • TEMPUS S_JEP-12495-97Network 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
Tartalom
  • Miért kell a software komponens?
  • A software komponens koncepció

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
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
Mi a komponens?
  • A komponens legjellegzetesebb tulajdonságai
  • A komponens egy függetlenül telepítheto egység
  • A komponens jól elhatárolt a környezetétol és más
    komponensektol
  • Egy komponenst a használatához telepíteni kell
  • Egy komponens sohasem telepítheto 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
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 elegendoen 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
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 tetszoleges példányban betöltheto
    és aktivizálható egy adott rendszerben. A
    rendszerben jelenlevo másolatok száma
    lényegtelen.

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
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
    szerzodésszeruen specifikált interfésszel és csak
    explicit módon függ a környezetétol. Egy software
    komponens függetlenül telepítheto és harmadik fél
    által kompozíciós egységként használható."

10
A definíció magyarázata
  • Az elobbi 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
A komponens interfésze
  • A definíció része
  • "kompozíciós egység, szerzodésszeruen 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özo igényu kliensek kiszolgálásához
  • Direct (procedural) interfész
  • Közvetlenül a komponens biztosítja

12
A komponens interfésze (folyt.)
  • Indirect (object) interfész
  • A komponens által elérhetové 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ásidoben 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 megfelelo metódusához
    irányítja

13
Indirekt interfész egy példa
  1. A nyelvtani ellenorzo ismeri a közvetítot
    (mediator)
  2. A nyelvtani elemzo regisztrálja magát - a
    közvetíto csak az absztrakt interfészt ismeri
  3. A szövegszerkeszto tud a közvetítorol
  4. A szövegszerkeszto szerez egy referenciát az
    aktuális nyelvtani ellenorzohöz (a szerkeszto
    csak az absztrakt ellenorzo interfészt ismeri)

Word processing component
Grammar checking component
Word processor class
Grammar checker class
has-a
1
has-a
4
has-a
3
implements
2
Text services class
Checker interface
has-a
Text services mediator component
14
Szerzodésszeru interfész
  • Eredetileg "contractually specified interface"
  • Az interfész specifikáció egy szerzodés
  • a kliens és a komponens,
  • a kliens és a komponens készítoje
  • között
  • A szerzodés rögzíti, mit kell a kliensnek tennie
    ahhoz, hogy használhassa az interfészt
  • Elméletben a szerzodés futásidoben finomítható

15
A szerzodé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 elott
  • Postkondíciók a komponensnek kell biztosítani,
    mielott visszatér a klienshez
  • Specifikálni kell a mukö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
A szerzodés tartalma (folytatás)
  • A szerzodés tartalmazhat a komponens mukö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
Explicit környezeti függoség
  • A definíció része
  • "csak explicit módon függ a környezetétol"
  • Pontosan specifikáltnak kell lennie, mit kell a
    komponens környezetének biztosítania a komponens
    muködéséhez
  • más komponensektol igényelt interfészek
  • a környezo 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 modellek
  • Minden komponens modell egy adott osztott
    objektum modellt használ middleware-ként.
  • A három legelterjedtebb komponens modell

Name Middleware Programming Language Platform
JavaBeans/ Enterprise JavaBeans Java RMI Java Any
ActiveX DCOM Any Microsoft
CORBA Beans CORBA Any Any
19
References
  • Component-based programming
  • Clemens Szyperski Component Software. Beyond the
    Object-Oriented ProgramingAddison-Wesley, 1999
  • Lajos Ficsor Component based system development
    http//mazsola.iit.uni-miskolc.hu/tempus/discom/co
    urses/net/component2.zip
Write a Comment
User Comments (0)
About PowerShow.com