Softwarearchitektur

Softwaresysteme 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 

  • vor Beginn der Umsetzung ein Konzept entwickelt wird wie fachliche funktionale und nichtfunktionale Anforderungen erfüllt werden können
  • eine detaillierte Beschreibung des technischen Scopes genauere Aufwandsschätzungen und Ablaufplanung durch das Projektmanagement ermöglichen
  • sichergestellt wird, dass Compliance-, Dokumentationspflichten erfüllt werden

sie liefert zudem Daten an das Projektrisikomanagement indem sie:

  • aufzeigt an welchen Stellen Prototypen, Simulationen oder Erprobung erforderlich sind um technische Risiken zu reduzieren
  • feststellt wo Grenzen der Aufteilung / Parallelisierung der Umsetzung bestehend (etwa weil Systeme nur im Verbund testbar sind und/oder Simulationskomponenten erstellt werden müssen)
  • einen Eindruck der Gesamtkomplexität und des Testbedarfs vermittelt
  • Basisdaten für quantitatives Realisierungsmanagement (z.B. nach Funktion Points) liefert

Leistungsspektrum

Projektleitung

Gesamtprojektleitung, Budget-, Qualitäts- und Terminverantwortung (insbesondere Banken-IT, Internet, CRM-Software und IT-Infrastruktur), Projektcontrolling, Tailoring von PM-Methoden (u.a. PMI (PMBoK), Houston (HBSG), ITPM)

Projektmanagement

Operatives Projektmanagement, Netzplanung, Fortschrittskontrolle, Kommunikation, Projektreporting, Zeit-, Risiko- und Kostenmanagement.

Multi-Projekt- und Programmmanagement

Steuerung mehrerer paralleler Projekte, operativ oder aus Programmsicht. Projektübergreifendes Ressourcenmanagement, Projektcontrolling, Reifegradsteigerung, Methodenanpassung.

Einführung von Projektmanagement-Tools und -Methoden

Tailoring und Einführung von organisationsspezifischen Vorgehensmodellen und Tools.

Risikomanagement

Projektleitung im Financial Risk Umfeld (Banken, Investment Banking) Projektrisikomanagement für mittlere und große Projekte

Coaching / Training für Projektmanager

Training und Feedback für Projektleiter (projektbegleitend und/oder vorbereitend zur PMI-Zertifizierung).

PMI certified project management professional (PMP)

Operatives Projektmanagement nach PMI, Zertifizierungstraining, PMP-Coaching, Tailoring und Einführung von abgeleiteten Vorgehensmodellen.

Projektsanierung

Bestandsaufnahme von Projekten in Schieflage, Konfliktlösung, Re-Organisation, Re-Baselining, Stakeholdermanagement, Risk-Assessment und -Management, Projektleitung bis zum Projektabschluss

Kontakt

Andreas Wolf

Andreas Wolf
Freiberuflicher Unternehmensberater
Poing

Email:


Telefon:
+49 8121 2584672