Volltextdatei(en) vorhanden
Titel: Die stilbasierte Architekturprüfung : ein Ansatz zur Prüfung implementierter Softwarearchitekturen auf Architekturstil-Konformanz
Sonstige Titel: Software Architecture Conformance Checking - A Style-Based Approach : Revealing Deviations from Individually Defined Structuring Principles Inside of Implemented Architectures
Sprache: Deutsch
Autor*in: Becker-Pechau, Petra
Schlagwörter: Architektur-Konformanzprüfung; Architekturstil; Referenzarchitektur; Architekturmuster; Evolutionäre Softwarearchitektur; software architecture conformance checking; architectural erosion; architectural style; reference architecture; architectural pattern
GND-Schlagwörter: Softwarearchitektur
Qualitätssicherung
Statische Analyse
Software EngineeringGND
Langlebigkeit
Erscheinungsdatum: 2014
Tag der mündlichen Prüfung: 2015-12-04
Zusammenfassung: 
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.

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.
URL: https://ediss.sub.uni-hamburg.de/handle/ediss/5971
URN: urn:nbn:de:gbv:18-78585
Dokumenttyp: Dissertation
Betreuer*in: Züllighoven, Heinz (Prof. Dr.-Ing.)
Enthalten in den Sammlungen:Elektronische Dissertationen und Habilitationen

Dateien zu dieser Ressource:
Datei Beschreibung Prüfsumme GrößeFormat  
Dissertation.pdfb6c43f6f5025c2819be604f2e19c8e468.87 MBAdobe PDFÖffnen/Anzeigen
Zur Langanzeige

Diese Publikation steht in elektronischer Form im Internet bereit und kann gelesen werden. Über den freien Zugang hinaus wurden durch die Urheberin / den Urheber keine weiteren Rechte eingeräumt. Nutzungshandlungen (wie zum Beispiel der Download, das Bearbeiten, das Weiterverbreiten) sind daher nur im Rahmen der gesetzlichen Erlaubnisse des Urheberrechtsgesetzes (UrhG) erlaubt. Dies gilt für die Publikation sowie für ihre einzelnen Bestandteile, soweit nichts Anderes ausgewiesen ist.

Info

Seitenansichten

526
Letzte Woche
Letzten Monat
geprüft am 27.03.2024

Download(s)

280
Letzte Woche
Letzten Monat
geprüft am 27.03.2024
Werkzeuge

Google ScholarTM

Prüfe