Advertisement

Industrial Software Rejuvenation Using Open-Source Parsers

  • A. J. MooijEmail author
  • M. M. Joy
  • G. Eggen
  • P. Janson
  • A. Rădulescu
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9765)

Abstract

Software maintenance consumes an increasing proportion of industrial software engineering budgets. Over time the technical debt grows, until it becomes unavoidable to rejuvenate the legacy software to a new design, while preserving the valuable domain logic. In this paper, we explore the feasibility of a model-based rejuvenation approach for use in an industrial context. The approach is based on existing open-source parsers and a combination of models and model transformations, some of which are generic and others are tailored to the specific applications. We illustrate similar techniques on two industrial cases with different goals. Afterwards we extract some lessons learned, like the choice between extracting the domain logic or eliminating the implementation details.

Keywords

Model Transformation Data Conversion Legacy Code Abstract Syntax Tree Code Snippet 
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.

Notes

Acknowledgment

The authors thank Martien van der Meij (Philips Healthcare) and Hristina Moneva (Embedded Systems Innovation by TNO) for their technical contributions to the software rejuvenations.

References

  1. 1.
    Aftandilian, E., Sauciuc, R., Priya, S., Krishnan, S.: Building useful program analysis tools using an extensible Java compiler. In: Proceedings of SCAM 12, pp. 14–23. IEEE Computer Society (2012)Google Scholar
  2. 2.
    Baxter, I., Pidgeon, C., Mehlich, M.: DMS\({\textregistered }\): program transformations for practical scalable software evolution. In: Proceedings of ICSE 2004, pp. 625–634. IEEE Computer Society (2004)Google Scholar
  3. 3.
    Brunelière, H., Cabot, J., Dupé, G., Madiot, F.: MoDisco: a model driven reverse engineering framework. Inf. Softw. Technol. 56(8), 1012–1032 (2014)CrossRefGoogle Scholar
  4. 4.
    Chikofsky, E., Cross II, J.: Reverse engineering and design recovery: a taxonomy. IEEE Softw. 7(1), 13–17 (1990)CrossRefGoogle Scholar
  5. 5.
    Cosentino, V., Cabot, J., Albert, P., Bauquel, P., Perronnet, J.: Extracting business rules from COBOL: a model-based framework. In: Proceedings of WCRE 2013, pp. 409–416. IEEE Computer Society (2013)Google Scholar
  6. 6.
    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
  7. 7.
    de Jonge, M., Visser, E.: An algorithm for layout preservation in refactoring transformations. In: Sloane, A., Aßmann, U. (eds.) SLE 2011. LNCS, vol. 6940, pp. 40–59. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  8. 8.
    Ducasse, S., Pollet, D.: Software architecture reconstruction: a process-oriented taxonomy. IEEE Trans. Softw. Eng. 35(4), 573–591 (2009)CrossRefGoogle Scholar
  9. 9.
    Famelis, M., et al.: Migrating automotive product lines: a case study. In: Kolovos, D., Wimmer, M. (eds.) ICMT 2015. LNCS, vol. 9152, pp. 82–97. Springer, Heidelberg (2015)CrossRefGoogle Scholar
  10. 10.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)zbMATHGoogle Scholar
  11. 11.
    Hills, M., Klint, P., van der Storm, T., Vinju, J.: A case of visitor versus interpreter pattern. In: Bishop, J., Vallecillo, A. (eds.) TOOLS 2011. LNCS, vol. 6705, pp. 228–243. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  12. 12.
    Izquierdo, J., Molina, J.: Extracting models from source code in software modernization. Softw. Syst. Model. 13(2), 713–734 (2014)CrossRefGoogle Scholar
  13. 13.
    Khadka, R., Shrestha, P., Klein, B., Saeidi, A., Hage, J., Jansen, S., van Dis, E., Bruntink, M.: Does software modernization deliver what it aimed for? In: Proceedings of ICSME 2015, pp. 477–486. IEEE (2015)Google Scholar
  14. 14.
    Klusener, A., Lämmel, R., Verhoef, C.: Architectural modifications to deployed software. Sci. Comput. Program. 54(2–3), 143–211 (2005)MathSciNetCrossRefzbMATHGoogle Scholar
  15. 15.
    Lämmel, R., Verhoef, C.: Semi-automatic grammar recovery. Softw. - Pract. Exp. 31(15), 1395–1438 (2001)CrossRefzbMATHGoogle Scholar
  16. 16.
    Lanubile, F., Visaggio, G.: Extracting reusable functions by flow graph based program slicing. IEEE Trans. Softw. Eng. 23(4), 246–259 (1997)CrossRefGoogle Scholar
  17. 17.
    Mens, T., Tourwé, T.: A survey of software refactoring. IEEE Trans. Softw. Eng. 30(2), 126–139 (2004)CrossRefGoogle Scholar
  18. 18.
    Mooij, A.J., Eggen, G., Hooman, J., van Wezep, H.: Cost-effective industrial software rejuvenation using domain-specific models. In: Kolovos, D., Wimmer, M. (eds.) ICMT 2015. LNCS, vol. 9152, pp. 66–81. Springer, Heidelberg (2015)CrossRefGoogle Scholar
  19. 19.
    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
  20. 20.
    Sneed, H., Erdös, K.: Migrating AS400-COBOL to Java: a report from the field. In: Proceedings of CSMR 2013, pp. 231–240. IEEE Computer Society (2013)Google Scholar
  21. 21.
    Visser, E.: A survey of strategies in rule-based program transformation systems. J. Symb. Comput. 40(1), 831–873 (2005)MathSciNetCrossRefzbMATHGoogle Scholar
  22. 22.
    Voelter, M.: DSL Engineering (2013). http://dslbook.org/
  23. 23.
    Willink, E.: Meta-Compilation for C++. Ph.D. thesis, University of Surrey (2001)Google Scholar
  24. 24.
    Yu, Y., Wang, Y., Mylopoulos, J., Liaskos, S., Lapouchnian, A., Leite, J.: Reverse engineering goal models from legacy code. In: Proceedings of RE 2005, pp. 363–372. IEEE (2005)Google Scholar
  25. 25.
    Zhang, F., D’Hollander, E.: Using hammock graphs to structure programs. IEEE Trans. Softw. Eng. 30(4), 231–245 (2004)CrossRefGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2016

Authors and Affiliations

  • A. J. Mooij
    • 1
    Email author
  • M. M. Joy
    • 1
  • G. Eggen
    • 3
  • P. Janson
    • 2
  • A. Rădulescu
    • 2
  1. 1.Embedded Systems Innovation by TNOEindhovenThe Netherlands
  2. 2.FEI CompanyEindhovenThe Netherlands
  3. 3.Philips HealthcareBestThe Netherlands

Personalised recommendations