Debugging aspect-enabled programs
|
||||||||||||||
ABSTRACTThe ability to debug programs composed using aspect-oriented programming (AOP) techniques is critical to the adoption of AOP. Nevertheless, many AOP systems lack adequate support for debugging, making it difficult to diagnose faults and understand the program's composition and control flow. We present an AOP debug model that characterizes AOP-specific program composition techniques and AOP-specific program behaviors, and relates them to the AOP-specific faults they induce. We specify debugging criteria that we feel all AOP systems should support and compare how several AOP systems measure up to this ideal.
We explain why AOP composition techniques, particularly dynamic and binary weaving, hinder source-level debugging, and how results from related research on debugging optimized code help solve the problem. We also present Wicca, the first dynamic AOP system to support full source-level debugging. We demonstrate how Wicca's powerful interactive debugging features allow a programmer to quickly diagnose faults in the base program behavior or AOP-specific behavior.
AUTHORS
|
|
||||||||||||||||||||||||||||||||||||||||
| View colleagues of Marc Eaddy | |||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| View colleagues of Alfred Aho | |||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| View colleagues of Weiping Hu | |||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| View colleagues of Paddy McDonald | |||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| View colleagues of Julian Burger | |||||||||||||||||||||||||||||||||||||||||
REFERENCESNote: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
|
1
|
||
|
2
|
Alexander, R., Bieman, J.M., Andrews, A.: Towards the Systematic Testing of Aspect-Oriented Programs. Tech Rep CS-4-105. Dept. of CS, Colorado State Univ. (March 2004)
|
|
|
3
|
Aussmann, S., Haupt, M.: Axon - Dynamic AOP through Runtime Inspection and Monitoring. In: ASARTI 2003. Proc. of the Wkshp. on Advancing the State-of-the-Art in Run-time Inspection (July 2003)
|
|
| |
4
|
Pavel Avgustinov , Aske Simon Christensen , Laurie Hendren , Sascha Kuzins , Jennifer Lhoták , Ondřej Lhoták , Oege de Moor , Damien Sereni , Ganesh Sittampalam , Julian Tibble, Optimising aspectJ, Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation, June 12-15, 2005, Chicago, IL, USA [doi>10.1145/1065010.1065026]
|
|
5
|
||
| |
6
|
|
|
7
|
Bonér, J.: AspectWerkz -- dynamic AOP for Java. In: AOSD 2004. Invited talk at Aspect-Oriented Software Development (March 2004)
|
|
|
8
|
Ceccato, M., Tonella, P., Ricca, F.: Is AOP code easier or harder to test than OOP code? In: WTAOP 2005. Proc. of the Wkshp. on Testing Aspect-Oriented Programs (March 2005)
|
|
| |
9
|
Rémi Douence , Thomas Fritz , Nicolas Loriant , Jean-Marc Menaud , Marc Ségura-Devillechaise , Mario Südholt, An expressive aspect language for system applications with Arachne, Proceedings of the 4th international conference on Aspect-oriented software development, p.27-38, March 14-18, 2005, Chicago, Illinois [doi>10.1145/1052898.1052901]
|
|
10
|
Eaddy, M., Aho, A.: Statement Annotations for Fine-Grained Advising. In: RAM-SE 2006. Proc. of the Wkshp. on Reflection, AOP, and Meta-data for Software Evol. (July 2006)
|
|
|
11
|
Eaddy, M., Aho, A., Hu, W., McDonald, P., Burger, J.: Debugging Woven Code. Tech Rep. CUCS-035-06. Dept. of CS, Columbia Univ. (September 2006)
|
|
|
12
|
Eaddy, M., Feiner, S.: Multi-Language Edit-and-Continue for the Masses. Tech Rep CUCS-015-05. Dept. of CS, Columbia Univ. (April 2005)
|
|
| |
13
|
|
|
14
|
||
|
15
|
Filman, R., Friedman, D.: Aspect-Oriented Programming is Quantification and Obliviousness. In: OOPSLA Wkshp. on Advanced Separation of Concerns (October 2000)
|
|
|
16
|
Grawehr, F.P., Alonso, G.: A Dynamic AOP-Engine for .NET. Tech Rep 445. Dept. of CS, ETH Zürich (March 2004)
|
|
|
17
|
||
|
18
|
Haupt, M., Mezini, M.: Micro-Measurements for Dynamic Aspect-Oriented Systems. In: Weske, M., Liggesmeyer, P. (eds.) NODe 2004. LNCS, vol. 3263, pp. 81-96. Springer, Heidelberg (2004)
|
|
| |
19
|
Michael Haupt , Mira Mezini , Christoph Bockisch , Tom Dinkelaker , Michael Eichberg , Michael Krebs, An execution layer for aspect-oriented programming languages, Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments, June 11-12, 2005, Chicago, IL, USA [doi>10.1145/1064979.1065000]
|
| |
20
|
|
| |
21
|
|
|
22
|
||
| |
23
|
|
|
24
|
Hugunin, J.: The next steps for aspect-oriented programming languages (in Java). In: Proc. of Wkshp. on New Visions for Software Design & Prod.: Research & Apps. (December 2001)
|
|
|
25
|
Jackson, A., Clarke, S.: SourceWeave.NET: Source-level cross-language aspect-oriented programming. In: Karsai, G., Visser, E. (eds.) GPCE 2004. LNCS, vol. 3286, Springer, Heidelberg (2004)
|
|
| |
26
|
|
|
27
|
||
|
28
|
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. TR SPL97-008 P9710042, Xerox PARC (February 1997)
|
|
| |
29
|
|
|
30
|
||
|
31
|
Nicoara, A., Alonso, G.: Dynamic AOP with PROSE. In: ASMEA 2005. Proc. of the Wkshp. on Adaptive and Self-Managing Enterprise Applications (June 2005)
|
|
|
32
|
||
| |
33
|
|
|
34
|
CITED BY17 Citations
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
INDEX TERMS
PUBLICATION| Title | SC'07 Proceedings of the 6th international conference on Software composition table of contents |
| Editors | Markus Lumpe Swinburne University of Technology, Faculty of Information and Communication Technologies, Hawthorn, VIC, Australia |
| Wim Vanderperren Vrije Universiteit Brussel, System and Software Engineering Lab, ETRO, Brussel, Belgium | |
| Pages | 200-215 |
| Publication Date | 2007-03-24 (yyyy-mm-dd) |
| Sponsors | AOSD-Europe European Network of Excellent on Aspect-oriented Software Development |
| IBM Zurich | |
| IFIP International Federation for Information Processing | |
| Microsoft Research Microsoft Research | |
| Vrije Universiteit Brussel Vrije Universiteit Brussel | |
| Publisher | Springer-Verlag Berlin, Heidelberg ©2007 |
| ISBN: 3-540-77350-9 978-3-540-77350-4 |
REVIEWS
COMMENTSBe the first to comment To Post a comment please sign in or create a free Web account
Table of Contents| SECTION: Invited talk | ||
| Composition by anonymous third parties | ||
| Farhad Arbab | ||
| Pages: 1-1 | ||
| SECTION: Composition contracts | ||
| Defining component protocols with service composition: illustration with the Kmelia model | ||
| Pascal André, Gilles Ardourel, Christian Attiogbé | ||
| Pages: 2-17 | ||
|
We address in this article the description and usage of component protocols viewed as specific services. In addition to inter-component service composition, our Kmelia component model supports vertical structuring mechanisms that allow service composition ...
expand
|
||
| Composite contract enforcement in hierarchical component systems | ||
| Philippe Collet, Jacques Malenfant, Alain Ozanne, Nicolas Rivierre | ||
| Pages: 18-33 | ||
|
Abadi and Lamport established a general theorem for composing specifications [1]. Based on an assume-guarantee principle, it enables one to prove the specification of a composite system from the ones of its components. But the general application of ...
expand
|
||
| Towards a unifying theory for choreography conformance and contract compliance | ||
| Mario Bravetti, Gianluigi Zavattaro | ||
| Pages: 34-50 | ||
|
In the context of Service Oriented Computing, contracts are descriptions of the externally observable behaviour of services. Given a group of collaborating services, their contracts can be used to verify whether their composition is sound, i.e., the ...
expand
|
||
| SECTION: Composition design and analysis | ||
| A process-algebraic approach to workflow specification and refinement | ||
| Peter Y. H. Wong, Jeremy Gibbons | ||
| Pages: 51-65 | ||
|
This paper describes a process-algebraic approach to specification and refinement of workflow processes. In particular, we model both specification and implementation of workflows as CSP processes. CSP's behavioural models and their respective refinement ...
expand
|
||
| Generic feature-based software composition | ||
| Tijs Van Der Storm | ||
| Pages: 66-80 | ||
|
Bridging problem domain and solution in product line engineering is a time-consuming and error-prone process. Since both domains are structured differently (features vs. artifacts), there is no natural way to map one to the other. Using an explicit and ...
expand
|
||
| Composition management interfaces for a predictable assembly | ||
| Xabier Aretxandieta, Goiuria Sagardui, Franck Barbier | ||
| Pages: 81-96 | ||
|
Software system construction based on the reuse of software components has to be done with flexibility enough to control the desired behavior of the resulting assemblies. Applications created by component composition usually depend on a strict method ...
expand
|
||
| Path-based error propagation analysis in composition of software services | ||
| Vittorio Cortellessa, Pasqualina Potena | ||
| Pages: 97-112 | ||
|
In Service-Oriented Architectures (SOA) composed services provide functionalities with certain non-functional properties that depend on the properties of the basic services. Models that represent dependencies among these properties are necessary to analyze ...
expand
|
||
| SECTION: Dynamic composition | ||
| Dynamically adaptable applications with iPOJO service components | ||
| Clement Escoffier, Richard S. Hall | ||
| Pages: 113-128 | ||
|
Traditional component models and frameworks simplified software system development by enabling developers to break software systems into independent pieces with well-defined interfaces. This approach led to looser coupling among the system pieces and ...
expand
|
||
| Dynamic contextual service ranking | ||
| André Bottaro, Richard S. Hall | ||
| Pages: 129-143 | ||
|
This paper explores service composition in pervasive environments with a focus on dynamic service selection. Service orientation offers the dynamism and loose coupling needed in pervasive applications. However, context-aware service composition is still ...
expand
|
||
| SECTION: Short papers | ||
| Measuring reactability of persistent computing systems | ||
| Takumi Endo, Yuichi Goto, Jingde Cheng | ||
| Pages: 144-151 | ||
|
A persistent computing system is a reactive system that functions continuously anytime without stopping its reactions even when it needs to be maintained, upgraded, or reconfigured, it has some trouble, or it is attacked. However, the requirement that ...
expand
|
||
| Requirements for applying aspect-oriented techniques in web service composition languages | ||
| Mathieu Braem, Niels Joncheere | ||
| Pages: 152-159 | ||
|
In current composition languages for web services, there is insufficient support to explicitly separate crosscutting concerns, which leads to compositions that are hard to maintain or evolve. A similar problem in object-oriented languages is being tackled ...
expand
|
||
| Synthesizing communication middleware from explicit connectors in component based distributed architectures | ||
| Dietmar Schreiner, Karl M. Göschka | ||
| Pages: 160-167 | ||
|
In component based software engineering, an application is build by composing trusted and reusable units of execution, the components. A composition is formed by connecting the components' related interfaces. The point of connection, namely the connector, ...
expand
|
||
| Streamlining feature-oriented designs | ||
| Martin Kuhlemann, Sven Apel, Thomas Leich | ||
| Pages: 168-175 | ||
|
Software development for embedded systems gains momentum but faces many challenges. Especially the constraints of deeply embedded systems, i.e., extreme resource and performance constraints, seem to prohibit the successful application of modern and approved ...
expand
|
||
| Requirements for reusable aspect deployment | ||
| Bruno De Fraine, Mathieu Braem | ||
| Pages: 176-183 | ||
|
The aspect-oriented paradigm aims to modularize concerns that crosscut traditional abstraction boundaries. In the AOSD community, there is an increasing interest in the development of reusable implementations of typical crosscutting concerns, such as ...
expand
|
||
| SECTION: Aspect-oriented programming | ||
| Aspect-oriented programming: selecting and exposing object paths | ||
| Mohammed Al-Mansari, Stefan Hanenberg, Rainer Unland | ||
| Pages: 184-199 | ||
|
Aspects require access to the join point context in order to select and adapt join points. For this purpose, current aspect-oriented systems offer a large number of pointcut constructs that provide access to join point information that is local to the ...
expand
|
||
| Debugging aspect-enabled programs | ||
| Marc Eaddy, Alfred Aho, Weiping Hu, Paddy McDonald, Julian Burger | ||
| Pages: 200-215 | ||
|
The ability to debug programs composed using aspect-oriented programming (AOP) techniques is critical to the adoption of AOP. Nevertheless, many AOP systems lack adequate support for debugging, making it difficult to diagnose faults and understand the ...
expand
|
||
| Unification of static and dynamic AOP for evolution in embedded software systems | ||
| Wasif Gilani, Fabian Scheler, Daniel Lohman, Olaf Spinczyk, Wolfgang Schröder-Preikschat | ||
| Pages: 216-234 | ||
|
This paper discusses how evolution in software systems can be supported by a unified application of both static as well as dynamic aspect-oriented technology. The support for evolution is required statically, where the applications could be taken offline ...
expand
|
||
| SECTION: Structural composition | ||
| Patterns of component evolution | ||
| Rajesh Vasa, Markus Lumpe, Jean-Guy Schneider | ||
| Pages: 235-251 | ||
|
Contemporary software systems are composed of many components, which, in general, undergo phased and incremental development. In order to facilitate the corresponding construction process, it is important that the development team in charge has a good ...
expand
|
||
| An approach for structural pattern composition | ||
| Imed Hammouda, Kai Koskimies | ||
| Pages: 252-265 | ||
|
Pattern composition has been recognized as a key element for the adoption of pattern languages and systems. This paper discusses the challenges of structural pattern composition and proposes an approach for role-based pattern composition, with two alternative ...
expand
|
||
| Composite connectors for composing software components | ||
| Kung-Kiu Lau, Ling Ling, Vladyslav Ukis, Perla Velasco Elizondo | ||
| Pages: 266-280 | ||
|
In a component-based system, connectors are used to compose components. Connectors should have a semantics that makes them simple to construct and use. At the same time, their semantics should be rich enough to endow them with desirable properties such ...
expand
|
||