Recommendation Services for Open Source Software Community

Open Access
Author:
Allaho, Mohammad Yacoub
Graduate Program:
Computer Science and Engineering
Degree:
Doctor of Philosophy
Document Type:
Dissertation
Date of Defense:
October 13, 2014
Committee Members:
  • Wang Chien Lee, Dissertation Advisor
  • Wang Chien Lee, Committee Chair
  • C Lee Giles, Committee Member
  • Piotr Berman, Committee Member
  • Zhenhui Li, Committee Member
Keywords:
  • Open Source Software
  • recommender service
  • network analysis
  • Degree of Acquaintance
  • Degree of Knowledge
  • expert ranking.
Abstract:
Large collaborative online communities have appeared and grown rapidly in the presence of Web 2.0 technology, witnessed by the massive success of Open Source Software (OSS) projects such as the Apache projects and GNU/Linux. As members of OSS projects are mostly volunteers, their motivations usually involve personal goals/interests, such as sharpening their programming skills and gaining experience, following fellow peers, networking with the OSS community members, or simply supporting free open software projects. In contrast to commercial software with dedicated responsibility to software engineers, the amount of participation and commitment by the volunteering developers are crucial factors for the success of OSS projects. In fact, the failure of projects to attract active developers may prove to be the single important reason for the death of OSS projects. Therefore, recommendation services are crucially needed to automate the process of forming teams, finding the appropriate experts for a given task and suggesting open projects to potential developers. Given the unique structure of the OSS community, the continuous growing number of OSS projects available online (over 4 millions) and the number of mixed-skilled developers (over 1 million), recommendation services become extremely challenging. In order to build successful recommendation services, we first investigate and study the OSS community structure and the social factors that affect the amount of participation and commitment in OSS projects. In particular, we conduct an extensive social link analysis on the Social Network (SN) and Affiliation Network (AN) of OSS developers. Moreover, we conduct both global and local networks analysis, where a global network analysis considers a developer's connectivity in the whole OSS community network, whereas a local network analysis considers a developer's connectivity within a team network that is affiliated to a project. The analysis demonstrates evident influence of the social factors on the developers' overall participation and productivity. We further investigate the different types of affiliations that could associate developers into collaboration such as co-participating in the same project, belonging to the same company or institution or even being in the same city. We, also, study the effect of some project features on the developers' selection of projects. The analysis results are used to build highly accurate recommendation services for OSS community. We introduce three recommendation services for OSS community members. First, we consider the expert recommendation problem for members of the community. Given a query developer and a task in hand, the expert recommender service introduces experts to facilitate collaboration between newbie developers and experts. In this particular problem, we solve the issue of experts responsiveness to queries, where experts, usually, tend to ignore the requests to participate. Another issue is data sparsity problem since most new members have few data history which is a challenge to recommender systems. To solve these challenges we propose a recommender system that uses the Degree of Knowledge and Social Relative Importance aspects in recommending experts who are knowledgeable on the skills required and highly responsive to queries. Second, we consider the project recommendation problem for members of the community. Project recommendation is a unique problem since it involves recommending an item that requires a continuous action and commitment. This is not the case for consuming items such as books or software. We propose several models that use two main aspects that attract developers into joining a project. The first aspect is the project content and the second aspect is the peer affiliation influence where we identify three kinds of affiliation ties, namely, project, work and location affiliations. The third recommender service considers recommending members to collaborate in a project as a team, which is know as the team formation problem in literature. Given a project/task with certain skills required and an upper bound of team size, the recommender service shall find a team that cover all the required skills and their Degree of Acquaintance (DoA) is maximized. We define the DoA in terms of the local clustering coefficient and the strength of social ties between the team members. OSS data analysis shows the importance of the connectivity and social tie strength to the overall productivity of the teams in open projects. This problem is NP-hard. We propose three algorithms to solve the defined problem. The results show the effectiveness of the proposed algorithms to find a well acquainted teams satisfying a given query. We further show that using the DoA, as a social closeness measure, produces more socially close teams than measures like graph diameter and density. For the analysis and the evaluation of the proposed recommender services, we use datasets collected from Github.com and Openhub.net (previously Ohloh.net), which are two fast-growing and large-scale online OSS communities. The evaluation of the recommender services shows promising results of recommending experts, projects and teams to developers in the community.