Következő Előző Tartalomjegyzék

2. Objektum hierarchia leírása

A továbbiak az XML (Extensible Markup Language) 1.0-as és az UML (Universal Modeling Language) 1.3-as verziójú szabványok alapján íródnak. Az UML szabványnak csak az objektum-típusok leírására vonatkozó részét használom, mivel a modellen belül lezajló folyamatok (pl. üzenetterjedés) az aspektusok számára nem lényegesek.

Az alábbiakban a hierarchiát leíró nyelv aspektusok nélküli változata következik, a további fejezetekben ezt fogjuk kiegészíteni a szükséges többletinformációkkal. Ez a módszer azért szerencsés, mert mindegyik implementálandó aspektus követi az objektum-hierarchiát (elképzelhető lenne olyan aspektus is, ami nem követ semmilyen a domain modellre jellemző hierarchiát, példának a kivételkezelést lehetne említeni.)

Feltételezem az XML (vagy SGML) alapfokú ismeretét a továbbiakban. Álljon itt egy rövid összefoglalás az általunk használt XML struktúrákról:

Tag-ek:
'<' Név Attribútum* '>' Tartalom '</' Név '>'
Üres tag:
'<' Név Attribútum* '/>'
Attribútum:
Név '=' AttÉrték
A definiált tag-ek az objektum-hierarchia leírására a következők:

CLASS

Szintaxis <CLASS> ... </CLASS>
Attribútumok
  • NAME=OsztályNév (az osztály neve)
  • ANCESTOR=OsztályNév (az osztály ősének neve)
  • COMMENT=Szöveg (szöveges megjegyzés az osztályról)
Tartalom Nulla. vagy több ATTRIBUTE vagy METHOD tag
Helye Dokumentum törzs

A CLASS elem definiál egy osztályt. A kötelező NAME mező tartalmazza az osztály nevét. Ha az osztálynak van őse, akkor azt az ANCESTOR attribútummal adható meg. Az ős megadása nem kötelező, ha az ősnek nincsenek számunkra lényeges változói vagy metódusai. Ha vannak, akkor az őst is definiálni kell egy CLASS elemmel. Ha a CLASS-nak vannak leszármazott típusai, azokat kötelező egy-egy CLASS tag-gel definiálni.

A COMMENT mező tartalmát az aspektusokat implementáló program nem használja, ezt csak a hierarchiát emberek számára megjelenítő program számára kellhet.

METHOD

Szintaxis <METHOD> ... </METHOD>
Attribútumok
  • NAME=MetódusNév (a metódus neve)
  • COMMENT=Szöveg (szöveges megjegyzés a metódusról)
Tartalom Nulla, vagy több PARAM; Nulla vagy egy RETURN
Helye CLASS

A METHOD elem definiálja egy osztály egy metódusát. Nem szükséges az osztály összes metódusát definiálni, de ha egy metódus valamelyik aspektusunk szempontjából lényeges (pl. távolról elérhetővé akarjuk tenni), akkor kell hozzá egy METHOD tag.

A metódus paramétereit és visszatérési értékét megfelelő tagekkel definiálni kell. A paramétereket a megfelelő sorrendben kell megadni. A RETURN tag bárhol lehet, de célszerű a legvégére tenni. Ha nincs RETURN tag, az azt jelenti, hogy a metódus visszatérési értéke void.

Amennyiben az osztálynak több metódusa van azonos névvel, mindet külön definiálni kell, azonos NAME tag-gel.

PARAM

Szintaxis <PARAM/>
Attribútumok
  • TYPE=TípusNév (a paraméter típusa)
Tartalom Üres
Helye METHOD

A PARAM tag-ek egy metódus paramétereit határozzák meg. Minden paraméterhez kell egy ilyen tag. A tag-ek sorrendje lényeges!

RETURN

Szintaxis <RETURN/>
Attribútumok
  • TYPE=TípusNév (a visszatérési érték típusa)
Tartalom Üres
Helye METHOD

A metódus visszatérési értéke. Ha ez a tag hiányzik, az azt jelenti, hogy a metódus visszatérési értéke void.

ATTRIBUTE

Szintaxis <ATTRIBUTE/>
Attribútumok
  • NAME=AttrNév (az attribútum neve)
  • TYPE=TípusNév (az attribútum típusa)
Tartalom Üres
Helye CLASS
Az osztály változóihoz egy-egy ilyen tag-et lehet rendelni. Mint a metódusoknál, nem szükséges az össze attribútumnak tag-et adni, de az aspektusok csak azokkal az attribútumokkal fognak törődni, amiket itt felsorolunk (pl. ha egy fel nem sorolt attribútum nem lesz perzisztens, és megváltozása nem fogja az objektum kiírását okozni).
Következő Előző Tartalomjegyzék