Model-based software restructuring: Lessons from cleaning up COM interfaces in industrial legacy code
Autor: | Pepijn Kramer, Arjan J. Mooij, Andrei Radulescu, Dennis Dams, Jaromir Vanhara |
---|---|
Jazyk: | angličtina |
Rok vydání: | 2018 |
Předmět: |
High-level models
Computer science Restructuring Libraries 0102 computer and information sciences 02 engineering and technology Business process reengineering High tech industry 01 natural sciences Language technology Software Component (UML) Software developer 0202 electrical engineering electronic engineering information engineering Software design Legacy code Code transformation Industrial software business.industry Software development Codes (symbols) High tech companies Cosine transforms Reengineering 010201 computation theory & mathematics 020201 artificial intelligence & image processing Generic technology business Software engineering |
Zdroj: | SANER 25th IEEE International Conference on Software Analysis, Evolution and Reengineering, SANER 2018. 20 March 2018 through 23 March 2018, 2018-March, 552-556 |
Popis: | 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 |
Databáze: | OpenAIRE |
Externí odkaz: |