Title
Reducing code duplication by identifying fresh domain abstractions
Author
Klusener, S.
Mooij, A.J.
Ketema, J.
van Wezep, H.
Publication year
2018
Abstract
When software components are developed iteratively, code frequently evolves in an inductive manner: A unit is created and is then copied and modified many times. Such development often happens when variation points and, hence, proper domain abstractions are initially unclear. As a result, there may be substantial amounts of code duplication, and the code may be difficult to understand and maintain, warranting a redesign. We apply a model-based process to semi-Automatically redesign an inductively-evolved industrial adapter component written in C++: we use reverse engineering to obtain models of the component, and generate redesigned code from the models. Based on our experience, we propose to use three models to help recover understanding of inductively-evolved components, and transform the components into redesigned implementations. Guided by a reference design, a component's code is analyzed and a legacy model is extracted that captures the component's functionality in a form close to its original structure. The legacy model is then unfolded, creating a flat model which eliminates design decisions by focusing on functionality in terms of external interfaces. Analyzing the variation points of the flat model yields a redesigned model and fresh domain abstractions to be used in the new design of the component. © 2018 IEEE.
Subject
Industrial application report
Model based software engineering
Reverse engineering and re engineering
Software evolution
Software renovation
Abstracting
Application programs
Codes
Computer software maintenance
Iterative methods
Domain abstraction
Model based software engineering
Original structures
Reference designs
Software component
Variation points
C++
To reference this document use:
http://resolver.tudelft.nl/uuid:ed6fcd59-3952-497e-8bcd-92ad8ae0c3a6
DOI
https://doi.org/10.1109/icsme.2018.00020
TNO identifier
844213
Publisher
Institute of Electrical and Electronics Engineers Inc.
ISBN
9781538678701
Source
Proceedings - 2018 IEEE International Conference on Software Maintenance and Evolution, ICSME 2018, 569-578
Article number
8530067
Document type
conference paper