Font Size: a A A

Recommendation Methods And Techniques For Crowd-based Software Development

Posted on:2019-11-03Degree:DoctorType:Dissertation
Country:ChinaCandidate:C YangFull Text:PDF
GTID:1368330623950475Subject:Software engineering
Abstract/Summary:PDF Full Text Request
In the Internet era,significant changes have taken place in software development methodologies,run-time support infrastructures and service delivery modes.A new software paradigm,Internetware-based creative software,become more mainstream,whose construction,application and service models are all Internet-based,gradually replaced traditional software.Under this paradgm,a large groups of stakeholders can participate in the development process directly or indirectly,which generates new characteristics of crowd-oriented and crowd-driven in software team and development process.The growing number of massive openness software resources,collaborative developers with diverse ablities and software artifacts with similar functionalities have led to the increasingly prominent challenges in(1)finding appropriate software resources for reuse;(2)assigning revelent software developers for accomplishing certain tasks;and(3)selecting suitable software applications for personalized end-user requirement.In this dissertation,focusing on the Open-Source Software(OSS)Communities and Mobile Application(APP),two typical Internetware-based creative software,we have studied personalized recommendation algorithms for open source software projects,Pull-Request code reviewers and mobile APPs,which can improve the effectiveness of team construction,project selection and task assigment.The main contributions of the thesis has been summarized as follows.Firstly,one of the key factors for a successful OSS project is that it can organize a large number long-term contributors.In OSS communities,these massive and widely distributed contributors are coordinated in an unorganized and unbounded manner.As a consequence,they need to spend a lot of time and effort to find out,use,and eventually contribute to the OSS projects that they really interest in.In order to improve the efficiency of massive crowd-based collaboration,this thesis proposes a personalized recommendation method(RepoLike)for OSS projects based on multi-dimensional features.RepoLike measures the correlation between developers and given OSS projects from three different dimensions,including popularity of the OSS projects,technical dependencies among the OSS projects,and social connections among the developers.Using on a linear combination of the three aspects,RepoLike then recommend repositories to developers with the learning to rank algorithm.Secondly,code review has been considered as an important process to reduce code defects and improve software quality.In a new social development community,such as GitHub,the code of the software project is not only from the core team members,but also a large number of peripheral users can contribute their own code to the project by submitting Pull Request(PR).Because the development ability and proficiency of the peripheral contributors are quite uneven,the code review of PR is particularly important,and it is also very time-consuming.Therefore,it is a vital task to automatically recommend appropriate reviewers for Pull Requests.In this thesis,we have designed a two-layer model for fine-grained PR reviewer recommendation.Based on the empirical study we separate the core review into technical and management tasks,and then we present a two-level hybrid recommendation method to identify whether a developer is suitable for reviewing a given PR.Thirdly,the scale of the mobile application(APP)stores has been expanding rapidly promoted by crowd feedbacks.More and more mobile device user requirements are satisfied by corresponding APPs.Because of the large number of APPs and their complicated features,it is hard for users to find the APP that is suitable for their needs.In this thesis,we propose a personalized recommendation algorithm based on the "Small-Crowd" model.Our algorithm first uses the APPs installed by a user as the features that describe the user's personal interests.It then considers the "Small-Crowd" model to construct a "User-APP" matrix and distinguish different APPs according to whether it can clearly reveal the personal interest of a user.The collaborative filtering technique is used to achieve basic recommendation.Finally,to impove the ranking of APP recommendation results,we design a weighting method to combine the global download information of an APP with its fine-grained user usage records.
Keywords/Search Tags:Crowd-based Software Development, Data Mining, Personalized Recommendation System, Open Source Development, Mobile Application
PDF Full Text Request
Related items