A machine learning approach to software model refactoring. Issue 2 (1st February 2022) - Sidhu, Brahmaleen Kaur; Singh, Kawaljeet; Sharma, Neeraj
Abstract : Good software quality is a consequence of good design. Model refactoring counteracts erosion of the software design at an early stage in the software development project complying with the model-driven engineering paradigm. Traditional model refactoring approaches work at the surface level by using threshold values of model metrics as indicators of suboptimal design and carry out localized corrections. Through this paper, it is proposed that identifying design flaws at a higher level of granularity will save from the vicious cycle of small refactoring operations and their cascaded side-effects. The notion of functional decomposition, as an anomalous design tendency and a dominant cause of design, smells in object-oriented software, is introduced. It is suggested that refactoring operations targeted at signs of functional decomposition instead of atomic smells achieve substantial improvement in design within a concise quality assurance procedure. The idea is realized using a deep neural network that learns to recognize the presence of functional decomposition in UML models of object-oriented software. The presented approach uses data science methods to gain insight into multidimensional software design features and uses the experience gained to generalize subtle relationships among architectural components.