Komplexität von Softwarearchitekturen

Personen: Lilienthal, Carola, Dr.

In diesem Projekt wird untersucht, was Architekturkomplexität ist und wie sie in Softwareprojekten gemildert werden kann. Um Architekturkomplexität greifbar zu machen, werden Grundsätze aus der kognitiven Psychologie herangezogen, die beschreiben, wie Menschen mit komplexen Strukturen umgehen. Dabei wird deutlich, wie objektorientierte Programmiersprachen und Architekturstile diese Grundsätze berücksichtigen und wo Lücken zu erkennen sind. In vierundzwanzig Fallstudien werden Softwaresystemen aus Industrie und Wissenschaft mit dem Analysewerkzeug Sotograph untersuchen und zusätzlich Interviews durchgeführt, um weitere Fragen zu klären. Die Ergebnisse zeigen das weite Spektrum der heute in Softwarearchitekturen vorhandenen Komplexität und lassen ihre Ursachen sichtbar werden.

Parallel zu den Fallstudien wird ein Modell für Architekturkomplexität entwickelt, anhand dessen sich die Ergebnisse aus den Architekturanalysen und Interviews interpretiert lassen. Um die Ergebnisse konstruktiv nutzbar zu machen, werden drei Stadien der architekturzentrierten Softwareentwicklung entwickelt, Strategien zur Reduktion von Architekturkomplexität beschrieben und ein Leitfaden vorgestellt, wie die Strategien in den drei Stadien der architekturzentrierten Softwareentwicklung geplant und eingesetzt werden sollten.