Lean and Efficient System Software Product Lines: Where Aspects Beat Objects

  • Daniel Lohmann
  • Olaf Spinczyk
  • Wolfgang Schröder-Preikschat
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4242)


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.


Product Line Software Product Line Weather Information Extra Overhead Virtual Function 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
  2. 2.
    OSEK/VDX standard,
  3. 3.
    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)Google Scholar
  4. 4.
    Andersen, L.O.: Program Analysis and Specialization for the C Programming Language. PhD thesis, DIKU, University of Copenhagen (DIKU report 94/19) (May 1994)Google Scholar
  5. 5.
    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)CrossRefGoogle Scholar
  6. 6.
    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)CrossRefGoogle Scholar
  7. 7.
    UC Berkeley. TinyOS homepage,
  8. 8.
    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)Google Scholar
  9. 9.
    Beuche, D.: Variant management with pure:variants. Technical report, pure-systems GmbH (2003),
  10. 10.
    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)Google Scholar
  11. 11.
    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)Google Scholar
  12. 12.
    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)Google Scholar
  13. 13.
    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)CrossRefGoogle Scholar
  14. 14.
    Colyer, A., Rashid, A., Blair, G.: On the separation of concerns in program families. Technical Report COMP-001-2004, Lancaster University (2004)Google Scholar
  15. 15.
    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)Google Scholar
  16. 16.
    Czarnecki, K., Eisenecker, U.W.: Generative Programming. Methods, Tools and Applications. Addison-Wesley, Reading (2000)Google Scholar
  17. 17.
    Czarnecki, K., Eisenecker, U.W.: Synthesizing Objects. In: Guerraoui, R. (ed.) ECOOP 1999. LNCS, vol. 1628, pp. 18–42. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  18. 18.
    Dean, J., Chambers, C., Grove, D.: Selective specialization for object-oriented languages. In: Proceedings of PLDI 1995, La Jolla, CA (June 1995)Google Scholar
  19. 19.
    Delta Software Technology GmbH. Angie – an introduction (June 2005)Google Scholar
  20. 20.
    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)Google Scholar
  21. 21.
    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)CrossRefGoogle Scholar
  22. 22.
    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)CrossRefGoogle Scholar
  23. 23.
    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)CrossRefGoogle Scholar
  24. 24.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)Google Scholar
  25. 25.
    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)CrossRefGoogle Scholar
  26. 26.
    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)Google Scholar
  27. 27.
    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)CrossRefGoogle Scholar
  28. 28.
    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)CrossRefGoogle Scholar
  29. 29.
    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)Google Scholar
  30. 30.
    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)Google Scholar
  31. 31.
    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)CrossRefGoogle Scholar
  32. 32.
    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)CrossRefGoogle Scholar
  33. 33.
    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)CrossRefGoogle Scholar
  34. 34.
    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)Google Scholar
  35. 35.
    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)CrossRefGoogle Scholar
  36. 36.
    Mezini, M., Ostermann, K.: Variability management with feature-oriented programming and aspects. In: Proceedings of ACM SIGSOFT 2004 / FSE-12 (November 2004)Google Scholar
  37. 37.
    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)CrossRefGoogle Scholar
  38. 38.
    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)CrossRefGoogle Scholar
  39. 39.
    University of Utah. OSKit homepage,
  40. 40.
    Ossher, H., Tarr, P.: Using multidimensional separation of concerns to (re)shape evolving software. Communications of the ACM, 43–50 (October 2001)Google Scholar
  41. 41.
    Parnas, D.L.: Some hypothesis about the uses hierarchy for operating systems. Technical report, TH Darmstadt, Fachbereich Informatik (1976)Google Scholar
  42. 42.
    Pu, C., Massalin, H., Ioannidis, J.: The Synthesis kernel. Computing Systems 1(1), 11–32 (1988)Google Scholar
  43. 43.
    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)Google Scholar
  44. 44.
    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)Google Scholar
  45. 45.
    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)Google Scholar
  46. 46.
    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)Google Scholar
  47. 47.
    Tennenhouse, D.: Proactive computing. Communications of the ACM, 43–45 (May 2000)Google Scholar
  48. 48.
    Weiser, M.: The computer for the 21st centrury. Scientific American 265(3), 94–104 (1991)CrossRefGoogle Scholar
  49. 49.
    Young, T., Murphy, G.: Using AspectJ to build a product line for mobile devices. In: AOSD 2005 Demo, Chicago, Illinois (March 2005)Google Scholar
  50. 50.
    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)Google Scholar
  51. 51.
    Zhang, C., Jacobsen, H.-A.: Refactoring middleware with aspects. IEEE Transactions on Parallel and Distributed Systems 14(11) (November 2003)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Daniel Lohmann
    • 1
  • Olaf Spinczyk
    • 1
  • Wolfgang Schröder-Preikschat
    • 1
  1. 1.Computer Science 4 – Distributed Systems and Operating SystemsFriedrich-Alexander-University Erlangen-NurembergGermany

Personalised recommendations