Skip to main content
Log in

Dynamisches Aspekt-Mining: Methoden und Fallstudien

  • Original Article
  • Published:
Informatik - Forschung und Entwicklung

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Literatur

  1. 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

  2. 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

  3. 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

  4. Breu S, Krinke J (2004) Aspect Mining Using Event Traces. In: Proc. 19th Conf. Automated Software Engineering (ASE). IEEE Press, pp 310–315

  5. Griswold WG, Kato Y, Yuan JJ (1999) Aspect Browser: Tool Support for Managing Dispersed Aspects. Technical Report CS99-0640, UC, San Diego

  6. Hannemann J, Kiczales G (2001) Overcoming the Prevalent Decomposition of Legacy Code. In: Workshop on Advanced Separation of Concerns

  7. 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

  8. jcoverage homepage. http://www.jcoverage.com

  9. Kiczales G et al. (1997) Aspect-Oriented Programming. In: 11th European Conf. on Object-Oriented Programming (ECOOP)

  10. Loughran N, Rashid A (2002) Mining Aspects. In: Workshop on Early Aspects: Aspect-Oriented Requirements Engineering and Architecture Design (AOSD Sat. workshop)

  11. Shepherd D, Pollock L (2003) Ophir: A Framework for Automatic Mining and Refactoring of Aspects. Technical Report 2004-03, U Delaware

  12. Stoerzer M, Krinke J, Breu S (2003) Trace Analysis for Aspect Application. In: Workshop on Analysis of Aspect-Oriented Software (AAOS)

  13. 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

  14. van Deursen A, Marin M, Moonen L (2003) Aspect Mining and Refactoring. In: First Intl. Workshop on REFactoring: Achievements, Challenges, Effects (REFACE)

  15. Zhang C, Gao G, Jacobsen H-A (2002) AMTex homepage. http://www.eecg.toronto.edu/∼czhang/amtex/

  16. Zhang C, Jacobsen H-A (2003) Quantifying Aspects in Middleware Platforms. In: 2nd Intl. Conf. on Aspect-Oriented Software Development (AOSD), pp 130–139

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Silvia Breu.

Additional information

CR Subject Classification

D.2,D.2.3,D.2.5,D.2.7

Rights and permissions

Reprints 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

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00450-005-0179-7

Keywords

Navigation