K-INFO
HU
EN
Belépés

Aspektus-orientált programozás és alkalmazásmodellek Jávában

Aspect-oriented Programming in Java
A tantárgyleírás hatályossága
Hatályosság kezdete:
—
Hatályosság vége:
—
Tantárgy neve (magyarul, angolul)
Aspektus-orientált programozás és alkalmazásmodellek Jávában
Aspect-oriented Programming in Java
Tantárgykód BMEVITMJV23
Tantárgyjelleg —
Képzési szint —
Kurzustípusok és óraszámok (heti/féléves)
Kurzustípus elmélet gyakorlat laboratóriumi gyakorlat
óraszám (heti) 3 0 1
jelleg (kapcsolt/önálló) — — kapcsolt
Tanulmányi teljesítmény/értékelés típusa vizsga
Tantárgy kreditértéke 4
Tantárgyfelelős
Kardkovács Zsolt Tivadar
beosztás: tanársegéd
Tantárgyat gondozó oktatási szervezeti egység
—
Kar
Tantárgy weboldala —
Tantárgy elsődleges mintatantervi jellege —
Közvetlen előkövetelmények – Erős előkövetelmény nincs
Közvetlen előkövetelmények – Gyenge előkövetelmény nincs
Közvetlen előkövetelmények – Párhuzamos előkövetelmény nincs
Közvetlen előkövetelmények – Mérföldkő előkövetelmény nincs
Közvetlen előkövetelmények – Kizáró feltétel nincs

Célkitűzés

Tantárgyprogram

1. hét

Bevezetés, a Java nyelv alapjainak összefoglalása, szintaxis, szemantika. Az objektumorientált szoftverfejlesztés alapjainak összefoglalása, típusok, tulajdonságok, műveletek, interfészek, adatrejtés, öröklődés, polimorfizmus. Az objektumorientáltság megvalósulás a Java nyelv esetén.

2. hét

A Java bájt kód, a Java nyelvi elemeinek alacsonyszintű reprezentációja. Java alkalmazások végrehajtása, az osztálybetöltési mechanizmus. Biztonság és védelem.

Laboratóriumi gyakorlat keretében: Java alapok, teljesítményvizsgálat, a Java bájt kód reprezentációjának vizsgálata

3. hét

A Java kód önvizsgáló képessége, introspection és reflection. Alkalmazási példa a reflection API hatékony használatára.

Bevezetés az aspektusorientált programozásba. A megoldani kívánt problémák felvetése. Alapfogalmak: aspektusnyelv, komponensnyelv, összefésülés, szétszóródás, aspektus dekompozíció és szövés.

4. hét

AspectJ bevezető. Aspektusnyelvek specifikációja, csatlakozási pontok, pontszűrők, tanács, egységbe zárás. Kapcsolat a komponensnyelvhez.

Laboratóriumi gyakorlat keretében: egyszerű aspektusorientált feladatok megoldása. Egyszerű naplózó és teszt aspektusok szövése.

5. hét

AspectJ kapcsolódási pontok, dinamikus kapcsolódási pontok, szignatúra, mintaillesztés, kapcsolódás típushoz, kivételhez. Kapcsolódási pontok és reflection. Példák.

AspectJ pontszűrők. A pontszűrők struktúrája. Kapcsolódási pontok kiválasztása, összetett szűrőfeltételek. Statikus és dinamikus szűrés.

6. hét

AspectJ tanácsok. Az aspektusok egységbe zárása. Tanácsok típusai. Paraméterezés. Precedencia kezelés. Példák.

Laboratóriumi gyakorlat: összetett feladatok megoldása, aspektusok (kapcsolódási pontok, pontszűrők és tanácsok) önálló megvalósítása.

7. hét

AspectJ típusközi deklaráció. Új tagok hozzáadása típusokhoz, metódusok, mezők, konstruktorok. Konfliktusok feloldása. Az öröklődési hierarchia módosítása. Példák.

Az AspectJ anatómiája. Statikus és szövési mechanizmus bemutatása. A szövés biztonsági kérdései.

8. hét

AspectJ5. A Java 5-ben bevezetett új nyelvi szerkezetek és az AspectJ kapcsolata. Generikus típusok, enumok, annotációk.

Laboratóriumi gyakorlat: a szövés mechanizmusának gyakorlati vizsgálata, AspectJ 5 feladat megoldása.

9. hét

IBM Hyper/J. Domináns dekompozíció fogalma. Többdimenziós dekompozíció, modularizáció, integráció. Hiperterek, követelmények kapcsolatmátrixa, egységek, a követelmények leképezése. Hipermetszetek, hipermodulok. A Hyper/J szintakszisa és szemantikája. Alkalmazási példa.

10. hét

A mixin objektumorientált tervesési minta. A mixin mintára épülő aspektusorientált rendszerek. Dynaop, CaesarJ, JasCo.

Laboratóriumi gyakorlat: egyszerű példák megoldása mixin alapú aspektusorientált rendszerekkel.

11. hét

Aspektusorientáltság és a J2EE. J2EE rövid összefoglalás. HTTP, XML, HTML alapok. Java alklamzásszerverek, szervletek/JSP.

JBoss AOP. Interceptorok. Aspektusok és annotációk. Introduction és mixinek. Alkalmazási példa.

12. hét

A JAC. Alkalmazási példa. Egyéb aspektusorientált rendszerek. Annotációk, Javassist, GluonJ, LogicAJ. Inject/J.

Laboratóriumi gyakorlat: JBoss AOP. Egyszerű JSP oldal készítése, és módosítása JBoss AOP felhasználásával.

13. hét

Aspektusorientált programozás alkalmazási példák: naplózás, mint keresztülmetsző követelmény, a naplózás karbantarthatósága, naplózó modul. Tesztelés új változók bevezetésével, időzítések vizsgálata.

Aspektusok dokumentációja

14. hét

Laboratóriumi gyakorlat pótlása, elővizsga

A vállalati információs rendszerek együttműködő modulok halmazából állnak, amelyek együttesen biztosítják a követelmények alapján elvárt funkcionalitást. A modulok és az azok funkcióit biztosító felület egyszerűen megvalósítható objektumorientált technológiával. Mindazonáltal a funkciók modulok közötti tetszőleges szétosztása esetén lesznek olyan funkciók, amelyek az alkalmazásban több modul között szétosztva valósulnak meg. Az aspektusok olyan modulok, amelyek centralizálják a szétosztott funkcionalitást. A tantárgy célja a Java programozási nyelvhez kapcsolódó aspektusorientált kiegészítő technológiák és nyelvek bemutatása. A fókuszban a leginkább kiforrottnak tekinthető AspectJ technológia áll.

Tanulmányi eredmények

Ez a tantárgy a KKK rendeletben meghatározott, következő kompetenciák fejlesztését szolgálja:

Tudás

Nincsenek rögzített tanulási eredmények.

Képességek

Nincsenek rögzített tanulási eredmények.

Attitűd

Nincsenek rögzített tanulási eredmények.

Autonómia és felelősség

Nincsenek rögzített tanulási eredmények.

Oktatási módszertan

Előadás, laboratórium

Tanulástámogató anyagok

Online források
Gradecki, J.D és Lesiecki, N.: Mastering AspectJ, Wiley Publishing, ISBN 0-471-43104-4 2003AspectJ on-line dokumentáció: http://www.eclipse.org/aspectj 

A tantárgy teljesítéséhez ajánlott előzetes ismeretek

Tudás típusú kompetenciák
(azon előzetes ismeretek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
Programozási alapismeretek, szoftvertechnológiai alapismeretek
Képesség típusú kompetenciák
(azon előzetes képességek és készségek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
nincs
Ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák
(azon ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák összessége, amelyek jelentősen hozzájárulnak a tantárgy eredményes teljesítéséhez)
Programozási alapismeretek, szoftvertechnológiai alapismeretek
Általános szabályok
Követelmények: A szorgalmi időszakban: 1 ZH és 6 db laboratóriumi feladat legalább elégséges elvégzéseA vizsgaidőszakban: elégséges szóbeli vizsgaElővizsga az utolsó órán. Pótlási lehetőségek: Sikertelen zárthelyi a szorgalmi időszakban a pótzárthelyin pótolható. A sikertelen (pót)zárthelyi a pótlási héten különeljárási díj ellenében egy további alkalommal pótolható. Kettő laboratóriumi gyakorlat pótolható.
Teljesítményértékelési módszerek
Szorgalmi időszakban végzett teljesítményértékelések részletes leírása

Nincs megadva részletes értékelés.

Szorgalmi időszakban végzett teljesítményértékelések részaránya

Nincs megadva részarány.

Vizsgaidőszakban végzett teljesítményértékelések részletes leírása

Nincs megadva részletes értékelés.

Vizsgarészek részaránya

Nincs megadva részarány.

Érdemjegy megállapítása

Nincs megadva érdemjegy határ.

Jelenléti és részvételi követelmények

Nincs megadva jelenléti követelmény.

Javítás, ismétlés és pótlás különös szabályai

Nincs megadva.

Rövid leírás

Nincs megadva.

Részletes leírás

Nincs megadva.

Ajánlott tantárgyak
A programozás alapjai I. (VIEEA100 vagy VIHIA106) és A programozás alapjai II. (VIEEA112 vagy VIHIA107) Nem vehetik fel, akik hallgatták a vitt9023 (Aspektus- és objektum-orientált modellek Java-ban) tárgyat.
A tantárgy elvégzéséhez szükséges tanulmányi munka

Nincs megadva munkaidő bontás.

Tantárgykövetelmények hatályossága
Tantárgykövetelmények hatályosságának kezdete:
—
Tantárgykövetelmények hatályosságának vége:
—
Tantervi elhelyezés

Nincsenek rögzített tantervi elhelyezések ehhez a tárgyverzióhoz.