| The software runs in a changing and developing environment.Many crashes and anomalies occur during the execution of the software system.It is difficult to foresee all the problems through software design.Therefore,the observation of software execution behavior is necessary.A large number of software execution data can be generated during software execution.These data provide valuable information about the actual use and interaction of software.The idea of process mining is to discover,monitor and improve real processes by extracting knowledge from event logs readily available in today’s systems.The work of this thesis is to analyze the software execution process data by using the method of process mining,that is,software execution process mining.The goal of the software execution process mining is to quickly find a concise,reasonable,and high-quality software execution process model to support the analysis and improvement of the software execution process.Many mining algorithms have been proposed to support the discovery of the software execution process model.Most of these mining algorithms are designed to mine flat process models.The flat process model refers to that all activities in the model are at the same level,and there is only order relationship between them,without an inclusion relationship.The flat process model is widely used.However,mining algorithms for flat process models have the following problems:(1)the models mined by these algorithms are difficult to achieve a balance between the four standards of model quality.The genetic mining algorithm uses the four quality standards as mining guidance,which can balance these quality standards and generate high-quality models.However,genetic mining algorithm is inefficient;(2)Existing mining algorithms discover models from the perspective of control flow or organizational respectively,which prevents us from analyzing the relationship between activities and performers;There is a nested calling relationship between methods in the software execution process,creating a hierarchical model can better reflect the software execution process.The existing mining algorithms for hierarchical methods have the following problems:(3)the soundness of the mining model can not be guaranteed,and the quality of the hierarchical model can not be measured;(4)A software system contains multiple interacting logical components.Component information is also needed to understand the behavior of software,while few existing methods can mine the software execution process model with component information.According to the above problems,the main contributions of this thesis are as follows:1.A genetic process mining algorithm based on trace clustering population(GMTC)is proposed.The algorithm improves the efficiency of the genetic mining algorithm by improving the quality of the initial population and the optimization of genetic operators.2.We extend the organization perspective discovery for the GMTC algorithm,and propose a double-perspective mining approach based on performer process tree and genetic process mining algorithm(DPE-GPM).This algorithm can combine two perspectives on one model to reflect the relationship between activities and performers;At the same time,a method that can measure the similarity between activities at the performer level is proposed,which can help managers design reasonable staffing strategies for the project.3.The software system is composed of several interacting components.In order to mine the software execution process model with component information,we propose a software execution data component identification method based on spectral clustering(SESC).The algorithm can identify the components of the software execution data according to the interaction between classes,and add component attributes to the events.The algorithm is the basis of the discovery of hierarchical software execution models with components.Compared with the existing methods,SESC can consider the number of calls between classes,and by determining the number of clusters through the component quality function,high-quality components can be identified efficiently.4.A discovery method for hierarchical software execution behavior models based on component(HSEC)is proposed.This method can identify the relationship between hierarchical method calls involved in software execution and construct a hierarchical process model.By using the component information to divide the model,the comprehensibility of the model is improved,and the internal behavior of components and the interaction between components can be reflected by the model.Finally,we propose a method to measure the quality of the hierarchical process model.This thesis presents a novel method for analysis,discovery and validation of software execution process,which can provide useful insights for the actual use of software,and ultimately improve the software execution process. |