Inhalt | ||||
---|---|---|---|---|
|
Software Architektur
Software Architektur definiert und organisiert grundlegende Entscheidungen zum Systemdesign.
...
die Beschreibung der Elemente aus denen ein Softwaresystem besteht
Interaktionen zwischen diesen Elementen
Entwurfsmuster (Pattern) die durch die Softwarekomposition leiten
geltende Bedingungen (Contraints) für die Entwurfsmuster
...
Normen für Software-Architektur
Die Norm ISO 42010 definiert Art und Umfang der Architekturbeschreibung für Software-Systeme und Software Engineering. In der Dokumentation einer Software Architektur sind grundlegende Konzepte oder Eigenschaften eines IT-Systems in ihrer Umgebung, inklusive ihrer einzelnen Elemente, Beziehungen und Grundsätze des Softwaredesigns und der Software-Evolution festzuhalten.
...
Wer sich mit Softwareentwicklung beschäftigt, kümmert sich häufig primär um das Schreiben von Code. Tatsächlich ist das aber nicht alles, sondern es gilt auch, die Struktur des Codes zu planen und zu entwerfen – genau mit diesem Thema beschäftigt sich das große Feld der Architektur.
Grundsätzlich lässt sich Architektur auf System- und auf Softwareebene betreiben. Während sich die Systemarchitektur mit prozessübergreifenden Strukturen und deren Orchestrierung befasst, geht es bei der Softwarearchitektur um die Struktur innerhalb eines Prozesses. Einige Architekturtypen gibt es auf beiden Ebenen, andere nur auf der Ebene der System- oder der Softwarearchitektur.
...
Die einfachste Architektur ist dabei der Monolith – es gibt nämlich nur ein einziges, großes, in sich geschlossenes Gebilde. Der Monolith funktioniert ohne Schichten oder sonstige Struktur, weshalb er am ehesten einer "Nicht-Architektur" entspricht, über die man nicht nachdenken muss, sondern die in gewissem Sinne einfach entsteht.
...
Der nächstkomplexere Ansatz ist die Client-Server-Architektur, bei der eine Anwendung in zwei Teile zerlegt wird – ein Frontend und ein Backend. In einigen Situationen ist diese Architektur das natürliche Vorgehen, beispielsweise bei der Webentwicklung, die generell die im Webbrowser ausführbare UI von der auf dem Server ausgeführten Geschäftslogik und dem Datenzugriff trennt. Auch mobile Anwendung folgen häufig diesem Ansatz.
...
Eine Alternative dazu stellen P2P-Architekturen dar, die dezentral und verteilt arbeiten, aber gänzlich ohne Server auskommen: Stattdessen sind alle Knoten einander gleichgestellt, und sie tauschen die Daten direkt aus. Eine derart aufgebaute Anwendung nachhaltig zu stören, ist sehr aufwendig, da sich das System um entstandene Löcher sozusagen selbst neue Wege sucht – im Zweifelsfall über andere Knoten.
...
Eine Mischung von all dem stellen die verteilten servicebasierten Architekturen dar, die auf der Idee basieren, eine Anwendung in kleinere fachliche Einheiten zu zerlegen, die unabhängig voneinander entwickelt, betrieben, getestet und aktualisiert werden können. Das Grundprinzip ist dabei nicht neu, denn bereits Mitte der 90er-Jahre gab es mit SOA und WOA entsprechende Ansätze, die aber technisch noch sehr aufwendig waren.
...