Mentoring project newcomers is a crucial activity in software projects, and requires to identify people having good communication and teaching skills, other than high expertise on specific technical topics. In this demo we present Yoda (Young and newcOmer Developer Assistant), an Eclipse plugin that identifies and recommends mentors for newcomers joining a software project. Yoda mines developers’ communication (e.g., mailing lists) and project versioning systems to identify mentors using an approach inspired to what ArnetMiner does when mining advisor/student relations. Then, it recommends appropriate men- tors based on the specific expertise required by the newcomer. The demo sho
ws Yoda in action, illustrating how the tool is able to identify and visualize mentoring relations in a project, and suggest appropriate mentors for a developer who is going to work on certain source code files, or on a given topic.
A tool demo at ICSE 2013.
Software engineers have successfully used Natural Language Processing for refactoring source code. Conversely, in this paper we investigate the possibility to apply software refac- toring techniques to textual content. As a procedural program is composed of functions calling each other, a document can be modeled as content fragments connected each other through links. Inspired by software engineering refactoring strategies, we propose an approach for refactoring wiki content. The approach has been applied to the EMF category of Eclipsepedia with encouraging results.
ICSE 2013 - New Ideas and Emerging Results (NIER) track.
Mobile devices are rapidly becoming a key means to access the Internet and to discover and consume on-line services. Currently, most mobile applications are essentially clients to interact with remote services. However, the increasing power of devices is enabling a new class of applications that overcome the traditional models of desktop applications and web browsing, and embrace entirely new ways of computing. In this scenario, mobile devices are no longer intended as a means to access server-side data and functionality, but as a source of services that other devices can discover and invoke.
This calls for new technologies and tools to help migrating existing mobile applications towards the emerging service-centric scenario. In this paper we illustrate Sip2Share, a middleware that supports the creation of peer-to-peer networks of services on the Android platform, and discuss how the middleware can be used to migrate existing Android applications. The paper discusses on two scenarios: a re-architecting scenario, where the application is changed to make it aware of the middleware, and a wrapping scenario, where the application remains unchanged and the connection to the middleware is created in a wrapper.
A tool demo at 17th European Conference on Software Maintenance and Reengineering (CSMR 2013)
Very often, source code lacks comments that ade- quately describe its behavior. In such situations developers need to infer knowledge from the source code itself or to search for source code descriptions in external artifacts.
We argue that messages exchanged among contribu- tors/developers, in the form of bug reports and emails, are a useful source of information to help understanding source code. However, such communications are unstructured and usually not explicitly meant to describe specific parts of the source code. De- velopers searching for code descriptions within communications face the challenge of filtering large amount of data to extract what pieces of information are important to them. We propose an approach to automatically extract method descriptions from communications in bug tracking systems and mailing lists.
We have evaluated the approach on bug reports and mailing lists from two open source systems (Lucene and Eclipse). The results indicate that mailing lists and bug reports contain relevant descriptions of about 36% of the methods from Lucene and 7% from Eclipse, and that the proposed approach is able to extract such descriptions with a precision of up to 79% for Eclipse and 87% for Lucene. The extracted method descriptions can help developers in understanding the code and could also be used as a starting point for source code re-documentation.
20th IEEE International Conference on Program Comprehension (ICPC 2012)
Cross-project defect prediction is very appealing because (i) it allows predicting defects in projects for which the availability of data is limited, and (ii) it allows producing generalizable prediction models. However, existing research suggests that cross-project prediction is particularly challenging and, due to heterogeneity of projects, prediction accuracy is not always very good.
This paper proposes a novel, multi-objective approach for cross-project defect prediction, based on a multi-objective lo- gistic regression model built using a genetic algorithm. Instead of providing the software engineer with a single predictive model, the multi-objective approach allows software engineers to choose predictors achieving a compromise between number of likely defect-prone artifacts (effectiveness) and LOC to be analyzed/tested (which can be considered as a proxy of the cost of code inspection). Results of an empirical evaluation on 10 datasets from the Promise repository indicate the superiority and the usefulness of the multi-objective approach with respect to single-objective predictors. Also, the proposed approach outperforms an al- ternative approach for cross-project prediction, based on local prediction upon clusters of similar classes.
Sixth IEEE International Conference on Software Testing, Verification and Validation (ICST 2013)
We have developed a platform named Advanced Test Environment (ATE) for supporting the design and the automatic execution of UX tests for applications running on Android smartphones. The platform collects objective metrics used to estimate the UX. In this paper, we investigate the extent that the metrics captured by ATE are able to approximate the results that are obtained from UX testing with real human users. Our findings suggest that ATE produces UX estimations that are comparable to those reported by human users. We have also compared ATE with three widespread benchmark tools that are commonly used in the industry, and the results show that ATE outperforms these tools.
Sixth IEEE International Conference on Software Testing, Verification and Validation (ICST 2013)
This paper presents a middleware that enables the efficient delivery of events carrying large attachments. We transparently decouple event-description from event-data, in order to avoid useless data-transfers and modifications to endpoints business logic. Our solution relieves the event-delivery system of large data transfers, by enabling direct, but trans- parent, publisher to subscriber data-exchange. The experiments show that we can reduce the average event delivery time by half, compared to a standard approach requiring the full mediation of the event-delivery system.
28th Symposium On Applied Computing (SAC 2013)
When newcomers join a software project, they need to be properly trained to understand the technical and organi- zational aspects of the project. Inadequate training could likely lead to project delay or failure.
In this paper we propose an approach, named Yoda (Young and newcOmer Developer Assistant) aimed at identifying and recommending mentors in software projects by min- ing data from mailing lists and versioning systems. Can- didate mentors are identified among experienced developers who actively interact with newcomers. Then, when a new- comer joins the project, Yoda recommends her a mentor that, among the available ones, has already discussed topics relevant for the newcomer.
Yoda has been evaluated on software repositories of five open source projects. We have also surveyed some developers of these projects to understand whether mentoring was actu- ally performed in their projects, and asked them to evaluate the mentoring relations Yoda identified. Results indicate that top committers are not always the most appropriate mentors, and show the potential usefulness of Yoda as a rec- ommendation system to aid project managers in supporting newcomers joining a software project.
International Symposium on the Foundations of Software Engineering (SIGSOFT 2012 / FSE-20)
The growing success of mobile devices is enabling a new class of applications that overcome the traditional models of desktop applications and web browsing, and embrace entirely new ways of computing. Service- oriented computing and the rapidly growing power of mobile devices are the key ingredients of a new gener- ation of low-cost, lightweight applications where mobile devices are no longer intended as a means to access server-side data and functionality, but as a source of services that other devices can discover and invoke. In this paper we introduce Sip2Share, a middleware that allows for publishing, discovering and invoking ser- vices in a peer-to-peer network of Android devices. A characteristics of our middleware is that services are advertised, discovered and called using the same native mechanisms of the Android platform, i.e. intent, manifests and broadcast receivers.
7th International Conference on Software Paradigm Trends (ICSOFT 2012)
We consider the problem of auditing databases that support statistical sum/count/max/min queries to protect the privacy of sensitive information. We study the case in which the domain of the sensitive information is the boolean set. Principles and techniques developed for the privacy of statistical databases in the case of continuous attributes do not always apply here. We provide a probabilistic framework for the on-line auditing and we show that sum/count/min/max queries can be audited by means of a Bayesian network.
Privacy in Statistical Databases (PSD 2012)