Warum Domain Model Baseline?
Es wird erwartet, dass der Markt für Anwendungsmodernisierungsdienste von 6,87 Mrd. USD im Jahr 2017 bis 2022 auf 16,67 Mrd. USD ansteigen wird, mit einer jährlichen Wachstumsrate (CAGR) von 19,4 %. Technologie- und Serviceanbieter bemühen sich, den Löwenanteil an diesem Markt zu erobern.
Die Initiative zur Anwendungsmodernisierung beginnt mit der Bewertung des Anwendungsportfolios, bei der die Kandidaten für eine Modernisierung ermittelt werden. Um die Modernisierungsinitiative für diese Anwendungen fortzusetzen, benötigen Sie eine Grundlage für die Geschäftsfunktionen, die in diesen Anwendungen vorhanden sind. Die Modernisierung wird nur auf die Fähigkeiten angewendet, die für die digitale Geschäftsvision der Kunden der Anwendungen relevant sind.
Bei jeder Transformation muss die Funktionalität des aktuellen Stands in der modernisierten Anwendung sichergestellt werden. Die Baselining-Funktionalität des aktuellen Zustands ist eine Voraussetzung für die Gewährleistung der Parität. Die Funktionalität wird in Form von Dokumentation beschrieben. Der größte Teil der Dokumentation wird nicht mit der Software übereinstimmen, es sei denn, es gibt ein Softwaremodell, das ein Zwilling des Softwarecodes ist. Der Softwarecode ist die beste Darstellung des mentalen Modells der Funktionalität.
Wie visualisiert und kommuniziert man Geschäftsfähigkeiten aus dem Domänenmodell?
Event Storming ist eine schnelle Entwurfstechnik zur Visualisierung und Kommunikation von Geschäftsprozessen in Form eines Domänenmodells in einer allgegenwärtigen Sprache. Event Storming ist eine gemeinsame Sitzung von Unternehmen und IT-Abteilung mit dem Schwerpunkt auf Unternehmen und Geschäftsprozessen. Das Ergebnis der Sitzung ist ein Domänenmodell. Die einzelnen Schritte, die zu diesem Modell führen, sind im Folgenden beschrieben:
- Stürmen Sie den Geschäftsprozess, indem Sie eine Reihe von Domänenereignissen in der Verbform in der Vergangenheitsform erstellen.
- Erstellen Sie die Befehle, die jedes Domänenereignis auslösen, als aktive Verben, die auf ein Aggregat wirken
- Assoziieren Sie die Entität/das Aggregat, auf dem der Befehl ausgeführt wird und das das Ergebnis des Domänenereignisses erzeugt
- Zeichnen Sie Grenzen und Pfeile, um den Fluss darzustellen
Ein Beispiel für ein Domänenereignis
Die Befehle, die Domänenereignisse auslösen, können aus einem der folgenden Bereiche stammen:
- Benutzeraktion
- Externe Systemanfrage
- Ablauf der Zeit
- Konsequenz eines Domänenereignisses
Event Storming kann in Szenarien wie dem großen Ganzen (Projekt Kickoff) oder der Entwurfsebene (DDD, CQRS/ES) oder wertorientiert (Value Stream Mapping), retrospektiv (anfänglicher Ablauf und Verbesserungen) oder lernend (für neue Mitarbeiter) eingesetzt werden.
Wie werden die Altsysteme modelliert?
Legacy-Systeme werden mit strukturierter Systemanalyse und -design mit Schwerpunkt auf dem Datenmodell oder mit objektorientierter Analyse und Design mit Schwerpunkt auf dem Prozessmodell entwickelt. In beiden Fällen wird das als Funktionalität definierte Systemverhalten in Form von Dokumenten beschrieben.
- Geschäftsprozesse
- Anwenderberichte
- Fall-Modelle
- Modul Verfahren
- Dokumente zu den Anforderungen
- Entwurfsdokumente
Die meisten Legacy-Anwendungen verfügen über eine spärliche Dokumentation in verschiedenen Formaten, um den verschiedenen Abteilungen zu helfen.
Wie entwickelt man eine Business Capabilities Baseline für Legacy-Anwendungen?
Ein schrittweiser Ansatz für diese Übung ist ein Muss, um das Domänenmodell im Laufe der Zeit zu iterieren und zu verbessern.
Domain Events Mining
Da Geschäftsprozesse für die meisten Legacy-Anwendungen nur selten dokumentiert werden und nicht auf dem neuesten Stand sind, schlage ich einige Taktiken vor, bevor Sie sich mit Event Storming beschäftigen.
Benutzerbefehle Die Befehle der Benutzeroberfläche (UI) sind die Hauptquelle für Befehle in Legacy-Anwendungen. Als Vorbereitung auf den Event Storming-Workshop wäre es gut, die Überprüfung der Benutzeroberfläche und der Abläufe abzuschließen und einen Entwurf für einen Geschäftsprozess zu dokumentieren, wie unten beschrieben.
Dokumentieren Sie in einem Vorbereitungsworkshop Geschäftsprozesse als Abfolge von UI-Bildschirmen. Zeichnen Sie alle Tagesabläufe und alle Bildschirme der Benutzeroberfläche vollständig auf. Fügen Sie weitere Quellen für Befehle und Ereignisse hinzu.
Benutzer-, Hintergrund-, Batch-, Externe Systeme- und Timer-Befehle Bei der Ausführung der bestehenden Testsuite werden die Befehle und Ereignisse in dem Umfang aufgedeckt, den die bestehende Testsuite an Funktionen abdeckt. Bei der Entwicklung von Testsuiten, insbesondere von Testautomatisierungssuiten, wird in der Regel die Methode der funktionalen Dekomposition verwendet, um eine maximale Wiederverwendung von Funktionen zu erreichen.
Wenn also eine automatisierte Testsuite für eine Legacy-Anwendung existiert, ist das Vertrauen in die Abdeckung von Befehlen und Ereignissen höher.
Event Storming
Führen Sie den Event Storming-Workshop unter Beteiligung von Unternehmen und IT durch. Befolgen Sie die nachstehenden Richtlinien, um die besten Ergebnisse des Event Storming-Workshops zu erzielen:
- Event Mining wird sich auf Prozesse und Ereignisse konzentrieren. Es wird sich nicht auf Daten und Transaktionen konzentrieren.
- Aufgezählte Ereignisse liefern eine geschätzte Abdeckung mit Konfidenzniveau
- Die Abdeckung funktionaler Ereignisse wird mit einem Vertrauensniveau der Domänenexperten qualifiziert
- Folgen Sie dem aktuellen Systemverhalten für funktionale Ereignisse
- Aufzählung der UI-Bildschirme & Registerkarten
- Aufzählung der Befehle pro UI-Bildschirme & Registerkarten
- Zählen Sie die Aggregate auf und dokumentieren Sie alle Eigenschaften für jeden Befehl
- Benennen Sie die funktionalen Ereignisse, die die allgegenwärtige Sprache Ihres Softwaremodells für jeden Befehl widerspiegeln
- Nennen Sie die Ereignisse als vergangenes Ereignis, Verb in der Vergangenheitsform
- Speichern Sie die aggregierten Attribute und Werte im Audit Stream der Transaktion
- Speichern Sie die Feldbezeichnungen und Werte im funktionalen Ereignisstrom
- Pflegen Sie die Beziehung zwischen dem geänderten Aggregat und dem funktionalen Ereignis in derselben Transaktion
- Wenn ein ORM vorhanden ist, speichern Sie das Aggregat in dessen Tabelle, das funktionale Ereignis im Ereignisspeicher und übertragen dann die Transaktion.
Kontinuierliche Verbesserung
Führen Sie Geschäftsprozesse aus Vorbereitung und Workshop aus. Verfeinern Sie das Domänenmodell kontinuierlich durch Retrospektive und Lernen.
Fazit
Die Prinzipien des Anwendungsdesigns haben sich von Data Model Driven Design (DFD, Data Dictionary, ERD) über Process Driven Design (BPM, UML) zu Domain Driven Design (DDD) (Domain Events, Aggregates and Commands) entwickelt. Die Implementierung einer ereignisgesteuerten Microservices-Architektur erfordert ein effektives Design des Domänenmodells. DDD ermöglicht eine modulare Gestaltung der Anwendungen für Agilität, Skalierbarkeit, Ausfallsicherheit und kontinuierliche Bereitstellung. DDD ist eine Reihe von Werkzeugen, die bei der Entwicklung und Implementierung von Software helfen, die sowohl strategisch als auch taktisch einen hohen Wert liefert. Die Domäne ist das Problem und das Modell ist die Lösung für das Problem. Das Domänenmodell ist das organisierte und strukturierte Wissen über das Problem. Design ist die Art und Weise, wie die Lösung funktioniert. Ein effektives Design erfüllt die Geschäftsanforderungen und verschafft Wettbewerbsvorteile, indem es das richtige Softwaremodell des mentalen Modells der Geschäftsexperten erstellt. Schritte zur Entwicklung des Domänenmodells der Anwendung:
- Nutzen Sie die vorhandene Dokumentation, um die unterstützten Geschäftsfunktionen, Geschäftsprozesse, Schritte und Aufgaben zu beschreiben.
- Führen Sie eine Produktbegehung und eine Überprüfung der UI-Bildschirme durch und erstellen Sie einen Entwurf für ein Domänenmodell.
- Führen Sie die bestehende Testsuite aus und aktualisieren Sie das Domänenmodell, das Sie bei der Produktbegehung und der Überprüfung der UI-Bildschirme erhalten haben.
- Führen Sie einen Event Storming-Workshop mit dem Business und der IT durch. Bei Unternehmen, die Softwareprodukte herstellen, wissen die Kunden manchmal mehr als die derzeitigen Mitarbeiter. Beziehen Sie sie bei Bedarf mit ein/
- Verfeinern Sie das Domänenmodell, während Sie sich auf die Modernisierungsreise begeben
Business Capability Baselining und ihre Bedeutung für das zukünftige digitale Geschäft ist der nächste logische Meilenstein für die Anwendungsmodernisierung.
Verfasst von
Gurava Induri, EVP, Solutions Engineering
Gurava Reddy, affectionately called as IG by friends and colleagues, is a seasoned IT Professional with experience in solutions engineering, product management, product consulting, enterprise applications implementation and offshore delivery.
Contact



