Cost-Effective Industrial Software Rejuvenation Using Domain-Specific Models

  • Arjan J. MooijEmail author
  • Gernot Eggen
  • Jozef Hooman
  • Hans van Wezep
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9152)


Software maintenance consumes a significant and increasing proportion of industrial software engineering budgets, only to maintain the existing product functionality. This hinders the development of new innovative features with added value to customers. To make software development efforts more effective, legacy software needs to be rejuvenated into a substantial redesign. We show that partially-automated software rejuvenation is becoming feasible and cost-effective in industrial practice. We use domain-specific models that abstract from implementation details, and apply a pragmatic combination of manual and automated techniques. We demonstrate the effectiveness of this approach by the rejuvenation of legacy software of the Interventional X-ray machines developed by Philips Healthcare.


Graphical User Interface Information Model Legacy Model Technical Debt Legacy Software 
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.



This research was supported by the Dutch national program COMMIT and carried out as part of the Allegio project. The authors thank Dirk Jan Swagerman for his trust in this endeavor, and Aron van Beurden and Martien van der Meij for their technical contributions to the software rejuvenation.


  1. 1.
    Baxter, I.D., Pidgeon, C.W., Mehlich, M.: DMS: Program transformations for practical scalable software evolution. In: Proceedings of ICSE 2004, pp. 625–634. IEEE Computer Society (2004)Google Scholar
  2. 2.
    Bray, T., Paolia, J., Sperberg-McQueen, C.M., Maler, E., Yergeau, F.: Extensible Markup Language (XML) 1.0, 5th edn. W3C recommendation, World Wide Web Consortium (2008).
  3. 3.
    de Groot, J., Nugroho, A., Bäck, T., Visser, J.: What is the value of your software? In: Managing Technical Debt (MTD 2012), pp. 37–44. ACM (2012)Google Scholar
  4. 4.
    Fehrenbach, S., Erdweg, S., Ostermann, K.: Software evolution to domain-specific languages. In: Erwig, M., Paige, R.F., Van Wyk, E. (eds.) SLE 2013. LNCS, vol. 8225, pp. 96–116. Springer, Heidelberg (2013) CrossRefGoogle Scholar
  5. 5.
    Fleurey, F., Breton, E., Baudry, B., Nicolas, A., Jézéquel, J.-M.: Model-driven engineering for software migration in a large industrial context. In: Engels, G., Opdyke, B., Schmidt, D.C., Weil, F. (eds.) MODELS 2007. LNCS, vol. 4735, pp. 482–497. Springer, Heidelberg (2007) CrossRefGoogle Scholar
  6. 6.
    Hooman, J., Mooij, A.J., van Wezep, H.: Early fault detection in industry using models at various abstraction levels. In: Derrick, J., Gnesi, S., Latella, D., Treharne, H. (eds.) IFM 2012. LNCS, vol. 7321, pp. 268–282. Springer, Heidelberg (2012) CrossRefGoogle Scholar
  7. 7.
    Klint, P., Landman, D., Vinju, J.J.: Exploring the limits of domain model recovery. In: Proceedings of ICSM 2013, pp. 120–129. IEEE (2013)Google Scholar
  8. 8.
    Mooij, A.J., Hooman, J., Albers, R.: Gaining industrial confidence for the introduction of domain-specific languages. In: Proceedings of IEESD 2013, pp. 662–667. IEEE (2013)Google Scholar
  9. 9.
    Parr, T.: Soapbox: Humans should not have to grok XML. IBM developerWorks, IBM, August 2001.
  10. 10.
    Pirkelbauer, P., Dechev, D., Stroustrup, B.: Source code rejuvenation is not refactoring. In: van Leeuwen, J., Muscholl, A., Peleg, D., Pokorný, J., Rumpe, B. (eds.) SOFSEM 2010. LNCS, vol. 5901, pp. 639–650. Springer, Heidelberg (2010) CrossRefGoogle Scholar
  11. 11.
    Reus, T., Geers, H., van Deursen, A.: Harvesting software systems for MDA-based reengineering. In: Rensink, A., Warmer, J. (eds.) ECMDA-FA 2006. LNCS, vol. 4066, pp. 213–225. Springer, Heidelberg (2006) CrossRefGoogle Scholar
  12. 12.
    Sneed, H.M.: Planning the reengineering of legacy systems. IEEE Softw. 12(1), 24–34 (1995)CrossRefGoogle Scholar
  13. 13.
    Steffen, B., Howar, F., Merten, M.: Introduction to active automata learning from a practical perspective. In: Bernardo, M., Issarny, V. (eds.) SFM 2011. LNCS, vol. 6659, pp. 256–296. Springer, Heidelberg (2011) CrossRefGoogle Scholar
  14. 14.
    Tolvanen, J.-P.: Domain-specific modeling for full code generation. Softw. Tech News (STN) 12(4), 4–7 (2010)Google Scholar
  15. 15.
    Tonella, P., Potrich, A.: Reverse Engineering of Object-Oriented Code. Springer, Heidelberg (2005)zbMATHGoogle Scholar
  16. 16.
    van der Aalst, W.M.P.: Process Mining: Discovery. Conformance and Enhancement of Business Processes. Springer, Heidelberg (2011)CrossRefzbMATHGoogle Scholar
  17. 17.
    van der Aalst, W.M.P., van Hee, K.M.: Workflow Management: Models. MIT Press, Methods and Systems (2004)Google Scholar
  18. 18.
    Voelter, M.: Best practices for DSLs and model-driven development. J. Object Technol. 8(6), 79–102 (2009)CrossRefGoogle Scholar
  19. 19.
    Voelter, M.: DSL Engineering (2013).
  20. 20.
    Wagner, C.: Model-Driven Software Migration: A Methodology. Springer, Heidelberg (2014)CrossRefGoogle Scholar
  21. 21.
    Whittle, J., Hutchinson, J., Rouncefield, M.: The state of practice in model-driven engineering. IEEE Softw. 31, 79–85 (2014)CrossRefGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  • Arjan J. Mooij
    • 1
    Email author
  • Gernot Eggen
    • 3
  • Jozef Hooman
    • 1
    • 2
  • Hans van Wezep
    • 3
  1. 1.Embedded Systems Innovation by TNOEindhovenThe Netherlands
  2. 2.Radboud University NijmegenNijmegenThe Netherlands
  3. 3.Philips HealthcareBestThe Netherlands

Personalised recommendations