Definition „AOP“

Was ist aspektorientierte Programmierung?

| Autor / Redakteur: chrissikraus / Stephan Augsten

Aspektorientierte Programmierung erlaubt in der objektorientierten Programmierung eine feinere Modularisierung des Codes.
Aspektorientierte Programmierung erlaubt in der objektorientierten Programmierung eine feinere Modularisierung des Codes. (Bild: aosd.net)

Aspektorientierte Programmierung ist ein Programmierparadigma, das in der objektorientierten Programmierung zum Einsatz kommt. Es erlaubt, einzelne Aspekte komponentenübergreifend und voneinander isoliert zu behandeln.

Aspektorientierte Programmierung (AOP) ermöglicht in der objektorientierten Programmierung eine noch feinere Modularisierung des Codes. Das Programmierparadigma zieht hierfür komponentenübergreifende, generische Aspekte (Cross-Cutting Concerns) mit in Betracht.

Aspekte lassen sich auf diese Weise präzise vom eigentlichen Funktionsumfang der Software trennen. Der Code wird leichter zu warten und zu lesen. Aspektorientierte Programmierung ist mit einer Reihe unterschiedlicher Programmiersprachen möglich, z. B. AspectJ.

Funktionalität und logische Aspekte

Die Bestandteile nahezu jeder Software können grob in zwei Kategorien unterteilt werden:

  • Komponenten, welche die funktionalen Anforderungen des Programms umsetzen, und
  • logische Aspekte, welche technische Anforderungen wie Validierung oder Logging oder seltener auch fachliche Anforderungen (z. B. Rollensystem für Benutzer) erfüllen.

Komponenten lassen sich in der Regel relativ leicht modular gestalten und z. B. in eine Funktion kapseln. Aspekte hingegen sind mit dem herkömmlichen, objektorientierten Ansatz schwer zu isolieren. Sie kommen jedoch in praktisch jedem komplexen System vor und müssen daher mit in Betracht gezogen werden.

Join Points

In der aspektorientierten Programmierung ist häufig die Rede von Join Points - denjenigen Stellen, an denen Komponenten mit Aspekten in Berührung kommen. AOP sieht vor, dass für diese Schnittstellen oder Verwebungspunkte klar definierte Verhaltensregeln vorliegen. So ist klar, was wann zu geschehen hat, damit die gewünschte Funktionalität wie erwartet eintritt.

AOP und Cross-Cutting Concerns

Cross-Cutting Concerns (CCC) beschreiben Zusammenhänge zwischen den einzelnen Komponenten und Aspekten in einer Software, die sich durch alle Schichten der Software ziehen. Diese komponentenübergreifenden Zusammenhänge sind logisch unabhängig, können also im klassischen objektorientierten Ansatz an keiner Stelle eindeutig zugeordnet werden.

Aspektorientierte Programmierung deckt solche Konzepte ab und kann sie an zentraler Stelle wiedergeben. AOP kann also verwendet werden, um solche verteilt vorkommenden Aspekte ebenfalls modular zu gestalten. Es handelt sich immer um wiederkehrende Aspekte, die nicht an einer einzigen Stelle im Code bzw. in einer Schicht verankert sind, sondern über die gesamte Software hinweg immer wieder auftreten. Beispiele für Cross-Cutting Concerns sind:

  • Authentifizierung von Nutzern
  • Validierung von Eingaben
  • Prüfung und Behandlung von Fehlern
  • Protokollierung bestimmter Ereignisse
  • Erfassung von Daten
  • Überwachung von Transaktionen

Kommentare werden geladen....

Kommentar zu diesem Artikel

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

Was ist das Spring Framework?

Defintion „Spring“

Was ist das Spring Framework?

Das Spring Framework ist ein schlankes Open-Source-Framework für Java. Mittels Dependency Injection und aspektorientierter Programmierung soll es einen insgesamt leichteren und besser wartbaren Programmcode ermöglicht. lesen

Was ist strukturierte Programmierung?

Definition „Structured Programming“

Was ist strukturierte Programmierung?

Das Programmierparadigma der strukturierten Programmierung zielt auf verständlichen Code ab. Dies wird beispielsweise dadurch erreicht, dass auf Sprunganweisungen und andere intransparente Bedingungen sowie Abfragen verzichtet wird. lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 46132585 / Definitionen)