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:

Hivatkozások szerkesztés

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.

Kapcsolódó szócikkek szerkesztés