Skip to main content

Technologies for Evolvable Software Products: The Conflict between Customizations and Evolution

  • Chapter
Advances in Software Engineering

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 5316))

Abstract

A software product is software that is built for nobody in particular but is sold multiple times. A software product is typically highly customizable, or adaptable, to particular use contexts; moreover, such a software product can typically be thought of as a common kernel plus a number of customizations, one for each use context. A successful software product will be used for many years, and hence the kernel must evolve to accommodate changing demands and environments. The subject of this paper is the conflict between the customizations made for each use context and the evolution of the kernel over time. As a case study we consider Microsoft Dynamics AX and Dynamics NAV, highly customizable enterprise resource planning (ERP) software systems, for which upgrades are traditionally costly. We study the challenges related to the customization/evolution conflict and present some software engineering approaches, programming language constructs and software tools that attempt to address these problems, and discuss whether they could be brought to bear on the conflict.

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

Access this chapter

eBook
USD 16.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 16.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.

Similar content being viewed by others

References

  1. C# language specification. ECMA Standard 334 (June 2005)

    Google Scholar 

  2. Allen, E.: Object-oriented programming in Fortress. FOOL/WOOD 2007, (January 2007), http://www.cs.hmc.edu/

  3. Allen, E., et al.: The Fortress language specification. Technical report, Sun Microsystems (March 2008), http://research.sun.com/projects/plrg/

  4. Batory, D.: Feature oriented programming for product-lines. Slide set for tutorial, OOPSL 2004, Vancouver, Canada (October 2004)

    Google Scholar 

  5. Batory, D.: Multilevel models in model-driven engineering, product lines, and metaprogramming. IBM Systems Journal 45(3), 527–539 (2006)

    Article  Google Scholar 

  6. Batory, D., Lofaso, B., Smaragdakis, Y.: JTS, tools for implementing domain specific languages. In: Fifth International Conference on Software Reuse, pp. 143–153 (1998)

    Google Scholar 

  7. Batory, D., O’Malley, S.: The design and implementation of hierarchical software systems with reusable components. ACM Transactions on Software Engineering and Methodology 1(4), 355–398 (1992)

    Article  Google Scholar 

  8. Batory, D., Singhal, V., Sirkin, M., Thomas, J.: Scalable software libraries. In: SIGSOFT, pp. 191–199 (1993)

    Google Scholar 

  9. Bergel, A., Ducasse, S., Nierstrasz, O., Wuyts, R.: Stateful traits and their formalization. Computer Languages, Systems & Structures 34(2-3), 83–108 (2008)

    Article  Google Scholar 

  10. Dittrich, Y., Vaucouleur, S.: Customization and upgrading of ERP systems. an empirical perspective. Technical Report TR-2008-105, IT University of Copenhagen, Denmark (March 2008)

    Google Scholar 

  11. Ducasse, S., Nierstrasz, O., Schärli, N., Wuyts, R., Black, A.P.: Traits: A mechanism for fine-grained reuse. ACM Transactions on Programming Languages and Systems 28(2), 331–388 (2006)

    Article  Google Scholar 

  12. Eaddy, M., Aho, A.: Statement annotations for fine-grained advising. In: ECOOP Workshop on Reflection, AOP and Meta-Data for Software Evolution (RAM-SE 2006), Nantes, France, (July 2006)

    Google Scholar 

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

    MATH  Google Scholar 

  14. Greef, A., et al.: Inside Microsoft Dynamics AX 4.0. Microsoft Press (2006)

    Google Scholar 

  15. JSR-277 Expert Group. Jsr-277: Java module system. Technical report, Sun Microsystems (October 2006), http://jcp.org/en/jsr/detail?id=277

  16. Hyper, J.: Home page, http://www.alphaworks.ibm.com/tech/hyperj

  17. Software Engineering Institute.Software product lines, http://www.sei.cmu.edu/productlines/

  18. Johansen, R., Sestoft, P., Spangenberg, S.: Zero-overhead composable aspects for.NET. In: Börger, E., Cisternino, A. (eds.) Software Engineering. LNCS, vol. 5316, pp. 186–216. Springer, Heidelberg (2008)

    Google Scholar 

  19. Johansen, R., Spangenberg, S.: Yiihaw. an aspect weaver for .NET. Master’s thesis, IT University of Copenhagen, Denmark (February 2007), http://www.itu.dk/people/sestoft/itu/JohansenSpangenberg-Aspects-2007.pdf

  20. Kennedy, A., Russo, C.: Generalized algebraic data types and object-oriented programming. In: OOPSLA, San Diego, California, October 2005, pp. 21–40 (2005)

    Google Scholar 

  21. Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)

    Google Scholar 

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

  23. Lehman, M.M.: Rules and tools for software evolution planning and management. Annals of Software Engineering 11(1), 15–44 (2001)

    Article  MathSciNet  MATH  Google Scholar 

  24. Lehman, M.M.: Programs, life cycles, and laws of software evolution. Proceedings of the IEEE, 68(9), 1060–1076 (September 1980)

    Google Scholar 

  25. Mens, T., Buckley, J., Zenger, M., Rashid, A.: Towards a taxonomy of software evolution. In: International Workshop on Unanticipated Software Evolution, Warsaw, Poland (April 2003)

    Google Scholar 

  26. Microsoft. Microsoft Dynamics AX. Homepage, http://www.microsoft.com/dynamics/ax/

  27. Microsoft. Microsoft Dynamics NAV. Homepage, http://www.microsoft.com/dynamics/nav/

  28. Mortensen, F.: Software development with Navision. Talk, ERP Crash Course, University of Copenhagen, January 31 (2007), http://www.3gerp.org/Documents/ERP

  29. Odersky, M.: The Scala language specification, version 2.0. Technical report, École Polytechnique Féderale de Lausanne, Switzerland (January 2007), http://www.scala-lang.org/

  30. Ossher, H., Tarr, P.: Hyper/J: multi-dimensional separation of concerns for Java. In: ICSE 2001: 23rd International Conference on Software Engineering, Toronto, Canada, pp. 821–822. IEEE Computer Society, Los Alamitos (2001)

    Chapter  Google Scholar 

  31. Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Communications of the ACM 15(12), 1053–1058 (1972)

    Article  Google Scholar 

  32. Parnas, D.L.: On the design and development of program families. IEEE Transactions on Software Engineering SE2(1), (1976)

    Google Scholar 

  33. Perlis, A.J.: Epigrams on programming. SIGPLAN Notices 17(9), 7–13 (1982)

    Article  Google Scholar 

  34. Pontoppidan, M.F.: Smart customizations. Screen cast (2006), http://channel9.msdn.com/Showforum.aspx?forumid=38&tagid=94

  35. Prehofer, C.: Feature-oriented programming: A fresh look at objects. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 419–443. Springer, Heidelberg (1997)

    Google Scholar 

  36. Rogerson, D.: Inside COM. Microsoft’s Component Object Model. Microsoft Press (1997)

    Google Scholar 

  37. Stroustrup, B.: The C++ programming language. Addison-Wesley, Reading (2000)

    MATH  Google Scholar 

  38. D. Studebaker. Programming Microsoft Dynamics NAV. Packt Publishing (2007)

    Google Scholar 

  39. Tourwé, T., Brichau, J., Gybels, K.: On the existence of the AOSD-evolution paradox. In: AOSD 2003 Workshop on Software-engineering Properties of Languages for Aspect Technologies, Boston, USA (2003)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Sestoft, P., Vaucouleur, S. (2008). Technologies for Evolvable Software Products: The Conflict between Customizations and Evolution. In: Börger, E., Cisternino, A. (eds) Advances in Software Engineering. Lecture Notes in Computer Science, vol 5316. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-89762-0_8

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-89762-0_8

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-89761-3

  • Online ISBN: 978-3-540-89762-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics