Abstract
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 and adapted, and dynamically where going offline is not an available option. While this is straightforward in the static case by taking the system offline and statically weaving the aspects, runtime evolution requires an additional dynamic aspect weaving infrastructure.
Our current implementation of the family-based dynamic aspect weaving infrastructure supports most of the features known from the static aspect weaving domain, offers a tailored dynamic aspect weaving support, and is able to target a wide range of applications including embedded systems with very small memory footprint. The availability of a single language both for static and dynamic aspects means that the decision whether an aspect is static or dynamic is postponed to the later stages of the deployment of aspects into the sytem, and is decided according to the requirements and available resources. As a case study, we will present our experiences with the static and runtime evolution of the embedded operating system eCos.
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
Beuche, D.: Variant management with pure:variants. Technical report, pure-systems GmbH (2003), http://www.pure-systems.com/
Czarnecki, K., Eisenecker, U.W.: Generative Programming. Methods, Tools and Applications. Addison-Wesley, Reading (2000)
Popovici, A., et al.: Just in Time Aspects: efficient dynamic weaving for java. In: AOSD 2003, pp. 100–109. ACM Press, New York (2003)
Zhang, C., et al.: TinyC: Towards building a dynamic weaving aspect language for C. In: AOSD-FOAL 2003, Boston, USA (March 2003)
Bockisch, C., et al.: Virtual machine support for dynamic join points. In: AOSD 2004, Lancaster, UK, pp. 83–92. ACM Press, New York (2004)
Lohmann, D., et al.: A quantitative analysis of aspects in the eCos kernel. In: EuroSys 2006, pp. 191–204. ACM Press, New York (2006)
Schmidt, D.C., et al.: Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects (2000)
Kon, F., et al.: Monitoring, Security, and Dynamic Configuration with the DynamicTAO Reflective ORB. In: Middleware 2000. IFIP/ACM Distributed Systems Platforms and Open Distributed Processing (April 2000)
Lehman, M.M., et al.: Towards a theory of software evolution - and its practical impact. In: ISPSE 2000, pp. 2–11 (November 2000)
Engel, M., et al.: Supporting Autonomic Computing Functionality via Dynamic Operating System Kernel Aspects. In: AOSD 2005, pp. 51–62 (March 2005)
Loughran, N., et al.: Supporting Product Line Evolution With Framed Aspects. In: 3rd AOSD (AOSD-ACP4IS 2004) (March 2004)
Spinczyk, O., et al.: AspectC++: An aspect-oriented extension to C++. In: Field, T., Harrison, P.G., Bradley, J., Harder, U. (eds.) TOOLS 2002. LNCS, vol. 2324, pp. 53–60. Springer, Heidelberg (2002)
Greenwood, P., et al.: Dynamic framed aspects for dynamic software evolution. In: ECOOP-RAM-SE 2004 (June 2004)
Douence, R., et al.: An expressive aspect language for system applications with Arachne. In: AOSD 2005, pp. 27–38 (March 2005)
Pawlak, R., et al.: JAC: A flexible framework for AOP in Java. In: Yonezawa, A., Matsuoka, S. (eds.) Metalevel Architectures and Separation of Crosscutting Concerns. LNCS, vol. 2192, pp. 1–24. Springer, Heidelberg (2001)
Almajali, S., et al.: Dynamic Aspect Oriented C++ for Upgrading without Restarting. In: AITA 2004 (July 2004)
Apel, S., et al.: Combining Feature-Oriented and Aspect-Oriented Programming to Support Software Evolution. In: ECOOP-RAM-SE 2005, pp. 3–16 (July 2005)
Aussmann, S., et al.: Axon - Dynamic AOP through Runtime Inspection and Monitoring. In: ECOOP-ASARTI 2003, Darmstadt, Germany (July 2003)
Ishio, T., et al.: Program Slicing Tool for Effective Software Evolution Using Aspect-Oriented Technique. In: PSE 2003, pp. 3–12 (November 2003)
Ledoux, T., et al.: OpenCorba: A reflective open broker. In: Cointe, P. (ed.) Reflection 1999. LNCS, vol. 1616, pp. 197–214. Springer, Heidelberg (1999)
Cazzola, W., et al.: AOP for software evolution: a design oriented approach. In: Preneel, B., Tavares, S. (eds.) SAC 2005. LNCS, vol. 3897, pp. 1346–1350. Springer, Heidelberg (2006)
Gilani, W., et al.: Dynamic aspect weaver family for family-based adaptable systems. In: NODE 2005, pp. 94–109 (September 2005)
Schröder-Preikschat, W., et al.: Static and dynamic weaving in system software with AspectC++. In: HICSS 2006 (2006)
Sato, Y., et al.: A selective, just-in-time aspect weaver. In: Pfenning, F., Smaragdakis, Y. (eds.) GPCE 2003. LNCS, vol. 2830, pp. 189–208. Springer, Heidelberg (2003)
Gomaa, H.: Architecture-centric evolution in software product lines. In: ECOOP-ACE 2005 (July 2005)
Verhoef, C.: Towards automated modification of legacy assets. Annals of Software Engineering 9(1-4), 315–336 (2000)
Wilner, D.: Vx-files: What really happened on mars? In: RTSS 1997. Keynote at the 18th IEEE Real-Time Systems Symposium (December 1997)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Gilani, W., Scheler, F., Lohman, D., Spinczyk, O., Schröder-Preikschat, W. (2007). Unification of Static and Dynamic AOP for Evolution in Embedded Software Systems. In: Lumpe, M., Vanderperren, W. (eds) Software Composition. SC 2007. Lecture Notes in Computer Science, vol 4829. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-77351-1_18
Download citation
DOI: https://doi.org/10.1007/978-3-540-77351-1_18
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-77350-4
Online ISBN: 978-3-540-77351-1
eBook Packages: Computer ScienceComputer Science (R0)