Aspektus-orientált programozás és alkalmazásmodellek Jávában
A tantárgyleírás hatályossága
| 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) |
|
||||||||||||
| 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
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
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
Tanulástámogató anyagok
Online források
A tantárgy teljesítéséhez ajánlott előzetes ismeretek
Általános szabályok
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 tantárgy elvégzéséhez szükséges tanulmányi munka
Nincs megadva munkaidő bontás.
Tantárgykövetelmények hatályossága
Tantervi elhelyezés
Nincsenek rögzített tantervi elhelyezések ehhez a tárgyverzióhoz.