Print Email Facebook Twitter Model-based software restructuring: Lessons from cleaning up COM interfaces in industrial legacy code 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 transformsLibrariesReengineeringCode transformationGeneric technologyHigh tech companiesHigh tech industryHigh-level modelsIndustrial softwareLanguage technologySoftware developerSoftware 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 Files To receive the publication files, please send an e-mail request to TNO Library.