Was ist Architektur

Software-Architektur vergleicht sich mit Städtearchitektur.
"Man kann nicht alles niederreißen und dann auf der grünen Wiese neu aufbauen."

Was ist Software-Architektur?

Ich habe im April 2002 als Software-Architekt zu arbeiten begonnen. Es gab weder eine Prüfung noch ein Diplom. Man teilte mich zu der Arbeit ein, weil man glaubte, dass ich es könne. In der Zwischenzeit sprach ich mit einigen Kollegen und konnte feststellen, dass es manchen von ihnen genauso gegangen war. Jeder, der sie zu Software-Architekten gemacht hatte, schien zu wissen, was es damit auf sich hätte.

Jeder stellt sich allerdings etwas anderes vor. Es scheint unmöglich zu sein, Software-Architektur durch ein Hauptwort und einengende Eigenschaftsworte zu beschreiben.

Das Carnegie Mellon Software Engineering Institute schreibt:

There is no standard, universally-accepted definition of the term, “software architecture,” although there is no shortage of definitions, either. (Definitionen)

Wenn ich mich durch die Definitionen durchackere, finde ich einander widersprechende vor. Jedenfalls wird nicht klar, ob
  • Software-Architektur das Resultat einer gewissen Planung ist, ("everything has an architecture")
  • vielleicht durch Untersuchung zur guten Architektur erklärt wird ("good software architecture") oder
  • überhaupt gemanagt werden kann.
Wenigsten kommt in einigen Definitionen der Begriff des Interessensträgers (stakeholder) vor. Daraus ließe sich ableiten, dass Software-Architektur etwas liefert, was den Interessen derselben dient.

Ein neuer Versuch der Eingrenzung

Es gibt Organisationen und spezielle Beratungsfirmen, welche sich detaillierter und seriöser mit dem Them befassen. Ich selber war sehr von den Seiten von Bredemeyer Consulting, Bloomington IN. beeindruckt.

Worin besteht das Dilemma der Software-Architektur?

Es ist alles eine Frage des Standpunktes. Wenn jemand nur für eine Applikation zuständig ist, dann sprechen wir über Anwendungs-Architektur. Die fällt relativ leicht.
Wenn jemand für alle Anwendungen in einem Unternehmen verantwortlich ist, treten die Probleme von Unterschiedlichkeiten, Inhomogenitäten und unterschiedlichen Skill-Profilen auf. In erster Linie ist es aber eine Aufgabe der Kommunikation. Applikations-Portfolio und die Entwickler des Unternehmens bilden die Herausforderungen, welche sich der Einführung von "guter" Architektur stellen. Angestrebt werden nachhaltige Systeme, die sich technischen Änderungen (auch Hypes) anpassen lassen, und die letztlich die Kosten für Entwicklung und Wartung des gesamten Anwendungs-Portfolios reduzieren. Sub-Optimierungen sind hier verboten.

Was kann ich als Software-Architekt überhaupt erreichen?

Auf diesen Seiten schildere ich einige Eindrücke, die auf dem long and winding road zu einer besseren Architektur anzutreffen sind.

Was kann ich als Software-Architektur unterrichten?

Sowohl in Leipzig als auch in Wien gibt es eine Vorlesung, die sich mit dem praktischen Umfeld großer betrieblicher Informationssysteme beschäftigt.

Schlussendlich sind Entwurfsmuster (patterns) nicht zu vernachlässigen.

Ich bin ein pattern freak. Patterns verwendet man in der Programmierung und eine Reihe anderer Verwendungszwecke. Mittlerweile gibt es schon für fast alles patterns. Sie stammen ursprünglich aus dem Bereich der "richtigen" Architektur. Eine sehr gute Einführung, welche auf den ersten Anwender bezugt nimmt, findet sich hier: Christopher Alexander:An Introduction for Object-Oriented Designers by Doug Lea.

Eine andere empfehlenswerte Einführung über die Grundkonzepte findet sich bei Brad Appleton: Patterns and Software: Essential Concepts and Terminology


Another introduction about the primary concepts you will find here: Patterns and Software: Essential Concepts and Terminology by Brad Appleton.

Mir kommt es so vor, als wären noch viele patterns im Bereich Software-Engineering und technischem Management unentdeckt, d.h. noch nicht niedergeschrieben.
a similar position as I am you might find certain links helpful. .