Skip to Main Content
In the long-term evolution of software systems, various maintenance activities such as functionality extension, bug fixing, refactoring may positively or negatively affect the quality of design and implementation. The trend of quality degradation caused by negative affections may accumulate and cause serious difficulties for future maintenance of the software if they were not addressed properly in time. In this paper, we propose an approach for monitoring the degradation trends of software design in evolution and providing useful feedbacks for evolution decisions. The approach is based on the assumption that the deviations between different modularity views and their trends in evolution can be used to monitor the degradation trends of design. Currently, our approach considers three modularity views, namely package view, structural cluster view and semantic cluster view. Package view denotes the package structure reflecting the desired modularity view, Structural cluster view and semantic cluster view are the modularity views extracted from implementation by software clustering based on formal information and non-formal information, respectively. Then based on the three modularity views extracted from each version, our approach calculates the similarity between different views as the measurement of modularity deviations, and analyzes the deviation trends over a series of versions. We conduct an empirical study on three open-source systems, which confirms that continuous monitoring of deviation trends of modularity views can provide useful feedbacks for future evolution decisions.
Date of Conference: 17-20 Oct. 2011