The rapid development of information technology has accelerated the iteration speed of software products,which requires developers to reuse software resources in order to reduce duplication of work and shorten the development cycle.However,finding suitable high-quality software quickly among numerous software resources has become a difficult problem faced by software reuse.To address this issue,this thesis investigates the evaluation and recommendation of software from two aspects.When developers have a clear understanding of the required software functionalities,they can locate software that meets their needs based on keywords or tags.At this point,through software evaluation,high-quality software can be selected from similar software for developers to reuse.However,when the developer’s needs are unclear,the aforementioned recommendation strategy no longer meets their requirements,and software reuse needs to be recommended based on the work the developer has already completed.Currently,the evaluation of open source software mainly focuses on the popularity and influence of the software in the open source ecosystem.However,for developers,they are more concerned about the support and maintenance status of the software project,which directly affects the reliability of reusing the software.In addition,library software usually needs to work collaboratively with a variety of different types of software,but existing software recommendation methods have not addressed this issue.To address the evaluation of library software,the thesis proposes a method for evaluating open-source software based on collaborative development behavior,with a focus on software project maintenance and community support.Firstly,the behavior of different participants in the open-source software ecosystem is analyzed to obtain project attributes of open-source software.Then,principal component analysis and multiple linear regression analysis are used to explore the relationship between project attributes and software maintenance,and attributes closely related to community support of software projects are selected as evaluation indicators.Finally,a software quality evaluation model is established that can reflect the maintenance status of opensource projects.The proposed method is applied to multiple software ecosystems,and experimental results show that it can effectively evaluate the quality of open-source software,helping developers choose excellent software.To address the problem of recommending reusable software when developer needs are unclear,this thesis proposes a library software recommendation method based on reuse networks.Firstly,information is extracted from the application software development records of developers in the software ecosystem to construct a library software reuse network.Graph convolutional networks are used to map nodes into lowdimensional vectors,which are used to calculate software similarity.Secondly,collaborative filtering is used to find the application software projects most similar to the current development project,and the reusable software of these projects is used as a recommendation candidate.Finally,software recommendations are made by considering software evaluation and relevance,to ensure that the recommended software has both quality and diversity.The proposed method has been applied to a real dataset,and experimental results show that using different types of library software in software projects increases the diversity of recommendation results,and can improve recommendation effectiveness.This thesis studies the recommendation problem of reused open source software in the community based on the analysis of developer behaviors.We propose an evaluation method for open source software based on collaborative development behavior and a library software recommendation method based on reuse network.We also analyze the maintenance and reuse patterns of software projects,which has both theoretical significance and practical value. |