Problem przekrojowy - Cross-cutting concern

W rozwoju oprogramowania zorientowane aspekt , obawy przekrojoweaspekty o programie , które wpływają na inne obawy . Obawy te często nie mogą być wyraźnie oddzielone od reszty systemu zarówno podczas projektowania, jak i implementacji, i mogą skutkować rozproszeniem ( duplikacją kodu ), plątaniną (znaczne zależności między systemami) lub obydwoma.

Na przykład, jeśli pisanie aplikacji do obsługi dokumentacji medycznej , indeksowanie takich rekordów jest głównym problemem , podczas gdy rejestrowanie historii zmian w bazie danych rekordów lub bazie danych użytkowników lub systemie uwierzytelniania byłoby problemem przekrojowym, ponieważ wchodzą w interakcje z większą liczbą części programu.

Tło

Problemy przekrojowe to części programu, które opierają się lub muszą wpływać na wiele innych części systemu. Stanowią podstawę do rozwoju aspektów . Takie przekrojowe problemy nie pasują do programowania obiektowego lub programowania proceduralnego .

Problemy przekrojowe mogą być bezpośrednio odpowiedzialne za plątanie lub współzależności systemowe w ramach programu . Ponieważ proceduralne i funkcjonalne konstrukcje językowe składają się wyłącznie z wywoływania procedur, nie ma semantyki, za pomocą której można by jednocześnie zająć się dwoma celami (możliwością do zaimplementowania i powiązanymi problemami przekrojowymi). W rezultacie kod odnoszący się do problemu przekrojowego musi być rozproszony lub zduplikowany w różnych powiązanych lokalizacjach, co skutkuje utratą modułowości .

Programowanie zorientowane aspektowo ma na celu ujęcie przekrojowych problemów w aspekty w celu zachowania modułowości. Pozwala to na czystą izolację i ponowne użycie kodu rozwiązującego problem przekrojowy. Opierając projekty na zagadnieniach przekrojowych, korzyści płynące z inżynierii oprogramowania mogą obejmować modułowość i uproszczoną konserwację.

Przykłady

Przykłady obaw, które zwykle mają charakter przekrojowy, obejmują:

Zobacz też

Bibliografia

Bibliografia

  • Kiczales, Gregor; Oświetlenie, John; Mendhekar, Anurag; Maeda, Jan; Lopes, Cristina; Longtier, Jean-Marc; Irwina (1997). "Programowanie aspektowe". Materiały z 11. Europejskiej Konferencji Programowania Obiektowego (ECOOP 1997) : 220–242.
  • Patent USA 6467086 , Kiczales i in. al, " Programowanie aspektowe ", wydany 15.10.2002 
  • Li, Harry; Krishnamurthi, Shriram; Fisler, Kathi (2002). „Weryfikacja funkcji przecinania jako systemów otwartych”. ACM SIGSOFT Uwagi dotyczące inżynierii oprogramowania . 27 (6): 89–98. CiteSeerX  10.1.1.8.9445 . doi : 10.1145/605466.605481 . S2CID  52835673 .
  • Parnas, David L. (grudzień 1972). „O kryteriach stosowanych w rozkładaniu systemów na moduły”. Komunikaty ACM . 15 (12): 1053–1058. CiteSeerX  10.1.1.90.8963 . doi : 10.1145/361598.361623 . S2CID  53856438 .
  • Tarr, Peri; Ossher, Harold; Harrisona, Williama; Sutton, Stanley M., Jr. (1999). N Stopnie separacji: wielowymiarowa separacja obaw . Materiały XXI Międzynarodowej Konferencji Inżynierii Oprogramowania . Los Angeles, Kalifornia, USA: IEEE Computer Society Press . s. 107-119. CiteSeerX  10.1.1.89.1641 . doi : 10.1109/ICSE.1999.841000 . Numer ISBN 978-1581130744.

Dalsza lektura

  • Laddad, R. (2003): Aspekt J w działaniu, Praktyczne programowanie zorientowane na aspekt, Manning Publications Co.

Zewnętrzne linki