Font Size: a A A

Research On Evaluation Technologies Of Software Architecture Sustainable Evolvability

Posted on:2020-11-02Degree:DoctorType:Dissertation
Country:ChinaCandidate:T WangFull Text:PDF
GTID:1368330611455340Subject:Software engineering
Abstract/Summary:PDF Full Text Request
In order to protect the vitality and competitiveness of software,software architecture evolution runs through the entire life cycle of software.Developers add new features,repair fault,and improve performance through software architecture evolution.However,with the increase of software scale and the complexity of software architecture,the difficulty of software architecture evolution has gradually increased.In order to meet the requirements of software evolution,how to ensure the sustainable evolution of software architecture has become a crucial issue.The evaluation of software architecture sustainable evolvability is a way to effectively know whether the current software architecture can be evolved.In order to effectively implement software architecture evaluation,it usually needs to complete the following three steps: 1)obtain an effective software architecture as input;2)establish a software architecture evolvability evaluation model and evaluation method;3)implement evaluation and verify the validity of the evaluation results.To this end,we need to pay attention to how obtain an accurate software architecture,how the software architecture sustainable evolvability is evaluated,how locate the reasons of architecture erosion based on the evaluation result,and how the software architecture is refactored based on the evolution results of architecture sustainable evolvability and architecture erosion.This can be achieved from the initial architecture,through the evaluation and architecture refactoring,and the continuous evolution of the software architecture for re-evaluation and re-refactoring.However,the reality is that the four aspects of these research have the following problems:(1)In terms of obtaining an accurate software architecture,the existing methods mainly rely on the source code for software architecture recovery,but a single data source is difficult to guarantee the accuracy of the recovered software architecture;and when recovering the software architecture of a large scale system,the recovery efficiency is low.(2)In terms of architecture evolvability evaluation,the current method mainly adopts a qualitative evaluation method.This evaluation method depends on whether the evaluator has a rich experience,and the evaluation process requires manual intervention,which cause the evaluation process cannot be real-time,automated,and objective.In addition,the existing evolvability evaluation is mainly to evaluate the ability of evolution,not the effect of software architecture evolution.(3)In terms of architecture erosion evaluation,the current fine-grained change detection method does not support the change detection between versions well,so it does not well support the impact of changes on architecture erosion;the root reason of architecture erosion is eroded code.At present,the software architecture erosion evaluation method is based on the higher-level abstraction of software.It does not link high-level abstraction and code well,which leads to the evaluation result of architecture erosion is coarse-grained.(4)In the aspect of architecture refactoring,the existing software architecture refactoring method does not consider the consistency problem before and after the architecture refactoring.The result is that although the refactoring process is good,the refactoring effect is difficult to guarantee.In order to solve the above problems,this dissertation studies the software architecture sustainable evolvability evaluation technology from four aspects: architecture recovery,architecture evolution evaluation,architecture erosion evaluation and architecture refactoring.The main content and contributions are as follows:(1)For the problem that the accuracy of the recovered architecture is low,this dissertation extracts information from the source code and directory to ensure the integrity of the data.Experimental results show that the proposed method improves the effectiveness of the recovered architecture;For the problem of low efficiency of architecture recovery,this dissertation preprocess the file dependence graph based on dependency structure and dependency type to reduce the number of objects needed for clustering.Experimental results show that the proposed method improves the efficiency of architecture recovery.(2)For the problem that the qualitative evaluation method cannot guarantee the objectivity of the evaluation results,this dissertation evaluates architecture evolvability based on the internal attribute of the architecture and realizes the automatic evaluation.For the problem of the lack of evaluation effect architecture,this dissertation proposes the principle of architecture evolution.The evolution effect of the architecture is measured,then based on the evaluation results and the evolution log,an evolution proposal is proposed for the continuous evolution of the architecture.(3)For the problem that the current method does not support the change detection between versions,this dissertation proposes a method for detecting the change between versions based on the multi-level program analysis tree.The experimental results show that the detection method has a high recall and precision.For the problem that the current evaluation result of the architecture erosion evaluation method is coarser,the multi-level change detection method is used to locate the eroded points of the architecture layer by layer,and the architecture erosion is analyzed based on the change of statement.For the problem that it is not feasible to repair all eroded points,this dissertation builds a cost-effective model to provide repair priority for each eroded point.(4)For the problem that the consistency between source code and architecture is difficult to guarantee,this dissertation proposes two co-evolution methods between architecture and source code,the co-evolution method of architecture based on the refactored code,and the co-evolution method of source code based on the refactored architecture.Experimental results show that the two co-evolution methods can guarantee the consistency between source code and architecture.
Keywords/Search Tags:evolvability, software architecture evaluation, software architecture erosion, software architecture refactoring
PDF Full Text Request
Related items