Logische Architektur

Auftrennung in Module

ISO 25010

Diese ISO Norm beschreibt, wie eine Software zu analysieren ist. Functional Suitability

  • Appropriateness
  • Accuracy
  • Compliance

Reliability

  • Availability
  • Fault tolerance
  • Recoverability
  • Compliance

Performance efficiency

  • Timebehaviour
  • Resourceutilisation
  • Compliance

Operation (Useability)

  • Appropriatenessrecogniseability
  • Leranability
  • Ease-of-use
  • Helpfulness
  • Attractiveness
  • Technicalaccessibility
  • Compliance

Security

  • Confidentiality
  • Integrity
  • Non-repudiation
  • Accountability
  • Authenticity
  • Compliance

Maintainability

  • Modularity
  • Reusability
  • Analyzability
  • Changeability
  • Modification stability
  • Testability
  • Compliance

Transferability

  • Portability
  • Adaptability
  • Installability
  • Compliance

Schnittstellen (Interfaces)

Exportierte Schnittstellen

  • Definieren angebotene Funktionalität
  • Sind im Sinne eines Vertrags garantiert
  • Definieren wie ein Modul verwendet werden muss
  • Modul kann intern beliebig verändert werden, solange Schnittstellen gleich bleiben

Importierte Schnittstellen

  • Verwendet ein Modul andere Module, so importiert sie deren Schnittstellen
  • Einzige Kopplung zwischen Modulen

Kapselung und Austaschbarkeit

  • Der Bausteil kapselt die Implementierung dieser Schnittstellen ab. Somit ist die Implementation unsichtbar für die Aussenwelt
  • Daher kann dieser durch andere Bausteine problemlos ersetzt werden

Güte einer Modularisierung

Kohäsion

  • Ein Mass für die Stärke des inneren Zusamenhangs
  • Je höher die Kohäsion innerhalb eines Moduls, desto besser die Modularisierung
    • schlecht: zufällig, zeitlich
    • gut: funktional, objektbezogen

Kopplung

  • Ein Mass für die Abhängigket zwischen Modulen
  • Je geringer die wechselseitige Kopplung zwischen den Modulen, desto besser die Modularisierung
    • schlechte: Globale Kopplung (Globale Daten)
    • akzeptabel: Datenbereichskopplung: (Referenz auf gemeinsame Daten)
    • gut: Datenkopplung (alle Daten werden beim Aufruf der Schnittstelle übergeben)

Clean Architecture

Entities

Kapseln die Business Rules gültig für das gesamte Unternehmen

Use Cases

Beinhalten die Business Rules einer Anwendung, orchestriert die Verwendung der Entities

Interface Adapters

Adapter für die Konvertierung von Daten aus Datenbank oder web

Frameworks and Drivers

![[Pasted image 20230602171312.png]]

N+1 View Model

Logical View

  • Welche Funktionalität bietet das System gegen aussen an?
  • Wichtige Aspekte: Schichten, Subsysteme, Pakete, Frameworks, Klassen, Interfaces
  • UML: Systemsequenzdiagramme, Interaktionsdiagramme, Klassendiagramm, Zustandsdiagramme

Process View

  • Welche Prozesse laufen wo und wie ab im System?
  • Wichtige Aspekte: Prozesse, Threads, Wie werden Anforderungen wie Performance und Stabilität erreicht?
  • UML: Klassendiagramme, Interaktionsdiagramme, Aktivitätsdiagramme

Development View (Implementation View):

  • Wie wurde die logische Struktur (Layer, Schichten, Komponenten) umgesetzt?
  • Wichtige Aspekte: Source Code, Executables, Artefakte
  • UML: Paketdiagramme, Komponentendiagramme

Physical View (Deployment View):

  • Auf welcher Infrastruktur wird ein System ausgeliefert/betrieben?
  • Wichtige Aspekte: Prozessknoten, Netzwerke, Protokolle
  • UML: Deployment Diagram

Scenarios (Use Cases)

  • Welches sind die wichtigsten Use-Cases und ihre nichtfunktionalen Anforderungen? Wie wurden sie umgesetzt?
  • Wichtige Aspekte: Architektonisch wichtige Ucs, deren nichtfunktionale Anforderungen und deren Implementation
  • UML: UC-Diagramm, Systemsequenzdiagramme, UC- Realisierungen

Paketdiagramme