Architektur und Design

“Architektur ist das, was übrigbleibt, wenn man den Beton weglässt.” :-)

ArchitekturJedem Software-System liegt (ähnlich einem Gebäude) eine Architektur zugrunde. Diese bestimmt die Aufteilung des Systems in Sub-Systeme und deren Verantwortlichkeit, ihre Beziehungen untereinander sowie ihre interne Struktur und ihr Verhalten.

Jeder Software-Architektur kommt somit eine zentrale Bedeutung zu, da sie für die meisten Eigenschaften eines Systems bestimmend ist. Sie legt fest, ob eine Anwendung effektiv und kostengünstig entwickelt werden kann und auch produktiv einsetzbar ist. Sie bestimmt aber auch, ob diese Anwendung im Laufe ihrer Lebenszeit optimiert, erweitert und an veränderte Technologien, Nutzungs-Szenarios und kundenspezifische Bedürfnisse angepasst werden kann.

Software-Architekturen mit diesen Eigenschaften auszustatten ist nicht einfach: Es braucht Erfahrung, um einen treffenden Bauplan für das Software-System, das entwickelt werden soll, zu erstellen und in seiner zentralen Vision an das Entwicklungsteam zu kommunizieren.

Teams können auf diese Weise Systeme bauen, die in sich eine eigene Schönheit aufweisen: die “Ästhetik der richtigen Lösung”.

Architekturdokumentation

Zur verständlichen Dokumentation einer Softwarearchitektur reicht eine einzelne Sicht nicht aus, sondern es sind in der Regel mehrere Sichten erforderlich, die unterschiedliche Aspekte des Systems zeigen:

  • Komponenten und Subsysteme
  • Verteilung auf mehrere Rechnerknoten
  • Prozesse
  • Schichtenbildung
  • Struktur
  • Verhalten
  • externe Schnittstellen
  • Nebenläufigkeit
  • und viele andere mehr.

Zur Dokumentation von Software- und Systemarchitekturen gibt es inzwischen ein reiches Wissen und verschiedene Standardmethoden.

Das kann ich für Sie tun:

Zu meinen Aufgaben gehören Definition und Ausbau der technischen Architektur eines sich in Entwicklung befindlichen Systems.

Schwerpunkte dabei sind:

  • Hilfe bei Entwurfsentscheidungen für die Systemarchitektur
  • Konzeption und Weiterentwicklung des technischen Designs
  • Beurteilung neuer Anforderungen bzgl. der Konsequenzen für das Gesamtsystem
  • Anleitung der Entwickler bzgl. Design
  • Hilfe beim Übersetzen komplexer Anforderungen auf die Arbeit mehrerer Teams
  • Hinweise auf mögliche Optimierungen im Entwicklungsprozess

Dabei helfen mir:

  • Erfahrung in Softwaredesign, Anwendungsentwicklung und Systemintegration
  • Kenntnisse in Java, J2EE, Datenbanken, Codegeneratoren
  • Mehrjährige Projekterfahrung in umfangreichen Projekten
  • Fähigkeit zum sicheren Erkennen der einfachstmöglichen Lösung
  • Verantwortungsbereitschaft
  • Technische Beratungskompetenz
  • Interdisziplinäres Denken
  • Kreativität und Eigeninitiative
  • Team- und Kommunikationsfähigkeit, Fremdsprachen (engl., frz., ital.)
  • Motivations- und Begeisterungsfähigkeit

Ich freue mich auf den Kontakt zu Ihnen.