{"title":"Using spectral clustering to automate identification and optimization of component structures","authors":"Constanze Deiters, A. Rausch, Mirco Schindler","doi":"10.1109/RAISE.2013.6615199","DOIUrl":null,"url":null,"abstract":"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.","PeriodicalId":183132,"journal":{"name":"2013 2nd International Workshop on Realizing Artificial Intelligence Synergies in Software Engineering (RAISE)","volume":"3 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2013-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"9","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2013 2nd International Workshop on Realizing Artificial Intelligence Synergies in Software Engineering (RAISE)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/RAISE.2013.6615199","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 9
Abstract
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.