Streamlining Feature-Oriented Designs

  • Martin Kuhlemann
  • Sven Apel
  • Thomas Leich
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4829)


Software development for embedded systems gains momentum but faces many challenges. Especially the constraints of deeply embedded systems, i.e., extreme resource and performance constraints, seem to prohibit the successful application of modern and approved programming and modularization techniques. In this paper we indicate that this objection is not necessarily justified. We propose to use refinement chain optimization to tailor and streamline feature-oriented designs to satisfy the resource constraints of (deeply) embedded systems. By means of a quantitative analysis of a case study we show that our proposal leads to a performance and footprint improvement significant for (deeply) embedded systems.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Driesen, K., Hölzle, U.: The Direct Cost of Virtual Function Calls in C++. In: OOPSLA (1996)Google Scholar
  2. 2.
    Calder, B., Grunwald, D., Zorn, B.: Quantifying Behavioral Differences Between C and C++ Programs. Journal of Programming Languages 2(4) (1994)Google Scholar
  3. 3.
    Lohmann, D., Schröder-Preikschat, W., Spinczyk, O.: On the Design and Development of a Customizable Embedded Operating System. In: Proceedings of the International Workshop on Dependable Embedded Systems (2004)Google Scholar
  4. 4.
    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: ISORC (1999)Google Scholar
  5. 5.
    Beuche, D., Meyer, R., Schröder-Preikschat, W., Spinczyk, O., Spinczyk, U.: Streamlined PURE Systems. In: Bertino, E. (ed.) ECOOP 2000. LNCS, vol. 1850, Springer, Heidelberg (2000)Google Scholar
  6. 6.
    Sangiovanni-Vincentelli, A., Martin, G.: Platform-Based Design and Software Design Methodology for Embedded Systems. IEEE Design & Test of Computers 18(6), 23–33 (2001)CrossRefGoogle Scholar
  7. 7.
    Batory, D., Sarvela, J., Rauschmayer, A.: Scaling Stepwise Refinement. IEEE Transactions on Software Engineering 30(6) (2004)Google Scholar
  8. 8.
    Prehofer, C.: Feature-Oriented Programming: A Fresh Look at Objects. In: ECOOP (1997)Google Scholar
  9. 9.
    Apel, S., Leich, T., Saake, G.: Aspectual Mixin Layers: Aspects and Features in Concert. In: ICSE (2006)Google Scholar
  10. 10.
    Apel, S., Batory, D.: When to Use Features and Aspects? A Case Study. In: GPCE (2006)Google Scholar
  11. 11.
    Mezini, M., Ostermann, K.: Variability Management with Feature-Oriented Programming and Aspects. In: ACM SIGSOFT FSE, ACM Press, New York (2004)Google Scholar
  12. 12.
    Lieberherr, K., Lorenz, D.H., Ovlinger, J.: Aspectual Collaborations: Combining Modules and Aspects. The Computer Journal 46(5) (2003)Google Scholar
  13. 13.
    Smaragdakis, Y., Batory, D.: Mixin Layers: An Object-Oriented Implementation Technique for Refinements and Collaboration-Based Designs. ACM Transactions on Software Engineering and Methodology 11(2) (2002)Google Scholar
  14. 14.
    VanHilst, M., Notkin, D.: Using Role Components in Implement Collaboration-based Designs. In: OOPSLA (1996)Google Scholar
  15. 15.
    Czarnecki, K., Eisenecker, U.W.: Generative Programming: Methods, Tools, and Applications. Addison-Wesley, Reading (2000)Google Scholar
  16. 16.
    Apel, S., Kuhlemann, M., Leich, T.: Generic Feature Modules: Two-Dimensional Program Customization. In: ICSOFT (2006)Google Scholar
  17. 17.
    Apel, S., et al.: FeatureC++: On the Symbiosis of Feature-Oriented and Aspect-Oriented Programming. In: GPCE (2005)Google Scholar
  18. 18.
    Calder, B., Grunwald, D.: Reducing Indirect Function Call Overhead in C++ Programs. In: POPL (1994)Google Scholar
  19. 19.
    Calder, B., Grunwald, D., Zorn, B.: Quantifying Behavioral Differences Between C and C+ + Programs. Journal of Programming Languages 2(4) (1994)Google Scholar
  20. 20.
    Dean, J., Grove, D., Chambers, C.: Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis. In: ECOOP (1995)Google Scholar
  21. 21.
    Pande, H.D., Ryder, B.G.: Static Type Determination for C++. In: C++ Conference (1994)Google Scholar
  22. 22.
    Aigner, G., Hölzle, U.: Eliminating Virtual Function Calls in C++ Programs. In: ECCOP (1996)Google Scholar
  23. 23.
    Friedrich, M., et al.: Efficient Object-Oriented Software with Design Patterns. In: GCSE (2000)Google Scholar
  24. 24.
    Martin, G., Lavagno, L., Louis-Guerin, J.: Embedded UML: a merger of real-time UML and co-design. In: Proceedings of the ninth international symposium on Hardware/software codesign (CODES) (2001)Google Scholar
  25. 25.
    Lee, C., Nordstedt, D., Helal, S.: Enabling Smart Spaces with OSGi. IEEE Pervasive Computing 2(3), 89–94 (2003)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Martin Kuhlemann
    • 1
  • Sven Apel
    • 1
  • Thomas Leich
    • 1
  1. 1.School of Computer Science, University of MagdeburgGermany

Personalised recommendations