Aspect-Oriented Programming (AOP) je programovací paradigma založené na myšlence oddělení funkcí pro zlepšení rozdělení programu do modulů .
Metodiku AOP navrhla skupina inženýrů z výzkumného centra Xerox PARC pod vedením Gregora Kiczalese. Vyvinuli také aspektově orientované rozšíření pro jazyk Java nazvané AspectJ - (2001).
Stávající programovací paradigmata – procedurální , modulární , objektově orientované programování (OOP) a doménově orientovaný design – poskytují určité způsoby oddělení a zvýraznění funkčnosti: funkce , moduly , třídy , ale některé funkce využívající navrhované metody nelze rozdělit do samostatných entit. Taková funkcionalita se nazývá end-to- end (z angličtiny scattered - rozptýlený nebo anglicky tangled - intertwined), protože její implementace je distribuována mezi různé programové moduly. End-to-end funkčnost vede k rozptýlenému a matoucímu kódu, který je obtížné pochopit a udržovat.
Protokolování a zpracování výjimek jsou typickými příklady průřezových funkcí. Další příklady: sledování ; ověřování a ověřování přístupových práv ; programování smluv (zejména kontrola předběžných a následných podmínek). U programu napsaného v paradigmatu OOP je jakákoliv funkčnost, která nebyla rozložena , průchozí.
Podle některých autorů [1] lze však AOP s úspěchem použít i pro řešení problémů bezpečnosti, multithreadingu , správy transakcí a mnoha dalších.
Všechny jazyky AOP poskytují prostředky k izolaci end-to-end funkčnosti do samostatné entity. Protože AspectJ je předchůdcem tohoto směru, koncepty použité v tomto rozšíření se rozšířily do většiny jazyků AOP.
Základní pojmy AOP:
Vývoj softwaru | |
---|---|
Proces | |
Koncepty na vysoké úrovni | |
Pokyny |
|
Vývojové metodiky | |
Modelky |
|
Pozoruhodné postavy |
|