Using spectral clustering to automate identification and optimization of component structures

2013 
A well-structured, modular software architecture is known to support comprehensibility, maintainability and extensibility of a software system. To achieve this goal the software system is divided into components in such a way that its component structure is optimized regarding cohesion and coupling. But with increasing size and complexity identifying and evaluating a component structure can be rarely accomplished by humans manually. To support this task, we developed an approach using Spectral Clustering from the field of neural computation. Based on the different dependencies between software elements, our approach automatically forms a component structure of the analyzed software system. In a case study we demonstrate this approach on a software system of manually manageable size and complexity. The results are compared to the component structure skilled software architects manually formed. In most cases both variants, manually as well as automated, provide similar component structures. For this reason, the presented approach seems to be suitable for systems which are not manageable by hand.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    25
    References
    6
    Citations
    NaN
    KQI
    []