Abstract
Software development in the domain of embedded and deeply embedded systems is dominated by cost pressure and extremely limited hardware resources. As a result, modern concepts for separation of concerns and software reuse are widely ignored, as developers worry about the thereby induced memory and performance overhead. Especially object-oriented programming (OOP) is still little in demand. For the development of highly configurable fine-grained system software product lines, however, separation of concerns (SoC) is a crucial property. As the overhead of object-orientation is not acceptable in this domain, we propose aspect-oriented programming (AOP) as an alternative. Compared to OOP, AOP makes it possible to reach similar or even better separation of concerns with significantly smaller memory footprints. In a case study for an embedded system product line the memory costs for SoC could be reduced from 148–236% to 2–10% by using AOP instead of OOP.
This work was partly supported by the German Research Council (DFG) under grant no. SCHR 603/4 and SP 968/2-1.
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
eCos homepage, http://ecos.sourceware.org/
OSEK/VDX standard, http://www.osek-vdx.org/
Aigner, G., Hölzle, U.: Eliminating virtual function calls in C++ programs. Technical Report TRCS95-22, Computer Science Department, University of California, Santa Barbara (December 1995)
Andersen, L.O.: Program Analysis and Specialization for the C Programming Language. PhD thesis, DIKU, University of Copenhagen (DIKU report 94/19) (May 1994)
Apel, S., Leich, T., Rosenmüller, M., Saake, G.: FeatureC++: On the symbiosis of feature-oriented and aspect-oriented programming. In: Glück, R., Lowry, M. (eds.) GPCE 2005. LNCS, vol. 3676, pp. 125–140. Springer, Heidelberg (2005)
Batory, D.: Feature-oriented programming and the AHEAD tool suite. In: Proceedings of the 26th International Conference on Software Engineering (ICSE 2004), pp. 702–703. IEEE Computer Society Press, Los Alamitos (2004)
UC Berkeley. TinyOS homepage, http://www.tinyos.net/
Bernstein, D., Fedorov, Y., Porat, S., Rodrigue, J., Yahav, E.: Compiler optimization of C++ virtual function calls. In: Proceedings of the 2nd USENIX Conference on Object-Oriented Technologies and Systems (COOTS 1996), June 1996, Toronto, Canada (1996)
Beuche, D.: Variant management with pure:variants. Technical report, pure-systems GmbH (2003), http://www.pure-systems.com/
Beuche, D., Guerrouat, A., Papajewski, H., Schröder-Preikschat, W., Spinczyk, O., Spinczyk, U.: The PURE family of object-oriented operating systems for deeply embedded systems. In: Proceedings of the 2nd IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC 1999), St. Malo, France, May 1999, pp. 45–53 (1999)
Beuche, D., Schröder-Preikschat, W., Spinczyk, O., Spinczyk, U.: Streamlining object-oriented software for deeply embedded applications. In: Proceedings of the 33rd International Conference on Technology of Object-Oriented Languages and Systems (TOOLS 2000), Mont Saint-Michel, France, pp. 33–44 (June 2000)
Coady, Y., Kiczales, G., Feeley, M., Smolyn, G.: Using AspectC to improve the modularity of path-specific customization in operating system code. In: Proceedings of the 3rd Joint European Software Engineering Conference and ACM Symposium on the Foundations of Software Engineering (ESEC/FSE 2001) (2001)
Colyer, A., Clement, A., Bodkin, R., Hugunin, J.: Using AspectJ for component integration in middleware. In: Proceedings of the 18th ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2003), pp. 339–344. ACM Press, New York (2003)
Colyer, A., Rashid, A., Blair, G.: On the separation of concerns in program families. Technical Report COMP-001-2004, Lancaster University (2004)
Consel, C., Hornof, L., Marlet, R., Muller, G., Thibault, S., Volanschi, E.-N.: Tempo: Specializing systems applications and beyond. ACM Computing Surveys 30(3es) (1998)
Czarnecki, K., Eisenecker, U.W.: Generative Programming. Methods, Tools and Applications. Addison-Wesley, Reading (2000)
Czarnecki, K., Eisenecker, U.W.: Synthesizing Objects. In: Guerraoui, R. (ed.) ECOOP 1999. LNCS, vol. 1628, pp. 18–42. Springer, Heidelberg (1999)
Dean, J., Chambers, C., Grove, D.: Selective specialization for object-oriented languages. In: Proceedings of PLDI 1995, La Jolla, CA (June 1995)
Delta Software Technology GmbH. Angie – an introduction (June 2005)
Driesen, K., Hölzle, U.: The direct cost of virtual function calls in C++. In: Proceedings of the 11th ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 1996) (October 1996)
Dufour, B., Goard, C., Hendren, L., Verbrugge, C., de Moor, O., Sittampalam, G.: Measuring the dynamic behaviour of AspectJ programs. In: Proceedings of the 19th ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2004), pp. 150–169. ACM Press, New York (2004)
Ford, B., Back, G., Benson, G., Lepreau, J., Lin, A., Shivers, O.: The flux OSKit: A substrate for Kernel and language research. In: Proceedings of the 17th ACM Symposium on Operating Systems Principles (SOSP 1997). ACM Operating Systems Review, pp. 38–51. ACM Press, New York (1997)
Gacek, C., Anastasopoules, M.: Implementing product line variabilities. In: Proceedings of 2001 Symposium on Software Reusability: Putting Software Reuse in Context, pp. 109–117. ACM Press, New York (2001)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)
Gay, D., Levis, P., von Behren, R., Welsh, M., Brewer, E., Culler, D.: The nesC language: A holistic approach to networked embedded systems. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2003), San Diego, pp. 1–11. ACM Press, New York (2003)
Harrison, W., Ossher, H.: Subject-oriented programming—a critique of pure objects. In: Proceedings of the 8th ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 1993), pp. 411–428 (September 1993)
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)
Hunleth, F., Cytron, R.: Footprint and feature management using aspect-oriented programming techniques. In: Proceedings of the 2002 Joint Conference on Languages, Compilers and Tools for Embedded Systems & Soft. and Compilers for Embedded Systems (LCTES/SCOPES 2002), Berlin, Germany, pp. 38–45. ACM Press, New York (2002)
Jarzabek, S., Zhang, H.: XML-based method and tool for handling variant requirements in domain model. In: Proceedings of the 5th IEEE International Symposium on Requirements Engineering (RE 2001), Toronto, Canada, pp. 116–123. IEEE Computer Society Press, Los Alamitos (2001)
Kahn, J.M., Katz, R.H., Pister, K.S.J.: Next century challenges: Mobile networking for “smart dust”. In: International Conference on Mobile Computing and Networking (MOBICOM 1999), pp. 271–278 (1999)
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–353. Springer, Heidelberg (2001)
Lohmann, D., Blaschke, G., Spinczyk, O.: Generic advice: On the combination of AOP with generative programming in AspectC++. In: Karsai, G., Visser, E. (eds.) GPCE 2004. LNCS, vol. 3286, pp. 55–74. Springer, Heidelberg (2004)
Lohmann, D., Scheler, F., Tartler, R., Spinczyk, O., Schröder-Preikschat, W.: A quantitative analysis of aspects in the eCos kernel. In: Proceedings of the EuroSys 2006 Conference (EuroSys 2006), pp. 191–204. ACM Press, New York (2006)
Lohmann, D., Schröder-Preikschat, W., Spinczyk, O.: On the design and development of a customizable embedded operating system. In: Proceedings of the SRDS Workshop on Dependable Embedded Systems (SRDS-DES 2004), pp. 1–6. IEEE Computer Society Press, Los Alamitos (2004)
Lohmann, D., Spinczyk, O.: On typesafe aspect implementations in C++. In: Gschwind, T., Aßmann, U., Nierstrasz, O. (eds.) SC 2005. LNCS, vol. 3628, pp. 135–149. Springer, Heidelberg (2005)
Mezini, M., Ostermann, K.: Variability management with feature-oriented programming and aspects. In: Proceedings of ACM SIGSOFT 2004 / FSE-12 (November 2004)
Muller, G., Volanschi, E.N., Marlet, R.: Scaling up partial evaluation for optimizing the sun commercial rpc protocol. In: ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, Amsterdam, The Netherlands, pp. 116–125. ACM Press, New York (1997)
Muthig, D., Patzke, T.: Generic implementation of product line components. In: Aksit, M., Mezini, M., Unland, R. (eds.) NODe 2002. LNCS, vol. 2591, pp. 313–329. Springer, Heidelberg (2003)
University of Utah. OSKit homepage, http://www.cs.utah.edu/flux/oskit
Ossher, H., Tarr, P.: Using multidimensional separation of concerns to (re)shape evolving software. Communications of the ACM, 43–50 (October 2001)
Parnas, D.L.: Some hypothesis about the uses hierarchy for operating systems. Technical report, TH Darmstadt, Fachbereich Informatik (1976)
Pu, C., Massalin, H., Ioannidis, J.: The Synthesis kernel. Computing Systems 1(1), 11–32 (1988)
Reid, A., Flatt, M., Stoller, L., Lepreau, J., Eide, E.: Knit: Component composition for systems software. In: Proceedings of the 4th Symposium on Operating Systems Design and Implementation (OSDI 2000), San Diego, pp. 347–360. Usenix Association (October 2000)
Rohlik, O., Pasetti, A., Cechticky, V., Birrer, I.: Implementing adaptability in embedded software through aspect oriented programming. In: Proceedings of Mechatronics & Robotics (MechRob 2004), Aachen, Germany. IEEE Computer Society Press, Los Alamitos (2004)
Schröder-Preikschat, W., Lohmann, D., Gilani, W., Scheler, F., Spinczyk, O.: Static and dynamic weaving in system software with AspectC++. In: Coady, Y., Gray, J., Klefstad, R. (eds.) Proceedings of the 39th Hawaii International Conference on System Sciences (HICSS 2006) - Mini-Track on Adaptive and Evolvable Software Systems. IEEE Computer Society Press, Los Alamitos (2006)
Spinczyk, O., Lohmann, D., Urban, M.: Advances in AOP with AspectC++. In: Fujita, H., Mejri, M. (eds.) New Trends in Software Methodologies, Tools and Techniques (SoMeT 2005), Tokyo, Japan. Frontiers in Artificial Intelligence and Applications, vol. 129, pp. 33–53. IOS Press, Amsterdam (2005)
Tennenhouse, D.: Proactive computing. Communications of the ACM, 43–45 (May 2000)
Weiser, M.: The computer for the 21st centrury. Scientific American 265(3), 94–104 (1991)
Young, T., Murphy, G.: Using AspectJ to build a product line for mobile devices. In: AOSD 2005 Demo, Chicago, Illinois (March 2005)
Zhang, C., Gao, D., Jacobsen, H.-A.: Generic middleware substrate through modelware. In: Proceedings of the ACM/IFIP/USENIX 6th International Middleware Conference (Middleware 2005), Grenoble, France. ACM Press, New York (2005)
Zhang, C., Jacobsen, H.-A.: Refactoring middleware with aspects. IEEE Transactions on Parallel and Distributed Systems 14(11) (November 2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Lohmann, D., Spinczyk, O., Schröder-Preikschat, W. (2006). Lean and Efficient System Software Product Lines: Where Aspects Beat Objects. In: Rashid, A., Aksit, M. (eds) Transactions on Aspect-Oriented Software Development II. Lecture Notes in Computer Science, vol 4242. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11922827_8
Download citation
DOI: https://doi.org/10.1007/11922827_8
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-48890-3
Online ISBN: 978-3-540-48891-0
eBook Packages: Computer ScienceComputer Science (R0)