Skip to main content

Delta-Trait Programming of Software Product Lines

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 8802))

Abstract

Delta-oriented programming (DOP) is a flexible approach for implementing software product lines (SPLs). DOP SPLs are implemented by a set of delta modules encapsulating changes to class-based object-oriented programs. A particular product in a DOP SPL is generated by applying to the empty program the modifications contained in the delta modules associated to the selected product features. Traits are pure units of behavior, designed to support flexible fine-grained reuse and to provide an effective means to counter the limitations of class-based inheritance. A trait is a set of methods which is independent from any class hierarchy and can be flexibly used to build other traits or classes by means of a suite of composition operations. In this paper, we present an approach for programming SPLs of trait-based programs where the program modifications expressed by delta modules are formulated by exploiting the trait composition mechanism. This smooth integration of the modularity mechanisms provided by delta modules and traits results in a new approach for programming SPLs, delta-trait programming (DTP), which is particularly well suited for evolving SPLs.

Work partially supported by MIUR (proj. CINA), Ateneo/CSP (proj. SALT), Deutsche Forschungsgemeinschaft (grant SCHA1635/2-1), and ICT COST Action IC1201 BETTY.

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

Buying options

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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Apel, S., Kästner, C., Grösslinger, A., Lengauer, C.: Type safety for feature-oriented product lines. Automated Software Engineering 17(3), 251–300 (2010)

    Article  Google Scholar 

  2. Apel, S., Kästner, C., Lengauer, C.: Feature Featherweight Java: A Calculus for Feature-Oriented Programming and Stepwise Refinement. In: Proc. of GPCE 2008, pp. 101–112. ACM (2008)

    Google Scholar 

  3. Bassett, P.G.: Framing software reuse: lessons from the real world. Prentice-Hall, Inc., Upper Saddle River (1997)

    Google Scholar 

  4. Batory, D.: Feature Models, Grammars, and Propositional Formulas. In: Obbink, H., Pohl, K. (eds.) SPLC 2005. LNCS, vol. 3714, pp. 7–20. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  5. Batory, D., Sarvela, J.N., Rauschmayer, A.: Scaling step-wise refinement. In: Proc. of ICSE 2003, pp. 187–197. IEEE (2003)

    Google Scholar 

  6. Bettini, L., Bono, V., Naddeo, M.: A trait based re-engineering technique for Java hierarchies. In: Proc. of PPPJ, pp. 149–158. ACM (2008)

    Google Scholar 

  7. Bettini, L., Damiani, F.: Pure trait-based programming on the java platform. In: Proc. of PPPJ 2013, pp. 67–78. ACM, New York (2013)

    Google Scholar 

  8. Bettini, L., Damiani, F., Geilmann, K., Schäfer, J.: Combining traits with boxes and ownership types in a Java-like setting. Science of Computer Programming 78(2), 218–247 (2013)

    Article  MATH  Google Scholar 

  9. Bettini, L., Damiani, F., Schaefer, I.: Compositional type checking of delta-oriented software product lines. Acta Informatica 50(2), 77–122 (2013)

    Article  MathSciNet  MATH  Google Scholar 

  10. Bettini, L., Damiani, F., Schaefer, I.: Implementing type-safe software product lines using parametric traits. Science of Computer Programming (2013), http://dx.doi.org/10.1016/j.scico.2013.07.016

  11. Bettini, L., Damiani, F., Schaefer, I., Strocco, F.: TraitRecordJ: A programming language with traits and records. Science of Computer Programming 78(5), 521–541 (2013)

    Article  Google Scholar 

  12. Bono, V., Damiani, F., Giachino, E.: On Traits and Types in a Java-like setting. In: Ausiello, G., Karhumäki, J., Mauri, G., Ong, L. (eds.) TCS 2008. IFIP, vol. 273, pp. 367–382. Springer, Heidelberg (2008)

    Google Scholar 

  13. Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison Wesley Longman (2001)

    Google Scholar 

  14. Damiani, F., Dovland, J., Johnsen, E.B., Schaefer, I.: Verifying traits: An incremental proof system for fine-grained reuse. Formal Aspects of Computing 26(4), 761–793 (2014)

    Article  MathSciNet  Google Scholar 

  15. Damiani, F., Owe, O., Dovland, J., Schaefer, I., Johnsen, E.B., Yu, I.C.: A transformational proof system for delta-oriented programming. In: Proc. of SPLC, vol. 2, pp. 53–60. ACM (2012)

    Google Scholar 

  16. Delaware, B., Cook, W.R., Batory, D.: A Machine-Checked Model of Safe Composition. In: Proc. of FOAL, pp. 31–35. ACM (2009)

    Google Scholar 

  17. Ducasse, S., Nierstrasz, O., Schärli, N., Wuyts, R., Black, A.: Traits: A mechanism for fine-grained reuse. ACM TOPLAS 28(2), 331–388 (2006)

    Article  Google Scholar 

  18. Hähnle, R., Schaefer, I.: A Liskov Principle for Delta-Oriented Programming. In: Margaria, T., Steffen, B. (eds.) ISoLA 2012, Part I. LNCS, vol. 7609, pp. 32–46. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  19. Igarashi, A., Pierce, B., Wadler, P.: Featherweight Java: A minimal core calculus for Java and GJ. ACM TOPLAS 23(3), 396–450 (2001)

    Article  Google Scholar 

  20. Kang, K.C., Cohen, S.G., Hess, J.A., Novak, W.E., Peterson, A.S.: Feature-Oriented Domain Analysis (FODA) Feasibility Study. Technical report, Carnegie Mellon Software Engineering Institute (1990)

    Google Scholar 

  21. Kastner, C., Apel, S.: Type-checking software product lines - a formal approach. In: Proc. of ASE 2008, pp. 258–267. IEEE (2008)

    Google Scholar 

  22. Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An Overview of AspectJ. In: Lindskov Knudsen, J. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–354. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  23. Krueger, C.: Eliminating the Adoption Barrier. IEEE Software 19(4), 29–31 (2002)

    Article  Google Scholar 

  24. Lienhard, A., Ducasse, S., Arévalo, G.: Identifying traits with formal concept analysis. In: Proc. ASE 2005, pp. 66–75. IEEE Computer Society (2005)

    Google Scholar 

  25. Liquori, L., Spiwack, A.: Extending feathertrait java with interfaces. Theor. Comput. Sci. 398(1-3), 243–260 (2008)

    Article  MathSciNet  MATH  Google Scholar 

  26. Lopez-Herrejon, R.E., Batory, D., Cook, W.: Evaluating support for features in advanced modularization technologies. In: Gao, X.-X. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 169–194. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  27. Mikhajlov, L., Sekerinski, E.: A Study of the Fragile Base Class Problem. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol. 1445, pp. 355–382. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  28. Nierstrasz, O., Ducasse, S., Schärli, N.: Flattening traits. JOT 5(4), 129–148 (2006) www.jot.fm

  29. Pohl, K., Böckle, G., van der Linden, F.: Software Product Line Engineering - Foundations, Principles, and Techniques. Springer (2005)

    Google Scholar 

  30. Reppy, J., Turon, A.: Metaprogramming with traits. In: Ernst, E. (ed.) ECOOP 2007. LNCS, vol. 4609, pp. 373–398. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  31. Schaefer, I., Bettini, L., Bono, V., Damiani, F., Tanzarella, N.: Delta-oriented programming of software product lines. In: Bosch, J., Lee, J. (eds.) SPLC 2010. LNCS, vol. 6287, pp. 77–91. Springer, Heidelberg (2010)

    Google Scholar 

  32. Schaefer, I., Bettini, L., Damiani, F.: Compositional type-checking of delta-oriented programming. In: Proc. of AOSD 2011, pp. 43–56. ACM (2011)

    Google Scholar 

  33. Schaefer, I., Damiani, F.: Pure Delta-oriented Programming. In: Proc. of FOSD 2010, pp. 49–56. ACM (2010)

    Google Scholar 

  34. Schaefer, I., Rabiser, R., Clarke, D., Bettini, L., Benavides, D., Botterweck, G., Pathak, A., Trujillo, S., Villela, K.: Software diversity: state of the art and perspectives. International Journal on Software Tools for Technology Transfer 14(5), 477–495 (2012)

    Article  Google Scholar 

  35. Schärli, N., Ducasse, S., Nierstrasz, O., Black, A.P.: Traits: Composable units of behavior. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, pp. 248–274. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  36. Schuster, S.: Design Patterns in Feature-Oriented Programming. Bachelor’s thesis, TU Braunschweig (2012)

    Google Scholar 

  37. Schuster, S., Schulze, S.: Object-oriented design in feature-oriented programming. In: Proc. of FOSD 2012, pp. 25–28. ACM (2012)

    Google Scholar 

  38. Smith, C., Drossopoulou, S.: Chai: Traits for Java-like languages. In: Gao, X.-X. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 453–478. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Damiani, F., Schaefer, I., Schuster, S., Winkelmann, T. (2014). Delta-Trait Programming of Software Product Lines. In: Margaria, T., Steffen, B. (eds) Leveraging Applications of Formal Methods, Verification and Validation. Technologies for Mastering Change. ISoLA 2014. Lecture Notes in Computer Science, vol 8802. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-45234-9_21

Download citation

  • DOI: https://doi.org/10.1007/978-3-662-45234-9_21

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-662-45233-2

  • Online ISBN: 978-3-662-45234-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics