Abstract
Realistically, many rapidly evolving systems eventually require extensive restructuring in order to effectively support further evolution. Not surprisingly, these overhauls reverberate throughout the system. Though several studies have shown the benefits of aspect-oriented programming (AOP) from the point of view of the modularization and evolution of crosscutting concerns, the question remains as to how well aspects fare when the code that is crosscut undergoes extensive restructuring. That is, when evolution is a big bang, can aspects keep pace? The case study presented here considers several categories of aspects – design invariants, dynamic analysis tools, and domain specific design patterns – and shows the concrete ways in which aspects had positive, negative and neutral impact during the restructuring of the memory management subsystem of a virtual machine. Compared with best efforts in a hierarchical decomposition coupled with a preprocessor, aspects fared better than the original implementation in two out of four aspects, and no worse in the remaining two aspects.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Baniassad, E., Murphy, G., Schwanninger, C., Kircher, M.: Managing crosscutting con-cerns during software evolution tasks: an inquisitive study. In: The Proceedings of the In-ternational Conference on Aspect-Oriented Software Development, AOSD (2002)
Blackburn, S., Chung, P., McKinley, K.: Oil and Water? High Performance Garbage Collection in Java with MMTK. In: The Proceedings of the International Conference on Software Engineering, ICSE (2004)
Coady, Y., Kiczales, G.: A retroactive study of aspect evolution in operating system code. In: The Proceedings of International Conference on Aspect-Oriented Software De-velopment, AOSD (2003)
Colyer, A., Clement, A.: Large-scale AOSD for Middleware. In: The Proceedings of Inter-national Conference on Aspect-Oriented Software Development, AOSD (2004)
Dacapo Benchmarks, http://www-ali.cs.umass.edu/DaCapo/
Dijkstra, E.W.: A Discipline of Programming. Prentice Hall. Englewood Cliffs (1976)
Duzan, G., Loyall, J., Schantz, R.: Building Adaptive Distributed Applications with Mid-dleware and Aspects. In: the Proceedings of International Conference on Aspect-Oriented Software Development, AOSD (2004)
Engel, M., Freisleben, B.: Supporting Autonomic Computing Functionality via Dynamic Operating System Kernel Aspects. In: The Proceedings of the International Conference on Aspect-Oriented Software Development, AOSD (2005)
Gibbs, C., Coady, Y.: Aspect of Memory Management. Hawaiin International Confer-ence On System Sciences, HICSS (2005)
Fiuczynski, M.E., Grimm, R., Coady, Y., Walker, D.: patch(1) Considered Harmful. In: The Tenth Annual Workshop on Hot Topics on Operating Systems, HotOS (2005)
Goetz, B.: How does garbage collection work?, Developerworks (2003), http://www-106.ibm.com/developerworks/java/library/j-jtp10283/
Hannemann, J., Kiczales, G.: Design pattern implementations in Java and AspectJ. In: ACM Conference on Object-Oriented Programming, Systems, Languages and Applica-tions, OOPSLA (2002)
Haskell Compiler, http://www.haskell.org/ghc/
IBM, AspectJ Project (2004), http://eclipse.org/aspectj/
IBM, Jikes Research Virtual Machine (2004), http://www-124.ibm.com/developerworks/oss/jikesrvm/
IBM, Jikes Research Virtual Machine User’s Guide (2004), http://www-124.ibm.com/developerworks/oss/jikesrvm/user-guide/HTML/userguide.html
Kersten, M., Murphy, G.: Atlas: A case study. ACM Conference on Object-Oriented Programming, Systems, Languages and Applications, OOPSLA (1999)
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Videira Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-Oriented Programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An over-view of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, p. 327. Springer, Heidelberg (2001)
Lehman, L.L., Belady, L.A.: Program Evolution. APIC Studies in Data Processing 3 (1985)
Murphy, G.C.: Lightweight Structural Summarization as an Aid to Software Evolution, Computer Science, University of Washington, PhD Thesis (1996)
Murphy, G., Lai, A., Walker, R., Robillard, M.: Separating features in source code: An Exploratory Study. In: The Proceedins of the International Conference on Software Engi-neering, ICSE (2001)
OVM, http://www.ovmj.org/
Parnas, D.L.: On the Criteria To Be Used in Decomposing Systems into Modules. Communications of the ACM 15(12) (1972)
Parnas, D.L., Clements, P.C.: Software State-of-the-Art: Selected Papers. In: DeMarco, T., Lister, T. (eds.) A rational design process: How and why to fake it. Dorset House Publishing, New York (1990)
Rashid, A., Leidenfrost, N.A.: Supporting Flexible Object Database Evolution with As-pects. In: Karsai, G., Visser, E. (eds.) GPCE 2004. LNCS, vol. 3286, pp. 75–94. Springer, Heidelberg (2004)
Stevens, W.P., Meyers, G.J., Constantine, L.L.: Structured Design. IBM Systems Journal 13 (1974)
Sabbah, D.: Aspects - from Promise to Realitys, Keynote. In: International Conference on Aspect-Oriented Software Development, AOSD (2004)
Sun, GCspy: A Generic Heap Visualisation Framework (2004). research.sun.com/projects/GCSpy
Tesanovic, A., Amirijoo, M., Björk, M., Hansson, J.: Empowering Configurable QoS Man-agement in Real-Time Systems. In: International Conference on Aspect-Oriented Software Development, AOSD (2005)
Walker, R., Baniassad, E., Murphy, G.: An Initial Assessment of Aspect-Oriented Pro-gramming. In: The Proceedings of the International Conference on Software. Engineering, ICSE (1999)
Wulf, W., Shaw, M.: Global variable considered harmful. SIGPLAN Notices, 8(2) (1973)
Zhang, C., Gao, G., Jacobsen, H.A.: Towards Just-in-time Middleware Architectures. In: Proceedings of the International Conference on Aspect-Oriented Software Development, AOSD (2005)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Gibbs, C., Liu, C.R., Coady, Y. (2005). Sustainable System Infrastructure and Big Bang Evolution: Can Aspects Keep Pace?. In: Black, A.P. (eds) ECOOP 2005 - Object-Oriented Programming. ECOOP 2005. Lecture Notes in Computer Science, vol 3586. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11531142_11
Download citation
DOI: https://doi.org/10.1007/11531142_11
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-27992-1
Online ISBN: 978-3-540-31725-8
eBook Packages: Computer ScienceComputer Science (R0)