Több területet érintő probléma (szoftverfejlesztés)
Az aspektusorientált szoftverfejlesztésben a több területet érintő problémák a program olyan részei, amelyek több szempontot is érintenek. Ezeket a szempontokat gyakran nem lehet tisztán szétválasztani a rendszer többi részétől sem a tervezés, sem a megvalósítás során, és ez szétszóródást (kódduplikáció), összegabalyodást (jelentős függőségek a rendszerek között) vagy mindkettőt eredményezheti.
Például, ha egy orvosi feljegyzések kezelésére szolgáló alkalmazást írunk, az ilyen feljegyzések indexelése központi kérdés, míg a feljegyzések adatbázisában vagy a felhasználói adatbázisban bekövetkezett változások előzményeinek naplózása, vagy egy hitelesítési rendszer több területet érintő kérdés lenne, mivel ezek a program több részével is kölcsönhatásba lépnek.
Háttér
[szerkesztés]A több területet érintő problémák a program olyan részei, amelyek a rendszer számos más részétől függenek, vagy a rendszer számos más részét érintik.[1] Ezek képezik a szempontok kidolgozásának alapját. Az ilyen több területet érintő szempontok nem illeszkednek egyértelműen az objektumorientált programozáshoz vagy a procedurális programozáshoz.[2]
Az átfogó problémák közvetlenül felelősek lehetnek a programon belüli összefonódásokért vagy rendszerfüggőségekért. Mivel a procedurális és funkcionális nyelvi konstrukciók teljes egészében eljáráshívásokból állnak, nincs olyan szemantika, amelyen keresztül két cél (a megvalósítandó képesség és a kapcsolódó több területet érintő aggály) egyszerre kezelhető lenne.[3] Ennek eredményeképpen a több területet érintő problémára vonatkozó kódot szét kell szórni, vagy duplikálni kell a különböző kapcsolódó helyeken, ami a modularitás elvesztését eredményezi.[4]
Az aspektusorientált programozás célja, hogy a moduláris felépítés megőrzése érdekében az átfogó problémákat aspektusokba foglalják. Ez lehetővé teszi az átfogó problémákat kezelő kód tiszta elkülönítését és újrafelhasználását. Azáltal, hogy a tervezést a több területet érintő aggályokra alapozzuk, a szoftverfejlesztés előnyei közé tartozhat a modularitás és az egyszerűsített karbantartás.
Példák
[szerkesztés]Példák azokra az problémákra, amelyek általában több területet érintőek:
- Üzleti szabályok
- Gyorsítótárazás
- Kódmobilitás
- Adatellenőrzés
- Domainspecifikus optimalizálás
- Környezeti változók és egyéb globális konfigurációs beállítások
- Hibafelismerés és -javítás
- Nemzetköziesítés és lokalizáció, amely magában foglalja a nyelvi lokalizációt is
- Információbiztonság
- Logolás
- Memóriakezelés
- Monitoring
- Folyamatosság
- Termékjellemzők
- Valós idejű megszorítások
- Szinkronizálás
- Tranzakció-feldolgozás
- Környezetérzékeny súgó
Hivatkozások
[szerkesztés]- ↑ Kiczales et. al 2002, p. 4
- ↑ Kiczales et al. 1997, p. 1
- ↑ Kiczales et al. 1997, p. 6
- ↑ Kiczales et al. 1997, p. 1
Fordítás
[szerkesztés]Ez a szócikk részben vagy egészben a Cross-cutting concern című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.