Softwarearchitektur & OOP: Konzepte, Diagramme & Optimierung

Eingeordnet in Informatik

Geschrieben am in Deutsch mit einer Größe von 4,4 KB

Komponentendiagramm und Softwarearchitektur

Ein Komponentendiagramm visualisiert die drei Hauptschichten einer Anwendung:

  • Benutzerschicht (Interface): Verantwortlich für die Benutzeroberfläche und Interaktion.
  • Logikschicht (Geschäftsregeln): Enthält die Kernlogik und Geschäftsregeln der Anwendung.
  • Datenschicht (Datenbank): Verwaltet den Datenzugriff und die Speicherung.

Die Gestaltung von Schnittstellen und Menüs führte zur Schaffung der Interface-Design-Klasse, die sich durch Identität, Zustand und Verhalten auszeichnet.

Datenbankoptimierung: Denormalisierung

Denormalisierung ist ein Prozess, bei dem man bewusst von den Prinzipien der Normalisierung abweicht. Dies geschieht, indem ein akzeptables Maß an Redundanz und Datenabhängigkeiten in Kauf genommen wird, um die Performance des Datenzugriffs zu verbessern. Dies betrifft oft Entitäten wie Datensätze.

Grundlagen der Objektorientierten Programmierung (OOP)

Die Objektorientierte Programmierung (OOP) basiert auf mehreren Schlüsselkonzepten:

  • Kapselung

    Objekte verbergen ihre Attribute, ihren Zustand und ihr Verhalten vor anderen Objekten. Dies fördert die Modularität und schützt interne Daten.

  • Vererbung

    Ein Objekt kann Attribute und Verhalten von anderen Objekten (seinen Oberklassen) erben. Dies ermöglicht die Wiederverwendung von Code und die Schaffung von Hierarchien.

  • Überschreiben (Overriding)

    Eine Methode oder Eigenschaft, die in einer Oberklasse definiert ist, kann in einer Unterklasse neu implementiert werden, um spezifisches Verhalten zu ermöglichen. Dies ist eine Form der Polymorphie.

  • Zusammensetzung (Composition)

    Ein Objekt kann aus anderen Objekten zusammengesetzt sein. Aktionen, die auf das Gesamtobjekt angewendet werden, wirken sich auch auf seine Bestandteile aus (Propagation).

  • Polymorphismus

    Die Fähigkeit eines Objekts oder verschiedener Objekte, unterschiedlich auf dieselbe Nachricht (Methode) zu reagieren. Dies ermöglicht flexible und erweiterbare Systeme.

Interaktion und Assoziationen in OOP

  • Trigger / Ereignis

    Eine Prozedur oder Aktion wird ausgeführt, wenn eine bestimmte Bedingung erfüllt ist.

  • Assoziation

    Beschreibt die Möglichkeit der Nachrichtenübertragung zwischen Objekten zweier zugeordneter Klassen.

    Assoziationen können zwischen zwei Objekten oder Klassen bestehen und in verschiedenen Formen auftreten:

    • Bidirektional

      Objekte beider Klassen können Nachrichten senden und empfangen. Dies kann komplexer sein und mehr Overhead bedeuten.

    • Unidirektional

      Objekte einer Klasse können Nachrichten an Objekte der anderen Klasse senden, aber nicht umgekehrt. Dies führt oft zu klareren Abhängigkeiten und einfacherer Wartung.

  • Assoziationsklasse

    Wird verwendet, wenn eine Assoziation selbst Attribute oder Verhalten besitzt und somit als eigenständige Klasse modelliert werden muss.

  • Nachricht (Message)

    Ist der Aufruf einer Operation von einem Objekt einer Klasse an ein Objekt einer anderen Klasse, mit der eine Partnerschaft (Assoziation) besteht.

    Nachrichten können verschiedene Typen haben:

    • Synchron

      Der Sender wartet auf die Antwort des Empfängers, bevor er fortfährt.

    • Asynchron

      Der Sender wartet nicht auf die Antwort des Empfängers und kann sofort mit anderen Aufgaben fortfahren.

    • Timeout

      Der Empfänger hat eine bestimmte Frist, um auf den Sender zu reagieren. Wird die Frist überschritten, kann der Sender eine alternative Aktion ausführen.

    • Bestätigung / Quittierung

      Der Sender kontrolliert den Nachrichtenfluss basierend auf der Bestätigung oder Antwort des Empfängers.

Eigenschaft der Propagation

Die Eigenschaft der Propagation, insbesondere bei der Zusammensetzung, beschreibt, wie Änderungen am Gesamtobjekt sich auf seine Bestandteile auswirken, wenn die Bestandteile vollständig im Ganzen enthalten sind. Dies bedeutet, dass Aktionen auf das Ganze auch die Parteien betreffen.

Verwandte Einträge: