Abstract
Instrumentation techniques are widely used for implementing dynamic program analysis tools like profilers or debuggers. While there are many toolkits and frameworks to support the development of such low-level instrumentations, there is little support for the refinement or composition of instrumentations. A common practice is thus to copy and paste from existing instrumentation code. This, of course, violates well-established software engineering principles, results in code duplication, and hinders maintenance. In this position paper we identify two challenges regarding the refinement and composition of instrumentations and illustrate them with a running example.
Keywords
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Ammons, G., Ball, T., Larus, J.R.: Exploiting hardware performance counters with flow and context sensitive profiling. In: Proceedings of the Conference on Programming Language Design and Implementation, pp. 85–96 (1997)
Aracic, I., Gasiunas, V., Mezini, M., Ostermann, K.: An Overview of CaesarJ. In: Rashid, A., Aksit, M. (eds.) Transactions on AOSD I. LNCS, vol. 3880, pp. 135–173. Springer, Heidelberg (2006)
Bergmans, L.M.J.: Akşit, M.: Principles and design rationale of composition filters. In: Aspect-Oriented Software Development, pp. 63–96. Addison-Wesley (2004)
Binder, W., Ansaloni, D., Villazón, A., Moret, P.: Flexible and efficient profiling with aspect-oriented programming. Concurrency and Computation: Practice and Experience 23(15), 1749–1773 (2011)
Chiba, S.: Load-Time Structural Reflection in Java. In: Bertino, E. (ed.) ECOOP 2000. LNCS, vol. 1850, pp. 313–336. Springer, Heidelberg (2000)
Flanagan, C., Freund, S.N.: The RoadRunner dynamic analysis framework for concurrent programs. In: Proceedings of the 9th Workshop on Program Analysis for Software Tools and Engineering, pp. 1–8 (2010)
Greenwood, P., Blair, L.: A Framework for Policy Driven Auto-Adaptive Systems Using Dynamic Framed Aspects. In: Rashid, A., Aksit, M. (eds.) Transactions on AOSD II. LNCS, vol. 4242, pp. 30–65. Springer, Heidelberg (2006)
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An Overview of AspectJ. In: Lee, S.H. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–354. Springer, Heidelberg (2001)
Marek, L., Villazón, A., Zheng, Y., Ansaloni, D., Binder, W., Qi, Z.: DiSL: a domain-specific language for bytecode instrumentation. In: Proceedings of the 11th International Conference on Aspect-Oriented Software Development (2012)
Moret, P., Binder, W., Tanter, É.: Polymorphic bytecode instrumentation. In: Proceedings of the 10th International Conference on Aspect-Oriented Software Development, pp. 129–140 (2011)
Rudolph, J., Thiemann, P.: Mnemonics: type-safe bytecode generation at run time. In: Proceedings of the Workshop on Partial Evaluation and Program Manipulation, pp. 15–24 (2010)
Suvée, D., Vanderperren, W., Jonckers, V.: JAsCo: an aspect-oriented approach tailored for component based software development. In: Proceedings of the 2nd International Conference on Aspect-Oriented Software Development, pp. 21–29 (2003)
Tanter, E., Moret, P., Binder, W., Ansaloni, D.: Composition of dynamic analysis aspects. In: Proceedings of the 9th International Conference on Generative Programming and Component Engineering, pp. 113–122 (2010)
Tarr, P., Osher, H., Stanley, M., Sutton, J., William Harrison, W.: N degrees of separation: multi-dimensional separation of concerns. In: Aspect-Oriented Software Development, pp. 37–61. Addison-Wesley (2004)
Vallée-Rai, R., Hendren, L., Sundaresan, V., Lam, P., Gagnon, E., Co, P.: Soot - a Java optimization framework. In: Proceedings of the Conference of the Centre for Advanced Studies on Collaborative Research, pp. 214–224 (1999)
Villazón, A., Binder, W., Moret, P.: Flexible calling context reification for aspect-oriented programming. In: Proceedings of the 8th International Conference on Aspect-Oriented Software Development, pp. 63–74 (2009)
Villazón, A., Binder, W., Moret, P., Ansaloni, D.: Comprehensive aspect weaving for Java. Science of Computer Programming 76(11), 1015–1036 (2011)
Zheng, Y., Ansaloni, D., Marek, L., Sewe, A., Binder, W., Villazón, A., Tuma, P., Qi, Z., Mezini, M.: Turbo DiSL: partial evaluation for high-level bytecode instrumentation. In: TOOLS 2012 – Objects, Models, Components, Patterns (2012)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Ansaloni, D. et al. (2012). Challenges for Refinement and Composition of Instrumentations: Position Paper. In: Gschwind, T., De Paoli, F., Gruhn, V., Book, M. (eds) Software Composition. SC 2012. Lecture Notes in Computer Science, vol 7306. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-30564-1_6
Download citation
DOI: https://doi.org/10.1007/978-3-642-30564-1_6
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-30563-4
Online ISBN: 978-3-642-30564-1
eBook Packages: Computer ScienceComputer Science (R0)