Font Size: a A A

Research On Automatic Mining And Refactoring Of Composite Crosscutting Concerns

Posted on:2013-01-29Degree:DoctorType:Dissertation
Country:ChinaCandidate:J HuangFull Text:PDF
GTID:1118330371480618Subject:Computer software and theory
Abstract/Summary:PDF Full Text Request
With the wide application of software in industry, software engineering provides standard management for software projects and assures software quality. Recently Research found that in legacy software systems exist various crosscutting concerns, which scattering across core modules of software systems. These crosscutting concerns are not well modularized so that they damage the modularization for the core concerns of the system. Therefore, crosscutting concerns should be detected and refactored. Existing mining approaches only use reference frequency of crosscutting concerns, but do not consider the structure information of programs. Furthermore, programs contain many composite crosscutting concerns including vasious elements, which can not be detected by existing mining approaches. Therefore it is quite necessary to detect and refactoring composite crosscutting concerns.Link analysis can be used to find crosscutting concerns. The scattering is the specific feature of crosscutting concern, which can be used to detect them. Unfortunately reference frequency is not equal to the scattering. However program dependence graph consists of elements and references between them so that it contains complete semantic information of original programs. Link analysis techniques use structure information of graph, especially two-state model can detect global implementation nodes and intergation nodes, crossdcutting concerns are similar to implementation nodes. Taking advantage of reference frequency and two-state model, the compling pattern of crossdcutting concerns in programs is described more preciously, which makes it more effective to detect them.Concerns in a program can be detected by analyzing its dependence graph with graph clustering. The primary challenge of clustering is to define proper measurements between elements. Program elements in the same concern are not only strongly connected, but also similar. Therefore the heterogeneous graph including two different types of edges should be adopted to represent programs. Existing techniques are density-based directed graph clustering approaches, which only take advantage of connections between elements. To cluster the heterogeneous graph, we should adopt similarity-based directed graph clustering approach, which can detect more complete groups of elements belonging to a program concern, and take advantage of existing undirected graph clustering approaches. Finally Authority-shift Clustering can find hierarchy structure of software system and solve the typical clustering problems such as initialization and choosing number of clusters.Semi-supervised techniques are effective to detect crosscutting concerns. Existing research focus on mining simple crosscutting concerns with single elements, however pratical one are composite including various elements. Thesefor, it is important to detect composite crosscutting concerns, which consist of crosscutting concern seeds and relative elements. The seeds scatter across modules and are similar to each other; they are key elements to a concern. The relative elements are not scattering while they have strong correlation with the seeds. The seeds from the same crosscutting concern should be in the same group, while the seeds from different crosscutting concern should not be in the same group. These constrains can be used by semi-supervised learning to improve clustering results. According to similarity-based directed graph clustering approach, a new semi-supervised graph clustering is given and software system DAQ including a large number of composite crosscutting concerns is used to illustrate the effectiveness of our approachComposite refactoring is the primary technique to realize automatic software refactoring. Since most real refactoring task are composite ones, a complete solution are needed to describe tasks, decompose tasks and realize preconditions. Refactoring are expressed with refactoring language, which should be capable of declaring program to be refactored, the composition of refactorings and their preconditions. Finally a refactoring framework are needed to performance these refactoring. Due to the variability of refactorings, this framework should be extendable and provides customization of refactoring detection. Therefore it is important to provide flexible functions for program query and transformation.
Keywords/Search Tags:Software Engineering, Crosscutting Concern, Aspect Mining, Link Analysis, Directed Graph Clustering, Semi-supervised Learning, CompositeRefactoring
PDF Full Text Request
Related items