cards+
Das Metamodell
Moti­vation

Das Metamodell der Bausteine einer Produktdokumentation richtet sich an jene Personen, die ein abstraktes Modell für das Verständnis der Zusammenhänge brauchen. Das Metamodell soll eine Orientierung für den Einsatz von cards+ und der effektiven Verwendung der Bausteine im Wiki sein.

Die Bausteine orientieren sich an Konzepten, die Eric Evans in seinem Buch  «Domain-Driven Design: Tackling Complexity in the Heart of Software» sehr ausführlich beschreibt. Das gilt im Besonderen für die gemeinsame Sprache (engl. ubiquitous language) und der Festlegung von Kontextgrenzen (engl. bounded context). Die gemeinsame Sprache findet bei cards+ Ausdruck durch den Baustein Term im Glossar und die konsequente Verwendung der Bausteinstruktur im Wiki entsprechend dem Prinzip COD. Kontextgrenzen werden in den Bausteinen Domain (Gruppierung eng verwandter Dienste und Objekte) und Service (z.B. für die Gruppierung der Microservices eines Dienstes) definiert.

/images/metamodell.png?v=1
System­beschreibung

In den Bausteinen der System­­beschrei­bung werden die Grenzen des IT-Systems definiert und alle Fähig­keiten der Software voll­ständig, wider­spruchs­frei und hierarchisch erfasst. Fähig­keit ist der Sammel­begriff für Anwendungs­­fälle, beson­deren Situa­tionen und bekannten und akzep­tierten Fehler eines IT-Systems.

Die Bausteine sind streng hierarchisch strukturiert und unterstützen so die Arbeitsweise top down bei der Analyse. Das bedeutet, dass ein Autor die Grenzen der Software im Baustein Topic beschreibt. In seiner weiteren Analyse der Fähigkeiten der Software gibt er im Baustein Epic einen Überblick. Den Baustein Case nutzt er, um jede einzelne Fähigkeit der Software zu erfassen und mit den Essenzschritten in der Lösung den Übergang zu den Bausteinen der Systemstruktur zu schaffen.

System­struktur

Die Bausteine der System­­struk­tur haben das Ziel, die Struktur der Software korrekt zu erfassen und einen Überblick über das Zusammen­spiel der Dienste und Objekte zu geben. Ein nach­richten-orien­tierter Architektur­stil ergibt eine andere System­­struktur als die Reali­sierung eines IT-Systems mit einem monolithischen Appli­kations­­servers.

Die Bausteine sind Platzhalter für Elemente (engl. building blocks) der Software. Abhängig vom Architekturstil ergeben sich durch den Baustein Domain Gruppen von Diensten (Baustein Service) und Objekten (Bausteine Event bzw. Entity). Der Baustein Task steht für Handlungsanweisung, die eine Betriebsorganisation braucht, um einen unterbrechungslosen und störungsfreien Betrieb des IT-Systems zu gewährleisten.

Architektur­entwurf

In den Bausteinen für den Architektur­entwurf werden die vom Auftraggeber geforderten Qualitäts­merkmale, fundamentale Entscheidungen und übergreifende Konzepte nachvollziehbar erfasst. Ein ganz wichtiges Ziel ist die Darstellung und Kommunikation des Architektur­stils.

Die Bausteine für den Architekturentwurf schaffen einen Rahmen für fundamentale Entscheidungen, Konzepte und Richtlinien. Die Bausteine Decision und Concept haben die Aufgabe, den Architekturstil nachvollziehbar zu beschreiben. Das ist ein wichtiges Element der Kommunikation im Team und mit allen interessierten Parteien. Mit dem Baustein Module werden eingesetze fremde Produkte erfasst. Mit dem Baustein Policy bekommen Richtlinien einen festen Platz in der Produktdokumentation.