Skip to main content

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

  • Conference paper
Transactions on Aspect-Oriented Software Development II

Part of the book series: Lecture Notes in Computer Science ((TAOSD,volume 4242))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. eCos homepage, http://ecos.sourceware.org/

  2. OSEK/VDX standard, http://www.osek-vdx.org/

  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. 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. 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)

    Chapter  Google Scholar 

  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)

    Chapter  Google Scholar 

  7. UC Berkeley. TinyOS homepage, http://www.tinyos.net/

  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. Beuche, D.: Variant management with pure:variants. Technical report, pure-systems GmbH (2003), http://www.pure-systems.com/

  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. 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. 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. 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)

    Chapter  Google Scholar 

  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. 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. Czarnecki, K., Eisenecker, U.W.: Generative Programming. Methods, Tools and Applications. Addison-Wesley, Reading (2000)

    Google Scholar 

  17. Czarnecki, K., Eisenecker, U.W.: Synthesizing Objects. In: Guerraoui, R. (ed.) ECOOP 1999. LNCS, vol. 1628, pp. 18–42. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  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. Delta Software Technology GmbH. Angie – an introduction (June 2005)

    Google Scholar 

  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. 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)

    Chapter  Google Scholar 

  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)

    Chapter  Google Scholar 

  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)

    Chapter  Google Scholar 

  24. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)

    Google Scholar 

  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)

    Chapter  Google Scholar 

  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. 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)

    Chapter  Google Scholar 

  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)

    Chapter  Google Scholar 

  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. 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. 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)

    Chapter  Google Scholar 

  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)

    Chapter  Google Scholar 

  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)

    Chapter  Google Scholar 

  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. 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)

    Chapter  Google Scholar 

  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. 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)

    Chapter  Google Scholar 

  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)

    Chapter  Google Scholar 

  39. University of Utah. OSKit homepage, http://www.cs.utah.edu/flux/oskit

  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. Parnas, D.L.: Some hypothesis about the uses hierarchy for operating systems. Technical report, TH Darmstadt, Fachbereich Informatik (1976)

    Google Scholar 

  42. Pu, C., Massalin, H., Ioannidis, J.: The Synthesis kernel. Computing Systems 1(1), 11–32 (1988)

    Google Scholar 

  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. 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. 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. 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. Tennenhouse, D.: Proactive computing. Communications of the ACM, 43–45 (May 2000)

    Google Scholar 

  48. Weiser, M.: The computer for the 21st centrury. Scientific American 265(3), 94–104 (1991)

    Article  Google Scholar 

  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. 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. Zhang, C., Jacobsen, H.-A.: Refactoring middleware with aspects. IEEE Transactions on Parallel and Distributed Systems 14(11) (November 2003)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics