System Design und Architektur

Aspekte des System Design
Das Design eines Systems definiert dessen Struktur aus verschiedenen Sichtweisen oder Aspekten heraus. Die funktionale Sicht beschreibt, welche Funktionen zur Erfüllung der Anforderungen überhaupt nötig sind. Beispielsweise erfordert fast jedes Projekt eine Funktion zur Authentifizierung und Autorisierung von Benutzern, wohingegen ein ausgefeiltes Berechtigungsmodell nicht zwingend in jedem Projekt benötigt wird. Die architekturelle Sicht identifiziert die nötigen Komponenten des Systems und deren Zusammenwirken sowie die Allokation von Funktionen auf Komponenten. Das oben genannte Beispiel würde implizeren, dass es die Komponenten “User Manager” und “Privilege Manager” gibt, welche die Funktionen “Authentifizierung” bzw. “Autorisierung” realisieren. Beide Komponenten sollen nur auf einem “Server” existieren. Die logische Sicht kümmert sich um den Datenfluss zwischen den Komponenten und die dafür nötigen Schnittstellen. So würde “User Manager” beispielsweise eine spezifische API zur Passwortüberprüfung anbieten und “Privilege Manager” eine API zur Abfrage der freigeschalteten Berechtigungen eines Benutzers.
Mit der physischen Sicht wird definiert, welche Komponente wie implementiert wird, welche konkreten Kommunikationsmechanismen verwendet werden und auf welchen Endpunkten die Komponenten laufen. Um beim Beispiel zu bleiben, könnte der Server als Java Anwendung mit REST Schnittstelle realisiert und in einem Docker Container zur Verfügung gestellt werden.

Kompetenz
Wir erarbeiten mit Ihnen ein zukunftssicheres System Design, welches Ihre aktuellen Anforderungen erfüllt und durch die Verwendung von Best Practices und bewährten Design Paradigmen bestmöglich auf Veränderung Ihrer Anforderungen oder Rahmenbedingungen gerüstet ist. Um Design Alternativen abzuwägen bzw. um das Risiko einer (theoretischen) Design Entscheidung zu minimieren, validieren wir je nach zu erwartendem Aufwand eine Design Alternative auch gerne über einen Demonstrator oder über einen kleinen Prototypen. User Fokus im System Design liegt klarerweise im Bereich von Software. Um die Eigenschaften der physischen Sicht beurteilen zu können und um damit unserem Anspruch als Systemhaus gerecht zu werden, scheuen wir uns nicht vor dem Kontakt mit Hardware. Wir löten keine Platinen, aber wir wissen, wie man einen Rechner aufbaut – sei es motiviert durch Erweiterungen unseres eigenen selbstverwalteten Rechenzentrums oder durch Anforderungen des Kunden, beispielsweise bei der Auswahl von SoC Plattformen. Auch hardwarenahe Kommunikationsprotokolle sind uns nicht fremd.

Unabhängig davon, ob Sie uns mit einer spezifischen Aufgabe aus dem Bereich System Design je nach Erfordernis und Projektabschnitt für Ihr eigenes Projekt betrauen oder ob Sie eine komplette Systementwicklung in unsere Hände geben – wir haben die Design Aspekte im Auge und sorgen für eine solide Basis für die eigentliche Implementierung, auch begleitend zum Projekt. Hierbei passen wir uns gerne an Ihre Tool-Landschaft an oder dokumentieren das Design mit Standard Vorgehensweisen, beispielsweise UML.