Architektur
Im Architektur-Track erfährst Du alles über den Aufbau der Plattform Schleupen.CS 3.0 und die zugrundeliegenden Architekturkonzepte. Interessant, wenn Du technisch mehr ins Detail gehen möchtest – aus unserer Sicht ein Muss, wenn Du planst auf der Plattform zu entwickeln oder diese anzupassen.
Hinweis: Dieser Track beschäftigt sich ausschließlich mit der Schleupen.CS Plattform, d.h. der Version 3.0 von Schleupen.CS. Die Architektur früherer Versionen wird nicht behandelt. Da Schleupen.CS flexibel genutzt werden kann, verstehen wir alle Bausteine von Schleupen.CS als eine Plattform.
Architektur ist kein Selbstzweck
Die Architektur von Schleupen.CS 3.0 basiert auf funktionalen und nicht-funktionalen Anforderungen. Sie ist kein Selbstzweck, sondern die Summe der schwer zu ändernden Rahmenbedingungen zur Umsetzung dieser Anforderungen. Aus methodischer Sicht müssen daher zunächst die Anforderungen und Zielsetzungen beschrieben werden. Anschließend werden Architekturentscheidungen mithilfe der leichtgewichtigen Methode ATAM light und unseren Qualitätsmerkmalen getroffen und als ADRs dokumentiert.
Makro- und Mikroarchitektur
Die Architektur lässt sich grob in Makro- und Mikroarchitektur unterteilen. Die Makroarchitektur beschreibt das Zusammenspiel der Bausteine, deren Zusammenwirken mit der dafür benötigten Infrastruktur sowie Paradigmen und Regeln, die für alle Bausteine gelten.
Die Mikroarchitektur legt den architektonischen Aufbau der Bausteine selbst fest.
Effizienz-by-default - Flexibilität-by-design
Flexibilität ist eine der wesentlichen Anforderungen an Schleupen.CS. Aus diesem Grund haben wir die Makroarchitektur so gestaltet, dass es möglich ist, unter Einhaltung der durch die Makroarchitektur vorgegebenen Randbedingungen, unterschiedliche Mikroarchitekturen für die einzelnen Bausteine zu verwenden. Dies kann sich insbesondere bei der Integration von und in andere Software-Landschaften vorteilhaft auswirken und ermöglicht isolierte technologische Neuerungen in den Mikroarchitektur-Bausteinen.
Aus Effizienzgründen bringt Schleupen.CS jedoch eine Standard-Mikroarchitektur mit. Diese stellt die aus unserer Sicht besten Praktiken, Frameworks und Muster so zusammen, dass diese in allen Bausteinen verwendet werden können und den 80%-Fall abdecken. Dies erleichtert es, Erfahrungen Team-übergreifend auszutauschen. In diesem Sinne stellt die in diesem Track beschriebene Mikroarchitektur ein Template für die Schleupen-Teams dar und ist allen anderen wärmstens empfohlen. Das heißt aber im Umkehrschluss nicht, dass dieses blind angewendet werden sollte.
Domain-Driven Design
Die Architektur von Schleupen.CS 3.0 setzt auf den Mustern und Prinzipien des Domain-Driven Designs (DDD) auf. Wo immer es uns sinnvoll erscheint, weisen wir auf die zugrundeliegenden Konzepte von DDD hin und verlinken weiterführende Artikel. Es ist nicht unser Ziel, eine allgemeine Einführung in die DDD-Konzepte zu geben. Wir beschränken uns darauf:
- die Konzepte zu vermitteln, die aus unserer Sicht für die Arbeit mit Schleupen.CS nötig sind
- die Konzepte so zu vermitteln, wie wir sie bei der Entwicklung von Schleupen.CS genutzt haben.
Bibliotheksverwaltung?
Um Irritationen vorzubeugen noch ein methodischer Hinweis für diesen Track: Wir haben festgestellt, dass Beispiele, die technische und methodische Konzepte erläutern sollen, besser aus einer Anwendungsdomäne stammen, die von den Domänen von Schleupen.CS 3.0 abweicht. Andernfalls können Vereinfachungen der fachlichen Zusammenhänge zu Irritationen führen, die von den Konzepten ablenken. Aus diesem Grund verwenden wir als Beispiel eine Bibliotheksverwaltung, die es im Standardlieferumfang von Schleupen.CS nicht gibt. Diese Bibliotheksverwaltung implementiert ein Architekturbeispiel, in dem die Konzepte und Muster von Schleupen.CS 3.0 nachvollzogen werden können. Es dient auch für weitere Architekturdiskussionen und Evaluierungen.