SoftwarearchitekturSoftwaresysteme haben heute eine lange Lebensdauer über die sie von wechselnden Teams gewartet und weiterentwickelt werden. Dabei steigen die Anforderungen an Leistung und Sicherheit kontinuierlich. Fachliche Anforderungen müssen schnell und exakt umgesetzt werden um Innovativ am Markt und führend gegenüber dem Wettbewerb zu bleiben. Zuerst werden im Rahmen der Anforderungsanalyse die fachlichen und technischen Anforderungen an das System analysiert. Bei einer Systemerweiterung oder -anpassung werden in diesem Rahmen auch die Architektur des Bestandssystems und die verwendeten Basistechnologien analysiert. Ergebnis der Analyse ist eine initiale Beschreibung der fachlichen Anwendungsfälle (Use-Cases), eine Beschreibung der zu Verarbeitenden Datenobjekte und eine erste Beschreibung der Schnittstellen. Im nächsten Schritt werden nichtfunktionale Anforderungen hinsichtlich Sicherheit, Compliance, Performance oder Kompatibilität soweit detailliert und abgestimmt, dass sich daraus technische Designvorgaben herleiten lassen. Dies beinhaltet z.B. die Erfüllung von Dokumentationsvorschriften bei der Erstellung sicherheitskritischer Anwendungen, die Einhaltung von Qualitätsnormen oder die Integrierbarkeit der Anwendung in bestehende Indurstrieeanlangen. Aus der Analyse wird ein technisches Grobkonzept erstellt das bereits eine Technologieauswahl, Prozessvorschriften und grundlegende Entwurfsmuster für die Anwendung enthält. Teil des Grobkonzepts ist der initiale Modulentwurf (horizontale Strukturierung) und die technische Beschreibung der Schnittstellen und die Schichtenarchitektur (vertikale Strukturierung) der Anwendung. Grundlegende Entwurfsmuster beschreiben die Basisarchitektur der Anwendung, also z.B. Nachrichten- oder Event-Orientierung, Einsatz von Parrallelisierung und Synchronisation, Spezielle Modulimplementierungen (z.B. für Rendering Pipelines, Hardware-Verschlüsselung, Anlagesteuerung, GPU-Berechnungen oder auch spezielle Terminals und mobile Endgeräte) und die zu verwendende Persistenztechnologie. Der Modulentwurf und die Datenmodellierung erfolgen iterativ beginnend mit der ersten Datenmodellierung. Die Datenmodellierung beschreibt die Daten- und Index-Strukturen für die gewählte Persistenztechnologie (Relationsale Datenbank, Warehouse, Dateisystem, Datendatei, Cloud-Storage), sowie die Konsistenzregeln und Automatismen hierfür. Der Systementwurf grenzt die Verantwortung der einzelnen Module voneinander ab und beschreibt deren statische und dynamische Interaktion im Rahmen von Ablauf- und Sequenzdiagrammen. Anforderungen hinsichtlich Parallelität und Performance des Gesamtsystems werden anhand dieses Plans in Synchronisations- und Antwortzeitanforderungen für die einzelnen Module übersetzt. Die eingangs erfassten Anwendungsfälle für das Gesamtsystem werden soweit erforderlich in technische Use-Cases für einzelne Module übersetzt. Der Systementwurf orientiert sich an der horizontalen Strukturierung der Anwendung. Der Modulentwurf beschreibt den Aufbau jedes Teilsystems in Form von Sub-Komponenten oder Services. Ja nach Anwendungsklasse enthält der Entwurf die Berechnungsformeln bzw. das mathematische Äquivalent zentrale Algorithmen in beweisbarer Form, die Klassen und Funktionsdefinitionen und die Zuordnung der Teilfunktionen zur initialen Anforderung. Der Modulentwurf berücksichtigt die vertikale Strukturierung der Anwendung, also z.B. die Aufteilung in Peristenz- und Verarbeitungsschicht, MFC-Entwurfsmuster sowie der Einsatz spezielle Berechnungs- Verschlüsselungs- oder Steuerungshardware. Softwarearchitektur hat das Ziel unternehmerische Risiken zu reduzieren indem
sie liefert zudem Daten an das Projektrisikomanagement indem sie:
Leistungsspektrum
|
Kontakt
Andreas Wolf
Email: |