Zusammenfassung
Aspekt-orientierte Programmierung kann die Komplexit“at von Softwaresystemen reduzieren und damit deren Wartbarkeit und Erweiterbarkeit verbessern. Dies wird durch die Kapselung von kompo“-nenten-“uber“-greifenden Elementen der Implementierung (sogenannten systemweiten Belangen oder „‘crosscutting concerns”) in spezielle Module oder Aspekte erreicht. Aspekt-Mining versucht diese Elemente in existierenden Softwaresystemen zu identifizieren und so die Anpassung an ein aspekt-orientiertes Design zu unterst“utzen. Die vorliegende Arbeit beschreibt Methoden und Ergebnisse mehrerer Fallstudien, in denen das dynamische Analyse-Verfahren von [?, ?] untersucht wurde; sie umfa“st ausserdem auch die Beschreibung der Algorithmen. Das Verfahren basiert auf der Analyse von Programmtraces, die in verschiedenen Programml“aufen erzeugt und dann in Ausf“uhrungsrelationen abstrahiert werden. Diese so erhaltene Datenbasis wird auf wiederkehrende Muster untersucht. Die genaue Bedeutung von „‘wiederkehrenden Mustern” wird dabei durch eine Reihe von Bedingungen an die Struktur der Ausf“uhrungsrelationen festgelegt. Dieses Verfahren wurde in dem vollautomatischen Analysewerkzeug DynAMiT implementiert und auf Softwaresystemen von mehr als 80 kLoC evaluiert. DynAMiT fand dabei sowohl systemweite Belange, die schon im System enthalten waren, als auch solche, die durch die Anwendung von AspectJ systematisch hinzugef“ugt wurden.
Abstract
Aspect-oriented programming can decrease the complexity and improve maintainability and extensibility of software systems by encapsulating crosscutting concerns into aspects. Aspect mining tries to identify these crosscutting concerns in existing systems and thus supports their migration to an aspect-oriented design. This article describes the methods and results of several case studies which investigated the dynamic program analysis approch presented in [?, ?]. This includes the description of the algorithms. The approach uses program traces that are generated in different program executions and abstracted into execution relations. The resulting data pool is then investigated for recurring execution patterns. Different constraints specify when a pattern is considered to be recurring. The approach has been implemented in the fully automatic analysis tool DynAMiT and has been evaluated in several case studies conducted with software systems of more than 80 kLoC. DynAMiT was able to identify both existing and seeded crosscutting concerns.
Literatur
Agrawal R, Imielinski T, Swami AN (1993) Mining Association Rules between Sets of Items in Large Databases. In: 1993 ACM SIGMOD Conference, pp 207–216
Breu S (2004) Aspect Mining Using Event Traces. Master’s thesis, University of Passau, Germany, March 2004. http://www.fernuni-hagen.de/ST/breu.php
Breu S, Krinke J (2003) Aspect Mining Using Dynamic Analysis. 5. Workshop Software-Reengineering, Bad Honnef. In: Softwaretechnik-Trends, vol 23(2), pp 21–22
Breu S, Krinke J (2004) Aspect Mining Using Event Traces. In: Proc. 19th Conf. Automated Software Engineering (ASE). IEEE Press, pp 310–315
Griswold WG, Kato Y, Yuan JJ (1999) Aspect Browser: Tool Support for Managing Dispersed Aspects. Technical Report CS99-0640, UC, San Diego
Hannemann J, Kiczales G (2001) Overcoming the Prevalent Decomposition of Legacy Code. In: Workshop on Advanced Separation of Concerns
Janzen D, De Volder K (2003) Navigating and Querying Code Without Getting Lost. In: 2nd Intl. Conf. on Aspect-Oriented Software Development (AOSD), pp 178–187
jcoverage homepage. http://www.jcoverage.com
Kiczales G et al. (1997) Aspect-Oriented Programming. In: 11th European Conf. on Object-Oriented Programming (ECOOP)
Loughran N, Rashid A (2002) Mining Aspects. In: Workshop on Early Aspects: Aspect-Oriented Requirements Engineering and Architecture Design (AOSD Sat. workshop)
Shepherd D, Pollock L (2003) Ophir: A Framework for Automatic Mining and Refactoring of Aspects. Technical Report 2004-03, U Delaware
Stoerzer M, Krinke J, Breu S (2003) Trace Analysis for Aspect Application. In: Workshop on Analysis of Aspect-Oriented Software (AAOS)
Tarr P, Ossher H, Harrison W, Sutton SM, Jr (1999) N Degrees of Separation: Multi-Dimensional Separation of Concerns. In: ICSE-21, pp 107–119
van Deursen A, Marin M, Moonen L (2003) Aspect Mining and Refactoring. In: First Intl. Workshop on REFactoring: Achievements, Challenges, Effects (REFACE)
Zhang C, Gao G, Jacobsen H-A (2002) AMTex homepage. http://www.eecg.toronto.edu/∼czhang/amtex/
Zhang C, Jacobsen H-A (2003) Quantifying Aspects in Middleware Platforms. In: 2nd Intl. Conf. on Aspect-Oriented Software Development (AOSD), pp 130–139
Author information
Authors and Affiliations
Corresponding author
Additional information
CR Subject Classification
D.2,D.2.3,D.2.5,D.2.7
Rights and permissions
About this article
Cite this article
Breu, S. Dynamisches Aspekt-Mining: Methoden und Fallstudien. Informatik Forsch. Entw. 19, 162–172 (2005). https://doi.org/10.1007/s00450-005-0179-7
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00450-005-0179-7