Results 1 - 10
of
16
Predicting failures with developer networks and social network analysis
- In SIGSOFT ’08/FSE-16: Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
, 2008
"... Software fails and fixing it is expensive. Research in failure prediction has been highly successful at modeling software failures. Few models, however, consider the key cause of failures in software: people. Understanding the structure of developer collaboration could explain a lot about the reliab ..."
Abstract
-
Cited by 36 (1 self)
- Add to MetaCart
(Show Context)
Software fails and fixing it is expensive. Research in failure prediction has been highly successful at modeling software failures. Few models, however, consider the key cause of failures in software: people. Understanding the structure of developer collaboration could explain a lot about the reliability of the final product. We examine this collaboration structure with the developer network derived from code churn information that can predict failures at the file level. We conducted a case study involving a mature Nortel networking product of over three million lines of code. Failure prediction models were developed using test and post-release failure data from two releases, then validated against a subsequent release. One model’s prioritization revealed 58 % of the failures in 20 % of the files compared with the optimal prioritization that would have found 61 % in 20 % of the files, indicating that a significant correlation exists between file-based developer network metrics and failures.
Assigning change requests to software developers
, 2011
"... The paper presents an approach to recommend a ranked list of expert developers to assist in the implementation of software change requests (e.g., bug reports and feature requests). An Information Retrieval (IR)-based concept location technique is first used to locate source code entities, e.g., file ..."
Abstract
-
Cited by 16 (6 self)
- Add to MetaCart
The paper presents an approach to recommend a ranked list of expert developers to assist in the implementation of software change requests (e.g., bug reports and feature requests). An Information Retrieval (IR)-based concept location technique is first used to locate source code entities, e.g., files and classes, relevant to a given textual description of a change request. The previous commits from version control repositories of these entities are then mined for expert developers. The role of the IR method in selectively reducing the mining space is different from previous approaches that textually index past change requests and/or commits. The approach is evaluated on change requests from three open-source systems: ArgoUML, Eclipse, andKOffice, across a range of accuracy criteria. The results show that the overall accuracies of the correctly recommended developers are between 47 and 96 % for bug reports, and between 43 and 60% for feature requests. Moreover, comparison results with two other recommendation alternatives show that the presented approach outperforms them with a substantial margin. Project leads or developers can use this approach in maintenance tasks immediately after the receipt of a change request in a free-form text.
Who Can Help Me with this Source Code Change?
"... An approach to recommend a ranked list of developers to assist in performing software changes to a particular file is presented. The ranking is based on change expertise, experience, and contributions of developers, as derived from the analysis of the previous commits involving the specific file in ..."
Abstract
-
Cited by 12 (5 self)
- Add to MetaCart
(Show Context)
An approach to recommend a ranked list of developers to assist in performing software changes to a particular file is presented. The ranking is based on change expertise, experience, and contributions of developers, as derived from the analysis of the previous commits involving the specific file in question. The commits are obtained from a software system’s version control repositories (e.g., Subversion). The basic premise is that a developer who has substantially contributed changes to specific files in the past is likely to best assist for their current or future change. Evaluation of the approach on a number of open source systems such as koffice, Apache
Who are source code contributors and how do they change
- In 16th Working Conference on Reverse Engineering, WCRE 2009
, 2009
"... Abstract—Determining who are the copyright owners of a software system is important as they are the individuals and organizations that license the software to its users, and ultimately the legal entities that can enforce its licensing terms, and change its license. In this paper we describe the diff ..."
Abstract
-
Cited by 10 (6 self)
- Add to MetaCart
(Show Context)
Abstract—Determining who are the copyright owners of a software system is important as they are the individuals and organizations that license the software to its users, and ultimately the legal entities that can enforce its licensing terms, and change its license. In this paper we describe the difficulties of identifying the explicit copyright owners of a system, and those who contribute source code to it—who could potentially claim are also copyright owners of it. The paper introduces a method to track the names of contributors, including those explicitly listed as copyright owners from licensing statements in source code file. Then, it reports an empirical study performed on four open source systems—namely ArgoUML, Mozilla, Samba, and Squid— aimed at investigating the characteristics of their contributors and how they relate to the commits recorded in the system and users who perform them (its committers). Results indicate that explicit contributors and copyright owners are not necessarily the most frequent committers. Also, they are often added during larger changes than average. Keywords-Mining software repositories; open source systems; source code ownership; empirical study. I.
Mining the history of synchronous changes to refine code ownership
- In Proceedings of MSR 2009 (6th IEEE Working Conference on Mining Software Repositories
, 2009
"... When software repositories are mined, two distinct sources of information are usually explored: the history log and snapshots of the system. Results of analyses derived from these two sources are biased by the frequency with which developers commit their changes. We argue that the usage of mainstrea ..."
Abstract
-
Cited by 9 (3 self)
- Add to MetaCart
(Show Context)
When software repositories are mined, two distinct sources of information are usually explored: the history log and snapshots of the system. Results of analyses derived from these two sources are biased by the frequency with which developers commit their changes. We argue that the usage of mainstream SCM systems influences the way that developers work. For example, since it is tedious to resolve conflicts due to parallel commits, developers tend to minimize conflicts by not contemporarily modifying the same file. This however defeats one of the purposes of such systems. We mine repositories created by our Syde tool, which records every change by every developer in multi-developer projects. This new source of information can augment the accuracy of analyses and breaks new ground in terms of how such information can assist developers. In this paper we illustrate how the information we mine can help to provide a refined notion of code ownership. As a case study, we analyze the developers ’ activities of the development of a commercial system. 1.
Identifying cross-cutting concerns using software repository mining
, 2009
"... Cross-cutting concerns are pieces of functionality that have not been captured into a separate module, thereby hindering program comprehension and maintainability. Solving these problems requires first identifying these cross-cutting concerns in pieces of software. Several methods for identification ..."
Abstract
-
Cited by 7 (2 self)
- Add to MetaCart
(Show Context)
Cross-cutting concerns are pieces of functionality that have not been captured into a separate module, thereby hindering program comprehension and maintainability. Solving these problems requires first identifying these cross-cutting concerns in pieces of software. Several methods for identification have been proposed but the option of using software repository mining has largely been left unexplored. That technique can uncover relationships between modules that may not be present in the source code and thereby provide a different perspective on the cross-cutting concerns in a software system. We perform software repository mining on the repositories of two software systems for which the crosscutting concerns are known: JHotDraw and Tomcat. Based on the results of the evaluation, we make some suggestions for future directions in the area of identifying crosscutting concerns using software repository mining ★. 1.
Mining Email Archives and Simulating the Dynamics of Open-Source Project Developer Networks
"... Abstract. In distributed open-source software projects, participation of developers is largely by a voluntary basis. Programmers are not only free to join in or to leave the project, but they are also free to choose who they interact with, and how much they contribute to the project. In that sense, ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
(Show Context)
Abstract. In distributed open-source software projects, participation of developers is largely by a voluntary basis. Programmers are not only free to join in or to leave the project, but they are also free to choose who they interact with, and how much they contribute to the project. In that sense, open-source project developers form a dynamic social network. This paper presents a measure to represent the interactions of distributed open-source software developers and utilizes data clustering techniques to mine their email archives to derive a representation of the associated social network. This method is applied on case studies of three social networks from two open-source projects, Linux and KDE. The dynamics of the three networks are then analyzed and simulated using agent-based modeling techniques. Our study shows that the three open-source developer networks evolved over time with some predictable patterns.
FINDING SUITABLE MODULARITY TECHNIQUE FOR OSS PROJECTS
"... ABSTRACT Open Source Software (OSS) Projects currently become the trend in Computer Science / Information Technology. The previously assumed to be a chaotic and 'bazaar' style of software development has proven itself to be able to produce some of high quality software applications such a ..."
Abstract
- Add to MetaCart
ABSTRACT Open Source Software (OSS) Projects currently become the trend in Computer Science / Information Technology. The previously assumed to be a chaotic and 'bazaar' style of software development has proven itself to be able to produce some of high quality software applications such as Linux Operating System, Openoffice.org productivity suite, Apache web server, and many more. These successes have triggered many studies to determine OSS Project success factors, and one of the identified key success factor is the modularity of the OSS applications. The modularity of software system itself also receives many interests from researchers. In this paper, five modularity techniques are analyzed against the ideal attributes of modular software in order to find the suitable modularity technique for OSS Project. The result shows that there are two modularity techniques suitable for this project.
Do Programming Languages Influence the Impact of Software Changes?
"... During a software development process, changes happen in almost every phase: requirements, design implementation, and maintenance. Software-change impact analysis, or simply impact analysis (IA), has been recognized as a key maintenance activity. IA aims at estimating the potentially impacted entiti ..."
Abstract
- Add to MetaCart
(Show Context)
During a software development process, changes happen in almost every phase: requirements, design implementation, and maintenance. Software-change impact analysis, or simply impact analysis (IA), has been recognized as a key maintenance activity. IA aims at estimating the potentially impacted entities of a system due to a proposed change. In this paper, we present a study to investigate the role of programming languages in change impact analysis. We try to find whether changes made in different language programs have same impact on different entities or not same. In this study IA is based on number of files impacted, number of revisions impacted, number of developers involved and changes made per hour.
Information Integration for Software Maintenance and Evolution
, 2012
"... Software maintenance and evolution is a particularly complex phenomenon in the case of longlived, large-scale systems. It is not uncommon for such systems to progress through years of development history, a number of developers, and a multitude of software artifacts including millions of lines of co ..."
Abstract
- Add to MetaCart
Software maintenance and evolution is a particularly complex phenomenon in the case of longlived, large-scale systems. It is not uncommon for such systems to progress through years of development history, a number of developers, and a multitude of software artifacts including millions of lines of code. Therefore, realizing even the slightest change may not always be straightforward. Clearly, changes are the central force driving software evolution. Therefore, it is not surprising that a significant effort has been (and should be) devoted in the software engineering community to systematically understanding, estimating, and managing changes to software artifacts. This effort includes the three core change related tasks of (1) expert developer recommendations- identifying who are the most experienced developers to implement needed changes, (2) traceability link recovery recovering dependencies (traceability links) between different types of software artifacts, and (3) software change impact analysis- which other software entities should be changed given a starting point. This dissertation defines a framework for an integrated approach to support three core software maintenance and evolution tasks: expert developer recommendation, traceability link recovery, and software change impact analysis. The framework is centered on the use of conceptual and