Spotlight auf Daten: Sonst klafft in der Softwarearchitektur eine riesige Lücke

20. Juni 2024

|

Matthias

Daten sind in Softwaresystemen absolut essentiell. Egal in welcher Art von Systemen, es geht nie ohne Daten. Die Art und Weise, wie Daten behandelt werden, hat entscheidende Auswirkungen auf die Qualitätsmerkmale eines Systems.

Softwarearchitektur ist die Disziplin, die sich insbesondere darum kümmert, zentrale Entscheidungen in Softwaresystemen richtig zu treffen und Qualitätseigenschaften sicherzustellen.

Und jetzt drängt sich wirklich die Frage auf, warum sowohl in der Forschung, in der Literatur und auch in der Praxis Daten oft eine so stiefmütterliche Rolle in der Softwarearchitektur spielen.

Und das ist nicht erst seit gestern so. Das ist schon sehr lange so. Softwarearchitektur kümmert sich meist um Systemdekomposition in Komponenten und Konnektoren, Module oder allgemein Bausteine. Oder auch um das Management von Architekturentscheidungen im Allgemeinen. Und das ist auch alles total wichtig! Aber Daten sind auch absolut wichtig.

Betrachtet man Daten in einer üblichen Architekturdokumentation, so beschränkt sich das meist auf einen Datenmanagement-Layer mit Datenbanken und ein Datenmodell. Das wird dem Einfluss von Daten auf das Architekturdesign und die Erreichung von Qualitätseigenschaften nicht annähernd gerecht. Insbesondere der Einfluss auf User Experience und Performance und natürlich auf Security ist enorm. Um die richtigen Daten zum richtigen Zeitpunkt am richtigen Ort zu haben, müssen Architekten sich bedeutend mehr Gedanken machen als eine Datenbank auszuwählen und ein Datenmodell zu designen.

Leider halten auch Frameworks zur Architekturdokumentation wie Arc42 oder C4 und viele andere nicht dazu an, sich fokussiert um Datenaspekte zu kümmern. Sie bieten dazu noch nicht einmal Vorlagen für Sichten an. An dieser Stelle schneiden Frameworks aus dem Bereich Enterprise Architecture Management (EAM) wie TOGAF besser ab. Diese liegen aber nicht klassisch im Software Engineering und der Softwarearchitektur.

Schon 2015 habe ich mit Kolleginnen und Kollegen einen Artikel veröffentlicht und mehrere Vorträge zu genau der Problematik gehalten: „Why Data Needs more Attention in Architecture Design“. Leider hat sich nur zu langsam etwas daran geändert. Besonders erstaunlich ist dies vor dem Hintergrund, dass Daten seit vielen Jahren im Zentrum von zahlreichen Hypes der IT stehen: Big Data, Data Science, KI, …

Immerhin gibt es immer mal wieder Praktikervorträge auf Konferenzen, die sich um das Thema kümmern. Vor allem auch im Hinblick auf Microservice-basierte Systeme und DDD bekommen Daten mehr Fokus. Dann aber meist sehr punktuell. 2021 haben wir beispielsweise einen Vortrag und einen Artikel konzipiert, der eine Brücke baut zwischen Machine Learning und Softwarearchitektur, um relevante Aspekte von KI und Machine Learning in die Welt von Softwarearchitekten zu bringen.

In vielen Frameworks zu Architekturdokumentation fehlen Daten aber nach wie vor. Als wir am Fraunhofer IESE das Dokumentationsframework ADF entwickelt haben, wurden Daten deshalb als absolut zentraler Aspekt integriert.

Um das Bewusstsein für Daten in der Softwarearchitektur zu schärfen, gibt es hier noch eine lose und natürlich unvollständige Sammlung von Themen, die einen starken Datenbezug haben und sich in der Softwarearchitektur niederschlagen können:

  • Daten und ermöglichte Geschäftsmodelle
    • SaaS
    • Mandantenfähigkeit
    • Nutzungsbasierte Abrechnungsmodelle
  • Daten und Usability / UX
    • Offlinefähigkeit
    • Mehrsprachigkeit
    • Performance (Antwortzeit und Durchsatz)
  • Datenverwaltung und Datenspeicherung
    • Typen von Datenbanken (SQL, NoSQL, In-Memory, …)
    • Datenmodelldesign
    • Partitionierung und Sharding
    • Datenlokalisierung (geographisch, Rechenzentren)
  • Datenklassifikation
    • Stammdaten, Transaktionsdaten, Konfigurationsdaten
    • Entities vs. Value Objects
  • Datenintegrität und Konsistenz
    • Constraints und Validierungen
    • Konsistenzmodelle (Strong Consistency und Eventual Consistency)
    • CAP-Theorem
    • Transaktionsmanagement
  • Datentransport
    • Transportprotokolle
    • Datentransferobjekte
    • Synchronisation von Daten über Anwendungen, Nutzer, Geräte hinweg
    • Grenzüberschreitender Datentransport und Compliance
  • Datenverarbeitung und -analyse
    • Batch-Processing
    • ETL
    • OLAP vs. OLTP
  • Datenzugriff
    • Authentifizierung und Autorisierung
    • Zugriffssteuerungsmodelle
    • Verschlüsselung von Daten
    • Auditierung und Logging
  • Datensicherheit und Datenschutz
    • Einhaltung von Compliance-Anforderungen
    • Nachweisbarkeit
    • Verschlüsselung
    • Datenherausgabe
  • Datenqualität
    • Datenvalidierung
    • Datenbereinigung
  • Datenintegration
    • Integrationsmuster
    • APIs
  • Datenmigration
    • Migrationsstrategien (Big Bang vs. Incremental, Zero-Downtime, …)
    • Migrationswerkzeuge
  • Datenarchivierung
  • Machine Learning
    • Neuronale Netze
    • Trainingsdaten
    • Inferenzdaten
  • Architekturstile (Microservices, CQRS, Event-Orientation, …)
  • Technologien jeglicher Art

Diese Themen zeigen die Vielfalt der Themen rund um Daten in der Softwarearchitektur. Natürlich sind nicht immer alle Themen relevant. Aber ganz schön oft sind es viele davon. Es ist aber direkt klar, dass die Themen auch nur an der Oberfläche kratzen. Hinter jedem dieser Themen können sich ganz individuelle und komplizierte Anforderungen verbergen, die herausgearbeitet werden müssen. Und die sind häufig stark miteinander verwoben. Und genau so sind die Entscheidungen und Konzepte zur Lösung miteinander verwoben.

Es gibt also wirklich allen Grund, Daten ins Spotlight von Softwarearchitekturen, Softwarearchitekturarbeit und Architekturdokumentation zu stellen.

Hast du Beispiele, wo Daten besonders gelungen in der Architekturarbeit berücksichtigt wurden? Oder gerade auch nicht? Wir freuen uns darüber in den Kommentaren.

Matthias

Bitte teilen

0 Kommentare

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert