Für die Wartung komponenten-basierter Software werden aktuelle Modelle ihrer konkreten Architektur, d.h. der Architektur, welche im Quellcode umgesetzt wurde, benötigt. Diese Modelle unterstützen den Software-Architekten bei der Planung, der Analyse und der Ausführung von typischen Reengineering-Aktivitäten. Allerdings existieren häufig keine oder nur veraltete Architekturmodelle solcher Software-Systeme. Daher wurden in der Vergangenheit zahlreiche Reverse-Engineering-Verfahren entwickelt, welche dazu dienen, die Komponenten, Subsysteme und Konnektoren komponenten-basierter Software wiederzuerkennen. Allerdings werden diese Reverse-Engineering-Verfahren durch Schwachstellen im Quellcode -- vor allem durch Schwachstellen, die die Kapselung von Komponenten verletzen -- stark beeinflusst. Werden solche Schwachstellen bei der Wiedergewinnung von Architekturmodellen nicht berücksichtigt, können sie die Qualität der erkannten Komponentenstrukturen erheblich verringern. Trotz dieses signifikanten Einflusses von Schwachstellen, werden diese im Erkennungsprozess existierender Architektur-Rekonstruktions-Verfahren bisher nicht berücksichtigt. Zur Lösung dieses Problems habe ich im Rahmen dieser Arbeit Archimetrix entwickelt. Archimetrix ist ein werkzeuggestütztes Architektur-Rekonstruktions-Verfahren. Es erweitert einen bestehenden, clustering-basierten Architektur-Rekonstruktions-Ansatz um ein erweiterbares, muster-basiertes Verfahren zur Schwachstellenerkennung. Nach der Schwachstellenerkennung unterstützt Archimetrix den Software-Architekten zusätzlich bei der Entfernung der gefundenen Probleme und ermöglicht es ihm, die Auswirkungen der Entfernung auf die Software-Architektur des Systems zu analysieren. Außerdem beschreibt diese Arbeit einen Prozess zur Identifikation, Dokumentation und Formalisierung von Schwachstellen.
Titelaufnahme
- TitelReengineering of component-based software systems in the presence of design deficiencies
- Autor
- Prüfer
- Erschienen
- HochschulschriftPaderborn, Univ., Diss., 2013
- AnmerkungTag der Verteidigung: 15.02.2013
- SpracheEnglisch
- DokumenttypDissertation
- URN
- Social MediaShare
- Nachweis
- IIIF
The maintenance of component-based software systems requires up-to-date models of their concrete architecture, i.e., the architecture that is realised in the source code. These models help in systematically planning, analysing and executing typical reengineering activities. Often no or only outdated architectural models of such systems exist. Therefore, various reverse engineering methods have been developed which try to recover a system's components, subsystems and connectors. However, these reverse engineering methods are severely impacted by design deficiencies in the system's code base, especially violations of the component encapsulation. As long as design deficiencies are not considered in the reverse engineering process, they reduce the quality of the recovered component structures. Despite this impact of design deficiencies, no existing architecture reconstruction approach explicitly integrates a systematic deficiency detection and removal into the recovery process. Therefore, Archimetrix has been developed in this thesis. Archimetrix is a tool-supported architecture reconstruction process. It enhances a clustering-based architecture recovery approach with an extensible, pattern-based deficiency detection. After the detection of deficiencies, Archimetrix supports the software architect in removing the deficiencies and provides the means to preview the architectural consequences of such a removal. The thesis also provides a process to identify and formalise additional deficiencies. Archimetrix was validated on three case studies which show that Archimetrix is able to identify relevant deficiencies and that the removal of these deficiencies leads to an increased quality of the recovered architectures, i.e., they are closer to the corresponding conceptual architectures.
- Das PDF-Dokument wurde 37 mal heruntergeladen.