Title
Model-based software restructuring: Lessons from cleaning up COM interfaces in industrial legacy code
Author
Dams, D.
Mooij, A.
Kramer, P.
Radulescu, A.
Vanhara, J.
Publication year
2018
Abstract
The high-tech industry is faced with ever growing amounts of software to be maintained and extended. To keep the associated costs under control, there is a demand for more human overview and for large-scale code restructurings. Language technology such as parsing can assist in this, but classical restructuring tools are typically not flexible enough to accommodate the needs of specific cases. In our research we investigate ways to make software restructuring tools customizable by software developers at Thermo Fisher Scientific as well as at other high-tech companies. We report on an industry-as-lab project, in which we have collaborated on cleaning up the compilation of COM interfaces of a large industrial software component. As a generic result, we have identified a method that we call model-based software restructuring. The approach taken is to extract high-level models from the code, use these to specify and visualize the restructuring, which is then translated into low-level code transformations. To implement this approach, we integrate generic technology to develop custom solutions. We aim for semiautomation and incrementally automate recurring restructuring patterns. The COM clean-up affected 72 type libraries and 1310 client projects with (one or more) dependencies on these type libraries. We have addressed these one type library at a time, and delivered all changes without blocking regular software development. Software developers in neighboring projects immediately noticed the very low defect rate of our restructuring. Moreover, as a spin-off, we have observed that the developed tools also start to contribute to regular software development. © 2018 IEEE. IEEE; IEEE Computer Society; Technical Council on Software Engineering (TCSE); University of Molise
Subject
Codes (symbols)
Cosine transforms
Libraries
Reengineering
Code transformation
Generic technology
High tech companies
High tech industry
High-level models
Industrial software
Language technology
Software developer
Software design
To reference this document use:
http://resolver.tudelft.nl/uuid:b9de9e36-7541-4aa0-b67c-d38532016c26
DOI
https://doi.org/10.1109/saner.2018.8330258
TNO identifier
842188
Publisher
Institute of Electrical and Electronics Engineers Inc.
ISBN
9781538649695
Source
25th IEEE International Conference on Software Analysis, Evolution and Reengineering, SANER 2018. 20 March 2018 through 23 March 2018, 2018-March, 552-556
Document type
conference paper