Aspekt (programowanie komputerowe)
Aspekt programu to cecha powiązana z wieloma innymi częściami programu, ale niezwiązana z podstawową funkcją programu. Aspekt przecina podstawowe problemy programu, naruszając w ten sposób jego oddzielenie problemów , które próbuje objąć niepowiązane funkcje. Na przykład logowania może przecinać wiele modułów, ale aspekt logowania powinien być oddzielony od zagadnień funkcjonalnych modułu, który przecina. Izolowanie takich aspektów, jak logowanie i trwałość, od logiki biznesowej jest podstawą paradygmatu programowania zorientowanego na aspekty (AOP) .
Orientacja aspektowa nie ogranicza się do programowania, ponieważ jest przydatna do identyfikowania, analizowania, śledzenia i modularyzacji problemów poprzez pozyskiwanie wymagań, specyfikację i projektowanie. Aspekty mogą być wielowymiarowe, umożliwiając zarówno funkcjonalne, jak i niefunkcjonalne zachowanie przecinające wszelkie inne problemy, zamiast tylko mapowania niefunkcjonalnych problemów na wymagania funkcjonalne. [ potrzebne źródło ]
Jeden pogląd na tworzenie oprogramowania zorientowanego na aspekty polega na tym, że każda główna cecha programu, podstawowa troska (logika biznesowa) lub problem przekrojowy (dodatkowe funkcje) jest aspektem i splatając je razem (proces zwany także kompozycją ) , ostatecznie tworzy się całość z oddzielnych aspektów. To podejście jest znane jako programowanie czysto aspektowe, ale częściej stosowane są podejścia hybrydowe. Możliwe jest, że obawy funkcjonalne krzyżują się z problemami niefunkcjonalnymi lub funkcjonalnymi (np. potrzeba większej liczby funkcji szkodzi mobilności). Jednolite podejście do reprezentacji i kompozycji, podobne do czystego podejścia w AOP, nazywane jest reprezentacją wielowymiarową. [ potrzebne źródło ]