Auer, D. (2012). Wartbarkeit in aspektorientierter Programmierung [Diploma Thesis, Technische Universität Wien]. reposiTUm. http://hdl.handle.net/20.500.12708/160588
Wartung ist eine wichtige und im Normalfall die längste Phase im Software-Life-Cycle. Dementsprechend hoch sind die Kosten, welche in der Wartungsphase entstehen. Aus diesem Grund ist die Verbesserung der Wartbarkeit ein oft gewünschtes Ziel. In der vorliegenden Arbeit wird untersucht, ob der Einsatz aspektorientierter Programmierung Einfluss auf die Wartbarkeit hat und ob aspektorientierte Software einfacher oder schwieriger zu warten ist als vergleichbare objektorientierte Software. Der Fokus liegt dabei auf den Subkategorien der Wartbarkeit, Changeability und Testability. Zu diesem Zweck werden Einflussfaktoren auf die Wartbarkeit identifiziert und die Auswirkung der aspektorientierten Programmierung auf diese untersucht. Des Weiteren wird Software aus unterschiedlichen Domänen, die sowohl in einer objektorientierten als auch in einer aspektorientierten Variante vorliegt, zur Analyse herangezogen. Auf beide Versionen der untersuchten Anwendungen werden Wartungsschritte angewendet und die Ergebnisse verglichen. Um Aussagen über die Changeability treffen zu können, werden Änderungen, wie sie typischerweise in der Wartungsphase vorkommen, durchgeführt. Die Komplexität dieser Änderungen gibt Auskunft über die Changeability der zu Grunde liegenden Anwendung. Um Unterschiede bezüglich Testability aufzuspüren, werden für die objektorientierte und aspektorientierte Varianten der ausgewählten Programme Testfälle verfasst. Anschließend folgt eine Analyse der dabei aufgetretenen Schwierigkeiten. Die Analyse ergibt, dass aspektorientierte Programme besonders bezüglich der Streuung der Änderung besser als ihre objektorientierten Pendants abschneiden. Das heißt, Änderungen müssen an weniger Stellen im Code durchgeführt werden. Aus der Testability Untersuchung gingen starke Hinweise auf eine bessere Eignung aspektorientierter Software für unabhängige Tests hervor. Es wurden aber auch neue Testschwierigkeiten erkannt, welche zu einer höheren Testkomlexität führen können.
The maintenance phase is the longest and one of the most important phases in the software life cycle. Therefore, also the maintenance costs are high, and every improvement in maintainability would be appreciated. In this thesis, it will be investigated if aspect-oriented software has an influence on software maintainability and how it compares to object-oriented software. The focus lies on two subcategories of maintainability: changeability and testability. Factors which influence maintainability will be identified and the impact of aspect-oriented programming on these factors will be examined. Furthermore, software which is available in an object-oriented and an aspect-oriented version will be analysed and compared. To be able to evaluate the Changeability, changes will be implemented on both versions and compared by their complexity. The less complex a change is, the more changeable is the code. To detect differences in testability, test cases will be written for both, the object-oriented and the aspect-oriented versions, of the chosen applications. Difficulties while creating the tests will be identified and compared. The analysis showes that aspect-oritented software has a lower change scattering than their object-oriented counterparts. That means, fewer passages in the source code have to be chaned. In the testability analysis, strong indication were found that aspect-oriented software has better support for independent testing. Also, some difficulties were found that could lead to higher test complexity.
en
Additional information:
Abweichender Titel laut Übersetzung der Verfasserin/des Verfassers Zsfassung in engl. Sprache