FAQ
© 2016 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-78585
URL: http://ediss.sub.uni-hamburg.de/volltexte/2016/7858/


Die stilbasierte Architekturprüfung : ein Ansatz zur Prüfung implementierter Softwarearchitekturen auf Architekturstil-Konformanz

Software Architecture Conformance Checking - A Style-Based Approach : Revealing Deviations from Individually Defined Structuring Principles Inside of Implemented Architectures

Becker-Pechau, Petra

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


SWD-Schlagwörter: Softwarearchitektur , Qualitätssicherung , Statische Analyse , Software Engineering , Langlebigkeit
Freie Schlagwörter (Deutsch): Architektur-Konformanzprüfung , Architekturstil , Referenzarchitektur , Architekturmuster , Evolutionäre Softwarearchitektur
Freie Schlagwörter (Englisch): software architecture conformance checking , architectural erosion , architectural style , reference architecture , architectural pattern
Basisklassifikation: 54.59 , 54.52
Institut: Informatik
DDC-Sachgruppe: Informatik
Dokumentart: Dissertation
Hauptberichter: Züllighoven, Heinz (Prof. Dr.-Ing.)
Sprache: Deutsch
Tag der mündlichen Prüfung: 04.12.2015
Erstellungsjahr: 2014
Publikationsdatum: 02.05.2016
Kurzfassung auf Deutsch: Wenn Entwicklungsteams ihre Softwarearchitektur entwerfen, definieren sie üblicherweise eine Menge von Architekturvorgaben, welche bei der Programmierung einzuhalten sind. Es zeigt sich jedoch in der Praxis, dass die implementierte Architektur oft unbemerkt von ihren Vorgaben abweicht: die Architektur erodiert. Erodierende Softwaresysteme verlieren Schritt für Schritt an Verständlichkeit, Änderbarkeit und Wartbarkeit, bis sie in extremen Fällen durch Neuentwicklungen ersetzt werden müssen. Als Gegenmaßnahme zur Architekturerosion dienen Prüfungen auf Architekturkonformanz. Sie ermitteln, ob die im Quelltext implementierte Architektur den Vorgaben entspricht. Bestehende Ansätze adressieren Vorgaben auf den Abstraktionsebenen des Quelltextes oder der Softwarearchitektur. Bisher fehlte es jedoch an Möglichkeiten, die Konformanz zu Vorgaben zu prüfen, die sich auf einer Metaebene zur Architektur befinden.

Für Architekturvorgaben auf der Metaebene existiert noch keine einheitliche Benennung und Abgrenzung. Diese Arbeit diskutiert in ihrem konzeptionellen Teil verschiedene Arten von Architekturvorgaben, wie Referenzarchitekturen, Architekturmuster und Architekturstile, grenzt diese voneinander ab und entwickelt eine Konzeptualisierung für Vorgaben in Form expliziter Architektur-Metamodelle. Für diese Metamodelle verwendet die Arbeit den Begriff des Architekturstils. Die erarbeitete Begriffsbildung basiert auf Literaturarbeit und auf der Analyse bestehender, praxisrelevanter Architekturstile. Die Arbeit zeigt, dass Stile für die Qualität von Softwaresystemen eine entscheidende Rolle spielen. Stile erlauben, Architekturen konsistent zu strukturieren und dadurch verständlicher zu gestalten. Ferner unterstützen Stile eine Wiederverwendung auf Architekturebene, da sich mit ihnen die prinzipielle Struktur von Softwarearchitekturen von einem System auf ein anderes übertragen lässt, selbst wenn die Systeme zu unterschiedlich sind, um nach der selben Architektur strukturiert zu werden.

In ihrem konstruktiven Teil präsentiert diese Arbeit einen neuen Ansatz: die stilbasierte Architekturprüfung. Dieser Ansatz ermöglicht, die Konformanz der in Quelltexten implementierten Architektur zu Architekturvorgaben in Form frei definierbarer Architekturstile zu prüfen. Da die implementierte Architektur dem Quelltext nicht vollständig zu entnehmen ist, beinhaltet der Ansatz ein Konzept, mit dem sich die fehlenden Architekturinformationen einfach in den Quelltext integrieren lassen. Damit adressiert er das in der Praxis verbreitete Problem, dass diese Informationen veralten, wenn sie getrennt von dem Quelltext dokumentiert werden. Korrekte Architektur-Zusatzinformationen sind jedoch essentiell für Konformanzprüfungen, denn sie sind Voraussetzung für korrekte Prüfergebnisse.

Der Ansatz der stilbasierten Architekturprüfung ist auf objektorientierte, statisch getypte Sprachen ausgerichtet. Im Rahmen dieser Arbeit wurde eine beispielhafte Umsetzung für die Programmiersprache Java konzipiert. Für diese Umsetzung wurden zwei prototypische Prüfwerkzeuge erstellt. Mit Hilfe der Werkzeuge ließen sich sechs beispielhafte Softwaresysteme erfolgreich auf Stilkonformanz prüfen. Die Ergebnisse wurden durch Interviews abgesichert. In allen Systemen konnten bisher unbemerkte Verstöße gegen den gewählten Architekturstil aufgedeckt werden. Eines der Werkzeuge ist in die Entwicklungsumgebung Eclipse integriert. Es zeigt, dass sich die Prüfung unmittelbar während der Programmierung durchführen lässt. Auf diese Weise werden Verstöße gegen den gewählten Stil bereits zum Zeitpunkt und am Ort ihrer Entstehung deutlich und können unmittelbar korrigiert werden.

Mit dem vorgestellten Ansatz lassen sich stilbasierte Systeme zukünftig vor Architekturerosion schützen. So liefert diese Arbeit einen Beitrag, Softwaresysteme langfristig verständlich, änderbar und wartbar zu erhalten.
Kurzfassung auf Englisch: When development teams design their software architecture, they usually define a set of architectural constraints that should be followed by the programmers. But in real world projects the implemented architecture often gradually deviates from the constraints, unnoticed by the developers: the architecture erodes. Eroding software systems progressively lose comprehensibility, changeability and maintainability. In extreme cases they finally need to be replaced. A countermeasure against architecture erosion is provided by architecture conformance checks. They determine whether the implemented architecture meets the constraints of the architectural design. Current approaches address constraints on two abstraction levels: source level and architectural level. Until now however, it was not possible to check efficiently the conformance with constraints defined at a meta level.

There are still no commonly accepted terms or criteria for demarcation of constraints at a meta level. This dissertation discusses different kinds of architectural constraints, like reference architectures, architectural patterns and styles, and develops a conceptualization for constraints at a meta level representing explicit architectural meta models. These meta models are called architectural style. The provided classification is based on a literature review and on the analysis of real life architectural styles. This dissertation shows that styles are vital for software quality. Styles are the key to structural consistent architectures and they enable software architects to re-use architectural concepts for new systems.

Based on its conceptual results, this dissertation presents a new approach: the style-based architecture conformance checking approach. This approach checks the conformance of the implemented architecture according to a user-defined architectural style. As the implemented architecture cannot be computed from the source code alone, the dissertation provides a concept how to include the missing architectural information directly into the source code. This relates to the commonly occurring problem of additional information getting outdated and inconsistent with the source code if documented separately from the code. Without this information correct conformance checks are impossible.

The presented approach has been developed for object-oriented, statically typed programming languages and provides an exemplary implementation for the programming language java. The implementation includes two prototypical checking tools that had been used to check the implemented architecture of six software systems for architectural style conformance. The results have been discussed in subsequent interviews. The new approach detects unnoticed violation against the chosen style in all systems. One of the checking tools is implemented as a plug in for the development environment Eclipse. It demonstrates the possibility to perform the checks directly while programming. Programmers are warned immediately if their newly added or chanced code violates the chosen architectural style. Thus, violations can be corrected at the time and on the spot of occurrence even before entering the common code repository.

From now on development teams can protect their style-based systems from architectural erosion. Therefore, this dissertation contributes to enable long living, comprehensible, changeable and maintainable software systems.

Zugriffsstatistik

keine Statistikdaten vorhanden
Legende