Methode
Motivation für den Einsatz
Reaktive IT-Systeme sind robust, fehlertolerant und gut skalierbar. Event-basierte Kommunikation zwischen den Diensten ist ein wesentliches Merkmal dieses Architekturstils. Nachrichtenobjekte melden einen aktuellen Zustand oder nur die Veränderung eines Zustandes. Sie werden gruppiert (z.B. nach Ort oder Zeit), können zu größeren Objekten aggregiert oder in viele kleine Objekte zerlegt werden. Manche Objekte haben eine Gültigkeit und werden verworfen, wenn sie veraltet sind. Der Baustein Event ist ein Artefakt der Systemstruktur, mit dem wir solche Ergebnisse der Software-Entwicklung dokumentieren. Dabei steht der fachliche Nutzen des Dienstes im Vordergrund. Der Titel des Bausteinsgibt einem wichtigen Nachrichtenobjekt einen eindeutigen Namen.
Autoren wollen im Baustein Event nur das dokumentieren, was Entwickler nicht durch lesbare Teile vom Code oder code-nahe Artefakte bereits ausreichend gut dokumentiert haben. Mit einem Avro-Schema oder einem Json-Schema kann beispielsweise ein auf JSON basierendes Nachrichtenobjekt spezifiziert werden. Mit einem XML-Schema spezifizieren Entwickler ein XML basierendes Nachrichtenobjekt. Autoren beschreiben im Wiki nur, was sich gar nicht oder sehr schwer aus dem Code herauslesen lässt.
Wissensmanagement richtig organisieren.
Zielgerichtet.
Agil.
Iterativ.
Prozesse
Projektmanagement
Der Produktverantwortliche hat mit dem Baustein Event die Möglichkeit, frühzeitig ein wichtiges Nachrichtenobjekt als Entwurf zu erfassen, wenn es für das Verständnis der Anwendungsdomäne hilfreich ist. Er macht das in Abstimmung mit dem Team.
Im Steckbrief des Bausteins befindet sich eine Liste der geplanten Technologien für die Implementierung des Nachrichtenobjektes. Das ist eine sehr wertvolle Information für das Architekturmanagement, um Themen wie Lizenzkosten, technische Unterstützung vom Hersteller oder unternehmensweite Vorgaben rechtzeitig zu behandeln.
Prozesse
Anforderungsanalyse
Der Produktverantwortliche hat mit dem Baustein Event die Möglichkeit, alle Eigenschaften eines Nachrichtenobjektes zu beschreiben, die wichtig für das Verständnis der Fähigkeiten der Software sind. Er macht das in Abstimmung mit dem Team.
Prozesse
Produktentwicklung
Der Baustein Event ist für Leser (z.B. Entwickler oder Tester) der zentrale Einstieg, um sich über die Bedeutung eines Nachrichtenobjekt und seiner Eigenschaften zu informieren. Der Überblick im Baustein muss jeden Leser in die Lage versetzen, das Objekt fachlich einzuordnen. Die Festlegung der Identität eines Nachrichtenobjektes ist hilfreich, um eindeutige Schlüssel für Indizierung oder Partitionierung ableiten. In der im Baustein veröffentlichten Spezifikation finden Leser alle Details zur Implementierung des Nachrichtenobjektes.
Gemäß Prinzip COD gilt der Titel des Bausteins und die Namen der beschriebenen Eigenschaften als Vorgabe für den Namen der Implementierungsklasse und die Bezeichner der Attribute eines Nachrichtenobjektes. Mit dieser einfach umzusetzenden Regel muss kein Autor mehr eine spezielle Dokumentation im Wiki schreiben, um ein Nachrichtenobjekt mit der technischen Lösung zu verknüpfen. Der Titel des Bausteins reicht als Einstieg in die Implementierung.
Seitenvorlagen für alle Bausteine und hilfreiche Makros für die Verwendung in Confluence.
Qualität
Seitenvorlage des Bausteins
Confluence unterstützt mit Seitenvorlagen die Idee der Bausteine optimal. Das folgende Beispiel kann direkt als HTML im Editor der Seitenvorlagen eingefügt werden.
Bitte hier Klicken, um den Quelltext anzuzeigen
<ac:layout> <ac:layout-section ac:type="single"> <ac:layout-cell> <h1>Steckbrief</h1> <ac:structured-macro ac:macro-id="602764ad-f953-4c2a-9ee5-db2568da1960" ac:name="details" ac:schema-version="1"> <ac:rich-text-body> <table class="relative-table wrapped" style="width: 100.0%;"> <colgroup> <col style="width: 25.0%;"/> <col style="width: 75.0%;"/> </colgroup> <tbody> <tr> <th>Kurzbeschreibung</th> <td> <div class="content-wrapper"> <ac:structured-macro ac:macro-id="b3036271-d6f0-45a5-9bf3-585e13ce4a3f" ac:name="excerpt" ac:schema-version="1"> <ac:parameter ac:name="atlassian-macro-output-type">BLOCK</ac:parameter> <ac:rich-text-body> <p> <ac:placeholder>Beschreibung der Herkunft und der fachlichen Bedeutung des Nachrichtenobjektes. </ac:placeholder> </p> </ac:rich-text-body> </ac:structured-macro> </div> </td> </tr> <tr> <th colspan="1">Technologie</th> <td colspan="1"> <ac:placeholder>Komma-separierte Liste der verwendeten Technologien. </ac:placeholder> </td> </tr> </tbody> </table> </ac:rich-text-body> </ac:structured-macro> <h1>Eigenschaften</h1> <table class="relative-table wrapped" style="width: 100.0%;"> <colgroup> <col style="width: 25.0%;"/> <col style="width: 75.0%;"/> </colgroup> <tbody> <tr> <th>Name der Eigenschaft</th> <th>Beschreibung der Eigenschaft</th> </tr> <tr> <td> <ac:placeholder>Name der Eigenschaft.</ac:placeholder> </td> <td> <ac:placeholder>Fachliche Beschreibung der Eigenschaft. </ac:placeholder> </td> </tr> </tbody> </table> </ac:layout-cell> </ac:layout-section> <ac:layout-section ac:type="single"> <ac:layout-cell> <p> <br/> </p> </ac:layout-cell> </ac:layout-section> <ac:layout-section ac:type="single"> <ac:layout-cell> <h1>Spezifikation</h1> <ac:structured-macro ac:macro-id="7ee4d7d7-823e-409d-8344-a88f5af8053c" ac:name="section" ac:schema-version="1"> <ac:rich-text-body> <ac:structured-macro ac:macro-id="f67afd15-e789-4765-b63a-7c89d7b45a79" ac:name="expand" ac:schema-version="1"> <ac:parameter ac:name="title">tbd (v1)</ac:parameter> <ac:rich-text-body> <p> <ac:placeholder>Bitte hier den Link zur Unterseite mit der Spezifikation für das Nachrichtenobjekt einfügen. </ac:placeholder> </p> </ac:rich-text-body> </ac:structured-macro> </ac:rich-text-body> </ac:structured-macro> </ac:layout-cell> </ac:layout-section> </ac:layout>
Struktur
Eigenschaften des Bausteins
Der Baustein Event repräsentiert ein Nachrichtenobjekt (engl. event) des IT-Systems.
Er hat einen Steckbrief mit einer Kurzbeschreibung und einer Liste der
eingesetzten Technologien.
Er erklärt wichtige Eigenschaften des Nachrichtenobjektes.
Der Seitentitel beginnt immer mit Event
.
Durch die Seitenvorlage hat jede Seite das Stichwort event
.
Sie kann aber um weitere Schlagworte ergänzt werden.
Dadurch wird die Seite leichter auffindbar.
Der Baustein Event hat eine Unterseite für jede veröffentlichten Spezifikation. Erlaubt der Architekturstil mehr als eine Version des Objektes, z.B. durch Schemaevolution, dann gibt es auch mehr als eine gültige Spezifikation mit entsprechender Kennzeichnung.
Der Baustein Event hat einen Zustand. Er ist in Arbeit, wenn keine Spezifikation vorhanden ist. Er ist fertig, wenn eine Spezifikation vorhanden ist und die Implementierung Teil eines Produktinkrementes ist.
Der Baustein Event hat durch die Spezifikation einen Bezug zu einem Produktinkrement.
Der Baustein Event wird in der Sprache der Entwickler geschrieben.