FAQ
© 2015 Staats- und Universitätsbibliothek
Hamburg, Carl von Ossietzky

Öffnungszeiten heute09.00 bis 24.00 Uhr alle Öffnungszeiten

Eingang zum Volltext in OPUS

Hinweis zum Urheberrecht

Dissertation zugänglich unter
URN: urn:nbn:de:gbv:18-37256
URL: http://ediss.sub.uni-hamburg.de/volltexte/2008/3725/


Komplexität von Softwarearchitekturen, Stile und Strategien

Complexity of Software Architectures, Architectural Styles and Strategies

Lilienthal, Carola

pdf-Format:
 Dokument 1.pdf (3.196 KB) 


SWD-Schlagwörter: Softwarearchitektur , Softwarelebenszyklus , Softwareentwicklung , Statische Analyse , Kognitive Komplexität , Komplexität , Reverse Engineering
Freie Schlagwörter (Deutsch): Architekturstil , WAM-Ansatz , Referenzarchitektur , Architekturzentrierte Softwareentwicklung
Freie Schlagwörter (Englisch): software architecture , architectural styles , architecture-centric software development
Basisklassifikation: 54.52
Institut: Informatik
DDC-Sachgruppe: Informatik
Dokumentart: Dissertation
Hauptberichter: Floyd, Christiane (Prof. Dr.)
Sprache: Deutsch
Tag der mündlichen Prüfung: 23.01.2008
Erstellungsjahr: 2008
Publikationsdatum: 16.07.2008
Kurzfassung auf Deutsch: In dieser Arbeit untersuche ich, wo Komplexität bei der Softwareentwicklung auftritt, und konzentriere mich auf Architekturkomplexität, die in der statischen Struktur von Softwaresystemen, der Softwarearchitektur, enthalten ist. In der Softwaretechnik existiert bereits ein umfassendes Repertoire an Architekturkonzepten und Architekturstilen, um die Komplexität von Softwarearchitekturen zu lindern. Trotzdem scheitern viele Projekte, und Entwicklungsteams beklagen sich darüber, dass ihr Softwaresystem nicht mehr wartbar und weiterentwickelbar ist.
Um Architekturkomplexität greifbar zu machen, ziehe ich Grundsätze aus der kognitiven Psychologie heran, 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.
Auf dieser Grundlage habe ich vierundzwanzig Fallstudien an Softwaresystemen in Industrie und Wissenschaft durchgeführt. Bei zweiundzwanzig Fallstudien konnte ich die Softwaresysteme mit dem Analysewerkzeug Sotograph untersuchen und die Architektur mit dem jeweiligen Entwicklungsteam diskutieren. In einigen Fällen habe ich zusätzlich ein Interview durchgeführt, um weitere Fragen zu klären. Die Ergebnisse aus den Fallstudien zeigen das weite Spektrum der heute in Softwarearchitekturen vorhandenen Komplexität und lassen ihre Ursachen sichtbar werden. Dabei wird deutlich, dass der Architekturstil einen entscheidenden Einfluss auf die Komplexität einer Softwarearchitektur hat.
Parallel zu den Fallstudien habe ich ein Modell für Architekturkomplexität entwickelt. Die drei Faktoren, auf die ich Architekturkomplexität zurückführe, sind: Mustertreue, Modularität und Geordnetheit. Aus diesen drei Faktoren leite ich Kriterien und Fragen ab. Für sechs Fragen definiere ich Maße, die eine quantitative Auswertung erlauben. Anhand des Modells für Architekturkomplexität werden die Ergebnisse aus den Architekturanalysen und aus den Interviews präsentiert und interpretiert.
Um die Ergebnisse konstruktiv nutzbar zu machen, stelle ich drei Stadien der architekturzentrierten Softwareentwicklung vor: Entwerfen, Erhalten und Erneuern von Architektur. Diese Stadien verlangen nach gut abgestimmten Strategien, wie Entwicklungsteams Architekturkomplexität reduzieren
können. Schließlich biete ich einen Leitfaden dafür an, wie die Strategien in den drei Stadien der architekturzentrierten Softwareentwicklung geplant und eingesetzt werden sollen, so dass Entwicklungsteams abhängig von ihrer Situation die passende Strategie auswählen können.
Kurzfassung auf Englisch: This work examines where complexity occurs from in software development and concentrates on architectural complexity that resides in the static structure of a software system: its software architecture. Software engineering offers an extensive repertoire of architectural concepts and styles to mitigate complexity in software architecture. However, many projects fail and development teams complain about non-maintainable software.
To substantiate architectural complexity, general principles of cognitive psychology are applied that describe how people deal with complex struc-tures. Object-oriented programming and architectural styles follow these principles to some extent but they still leave gaps.
On this basis twenty-four case studies were conducted in industrial and university contexts. Twenty-two software systems were analysed with the tool Sotograph and their architecture was discussed with the architects. In some cases interviews were carried out to clarify various points. The results show a wide spectrum of complexity in software architecture and unveil their origins. Architectural styles for instance have a crucial effect on architectural complex-ity.
At the same time a model of architectural complexity has been developed. Architectural complexity is ascribed to three factors: pattern conformity, modularity and ordering. Criteria and questions are derived from these factors. Some questions are substantiated with metrics to perform measure-ments. Following the model of architectural complexity, the results of the architecture analysis and interviews are presented and interpreted.
To harness these results, three stages in architecture-centric development are presented: designing, preserving and restoring the architecture. These stages demand well adjusted strategies as to how development teams should deal with architectural complexity. Finally a guide connects strategies and stages in such a way that development teams will be able to choose the appropriate strategy for their unique situation.

Zugriffsstatistik

keine Statistikdaten vorhanden
Legende