All posts by spanichella

seal @ ICSE 2017

We are very happy to announce that our research group got two papers at ICSE 2017 in Buenos Aires, Argentina.

The first accepted paper is entitled “Analyzing APIs Documentation and Code to Detect Directive Defects” and was written by Yu Zhou, Ruihang Gu, Taolue Chen, Zhiqiu Huang, Sebastiano Panichella and Harald Gall.

Abstract: “Application Programming Interface (API) documents represent one of the most important references for API users. However, it is frequently reported that the documentation is inconsistent with the source code and deviates from the API itself. Such inconsistencies in the documents inevitably confuse the API users hampering considerably their API comprehension and the quality of software built from such APIs.

approach

In this paper, we propose an automated approach to detect defects of API documents by leveraging techniques from program comprehension and natural language processing. Particularly, we focus on the directives of the API documents which are related to parameter constraints and exception throwing declarations. A first-order logic based constraint solver is employed to detect such defects based on the obtained analysis results. We evaluate our approach on parts of well documented JDK 1.8 APIs. Experiment results show that, out of around 2000 API usage constraints, our approach can detect 1146 defective document directives, with a precision rate of 83.1%, and a recall rate of 81.2%, which demonstrates its practical feasibility.”

A preprint of the paper will be available soon.

The second paper is entitled “Recommending and Localizing Code Changes for Mobile Apps based on User Reviews” and was written in collaboration with the University of Salerno. The authors of the paper are: Fabio Palomba, Pasquale Salza, Adelina Ciurumelea, Sebastiano Panichella, Harald Gall, Filomena Ferrucci and Andrea De Lucia.

Abstract: “Researchers have proposed several approaches to extract information from user reviews useful for maintaining and evolving mobile apps. However, most of them just perform automatic classification of user reviews according to specific keywords (e.g., bugs, features). Moreover, they do not provide any support for linking user feedback to the source code components to be changed, thus requiring a manual, time-consuming, and error-prone task.

screen-shot-2016-12-13-at-12-35-37
In this paper, we introduce ChangeAdvisor, a novel approach that analyzes the structure, semantics, and sentiments of sentences contained in user reviews to extract useful (user) feedback from maintenance perspectives and recommend to developers changes to software artifacts. It relies on natural language processing and clustering algorithms to group user reviews around similar user needs and suggestions for change. Then, it involves textual based heuristics to determine the code artifacts that need to be maintained according to the recommended software changes. The quantitative and qualitative studies carried out on 44683 user reviews of 10 open source mobile apps and their original developers showed a high accuracy of ChangeAdvisor in (i) clustering similar user change requests and (iii) identifying the code components impacted by the suggested changes.

Moreover, the obtained results show that ChangeAdvisor is more accurate than a baseline approach for linking user feedback clusters to the source code in terms of both precision +47%) and recall (+38%).”

Also in this case a preprint of the paper will be available soon.

“Analyzing Reviews and Code of Mobile Apps for better Release Planning” @ SANER 2017

We’re happy to announce that the paper “Analyzing Reviews and Code of Mobile Apps for better Release Planning” has been accepted into SANER 2017 as a full paper. The authors of the paper are:   Adelina Ciurumelea, Andreas Schaufelbühl, Sebastiano Panichella and Harald Gall.

Abstract:

The mobile applications industry experiences an unprecedented high growth, developers working in this context face a fierce competition in acquiring and retaining users. They have to quickly implement new features and fix bugs, or risks losing their users to the competition. To achieve this goal they must closely monitor and analyze the user feedback they receive in form of reviews. However, successful apps can receive up to several thousands of reviews per day,  manually analysing each of them is a time consuming task.

urr

To help developers deal with the large amount of available data, we manually analyzed the text of 1566 user reviews and defined a high and low level taxonomy containing mobile specific categories (e.g. performance, resources, battery, memory, etc.) highly relevant for developers during the planning of maintenance and evolution activities. Then we built the User Request Referencer (URR) prototype, using Machine Learning and Information Retrieval techniques, to automatically classify reviews according to our taxonomy and recommend for a particular review what are the source code artifacts that need to be modified to handle the issue described in the user review. We evaluated our approach through an empirical study involving the reviews and code of 39 mobile applications. Our results show a high precision and recall of URR in organising reviews according to the defined taxonomy. Furthermore, we discovered during the evaluation that using information about the specific structure of mobile software projects (e.g. how to find source code implementing the UI) improves the source code localization results”.

ARdoc: App Reviews Development Oriented Classifier @ FSE 2016

We are happy to announce that the paper “ARdoc: App Reviews Development Oriented Classifier” got accepted at the FSE 2016 Demonstrations Track! The authors of the paper are: Sebastiano Panichella, Andrea Di Sorbo, Emitza Guzman, Corrado Aaron Visaggio, Gerardo Canfora and Harald Gall.

The paper presents ARdoc (App Reviews Development Oriented Classifier) a Java tool that automatically recognizes natural language fragments in user reviews that are relevant for developers to evolve their applications. Specifically, natural language fragments are extracted according to a taxonomy of app reviews categories that are relevant to software maintenance and evolution. The categories were defined in our previous paper entitled “How Can I Improve My App? Classifying User Reviews for Software Maintenance and Evolution” ) and are: (i) Information Giving, (ii) Information Seeking, (iii) Feature Request and (iv) Problem Discovery. ARdoc implements an approach that merges three techniques: (1) Natural Language Processing, (2) Text Analysis and (3) Sentiment Analysis
(SA) to automatically classify useful feedback contained in app reviews important for performing software maintenance and evolution tasks.

Our quantitative and qualitative analysis (involving mobile professional developers) demonstrate that ARdoc correctly classifies feedback useful for maintenance perspectives in user reviews with high precision (ranging between 84% and 89%), recall (ranging between 84% and 89%), and an F-Measure (ranging between 84% and 89%). While evaluating our tool we also found that ARdoc substantially helps to extract important maintenance tasks for real world applications.

This video provides a short demonstration of ARdoc:

ARdoc is available for download at http://www.ifi.uzh.ch/en/seal/people/panichella/tools/ARdoc.html

What Would Users Change in My App? Summarizing App Reviews for Recommending Software Changes @ FSE 2016

We’re happy to announce that the paper

“What Would Users Change in My App? Summarizing App Reviews for
Recommending Software Changes” has been accepted into FSE 2016 as a full paper. The authors of the paper are:  Andrea Di Sorbo, Sebastiano Panichella,
Carol Alexandru, Junji Shimagaki, Corrado Visaggio, Gerardo Canfora and Harald
Gall.

Abstract:
Mobile app developers constantly monitor feedback in user reviews with the goal of improving their mobile apps and better meeting user expectations. Thus, automated approaches have been proposed in literature with the aim of reducing the effort required for analyzing feedback contained in user reviews via automatic classification (or prioritization) according to specific topics (e.g., bugs, features etc.).

ApproachOverview

In this paper, we introduce SURF (Summarizer of User Reviews Feedback), a novel approach to condense the enormous amount of information that developers of popular apps have to manage due to user feedback received on a daily basis. SURF relies on a conceptual model for capturing user needs useful for developers performing maintenance and evolution tasks. Then it uses sophisticated summarisation techniques for summarizing thousands of reviews and generating an interactive, structured and condensed agenda of recommended software changes. We performed an end-to-end evaluation of SURF on user reviews of 17 mobile apps (5 of them developed by Sony Mobile), involving 23 developers and researchers in total. Results demonstrate high accuracy of SURF in summarizing reviews and the usefulness of the recommended changes. In evaluating our approach we found that SURF helps developers in better understanding user needs, substantially reducing the time required by developers compared to manually analyzing user (change) requests and planning future software changes.

Three Open Positions for Researchers / PhD Students in Software Development for Cloud and Mobile Apps

The software evolution and architecture lab (s.e.a.l.) at the University of Zurich, Switzerland (http://www.ifi.uzh.ch/seal.html) is seeking applications for three PhD students in the areas of software development for cloud and mobile applications. All positions are fully funded, available immediately, and open until filled.

One student will work with Dr. Philipp Leitner and Prof. Harald Gall on the SNF-funded project “MINCA – Models to Increase the Cost Awareness of Cloud Developers”. The student shall be interested in the intersection of software engineering and cloud computing (distributed systems) research, and be able and willing to pursue empirical research (e.g., repository mining, interview or survey research, concept prototyping, and statistical modelling and analysis). Some more information on this line of research can be found on Philipp Leitner’s web page (http://wp.ifi.uzh.ch/leitner/).

Two students will work with Dr. Sebastiano Panichella and Prof. Harald Gall on the SNF-funded project “SURF-MobileAppsData”. This project focuses on mining mobile apps data available in app stores to support software engineers in better maintenance and evolution for these apps. In particular, the goal of mining data of mobile apps is to build an analysis framework and a feedback-driven environment to help developers to build better mobile applications. Some more information on this line of research can be found on Sebastiano Panichella’s web page (http://www.ifi.uzh.ch/seal/people/panichella.html).

Our group consists of 2 professors, 3 post-docs, and 8-10 PhD students, all working on how to improve software developer productivity and software quality. We have a track record of substantial impact at international venues and are well funded, both on the national and European level. We cooperate with researchers around the world, including companies such as Microsoft, Google, IBM, ABB, or SAP.

The Department of Informatics is the competence center for Informatics at the University of Zurich. Ten tenured professors, four assistant professors, and approximately 100 PhD students and postdoctoral researchers instruct and conduct research at the department. Zurich is a leading global city and among the world’s largest financial centers. The city is home to a large number of financial institutions and IT companies. Most of Switzerland’s research and development centers are concentrated in Zurich and the low tax rates attract overseas companies to set up their headquarters there. Quality of life is very high in Zurich.

English is the working and teaching language all over computer science. Germans generally have reasonable command of English; and in day-to-day life, you can easily get along with English as your only language.

Mandatory conditions of employment are:

– Master’s degree (MSc) in Computer Science and/or Software Engineering

– Fluency in English

The position requires relocating to Zurich.

We offer an internationally competitive salary in accordance with University of Zurich regulations. The university aims to increase the number of women in this field. Therefore, women are especially encouraged to apply for this position.

Starting date: The positions are available immediately. Applications are accepted until the positions are filled.

Applications: Please email a statement of interest, detailed CV, a writing sample (e.g., a published or submitted paper, or your thesis), and at least one letter of reference from a faculty member (either from your home institution or a past collaborator), as one PDF document to seal-jobs@ifi.uzh.ch. Please indicate which position you are applying to by using the tag [CLOUD-Student] or [MOBILE-Student] as part of your subject line.

More information: Please contact Sebastiano Panichella (panichella@ifi.uzh.ch) or Philipp Leitner (leitner@ifi.uzh.ch) for questions.

DECA: Development Emails Content Analyzer

We are happy to announce that the paper “DECA: Development Emails Content Analyzer” got accepted at the ICSE 2016 Demonstrations Track! The paper was written in collaboration with the University of Sannio. The authors of the paper are: Andrea Di Sorbo, Sebastiano Panichella, Corrado A. Visaggio, Massimiliano Di Penta, Gerardo Canfora and Harald C. Gall.

The paper presents DECA (Development Emails Content Analyzer)  a Java tool to automatically recognize natural language fragments in emails that are relevant in the software engineering domain. Actually, DECA implements an approach which allows to recognize most informative sentences for development purposes by exploiting a set of recurrent natural language patterns that developers often use in such communication channel. DECA purpose is to capture the intent of each informative sentence (requesting a new feature, description of a problem, or proposing a solution) and consequently to allow developers to better manage the information contained in emails.

This video provides a short demonstration of DECA:

DECA is available for download at http://www.ifi.uzh.ch/seal/people/panichella/tools/DECA.html.

Our paper “Development Emails Content Analyzer: Intention Mining in Developer Discussions” got accepted at ASE’15!

Written development communication (e.g. mailing lists, issue trackers) constitutes a precious source of information to build recommenders for software engineers, for example aimed at suggesting experts, or at redocumenting existing source code. In this paper we propose a novel, semi-supervised approach named DECA (Development Emails Content Analyzer) that uses Natural Language Parsing to classify the content of development emails according to their purpose (e.g. feature request, opinion asking, problem discovery, solution proposal, information giving etc), identifying email elements that can be used for specific tasks.

Example_of_Feature_Request

A study based on data from Qt and Ubuntu, highlights a high precision (90%) and recall (70%) of DECA in classifying email content, outperforming traditional machine learning strategies. Moreover, we successfully used DECA for re-documenting source code of Eclipse and Lucene, improving the recall, while keeping high precision, of a previous approach based on ad-hoc heuristics.

Survey on “Testing Developers Practices”

Our research group at the University of Zurich together with the Delft University of Technology research group, is performing a study aimed at observing (and/or measuring) how developers perform bug fixing tasks during test activity. Specifically, tools such as Evosuite (http://www.evosuite.org/) can automatically generate test cases to help developers test Java classes and find possible bugs.

software-testing-img

Thus, OUR GOAL is to better understand the bug fixing practice of developers during their testing activities when relying on generated test cases (by Evosuite).

We will ask you to perform a set of very SIMPLE bug fixing tasks (NO MORE THAN 1 Hour) and answer a Survey after the bug fixing experience. The task can be performed remotely (in multiple rounds) in you home/office (where you prefer).

We will keep your survey responses anonymous. We will NOT attribute answers to any particular participant.

We would greatly appreciate your participation! Thank you!

If you are interested to partecipate to this study please feel free to contact

Dr. Sebastiano Panichella and Dr. Annibale Panichella rely on the

following e-mail addresses:

panichella@ifi.uzh.ch or
a.panichella@tudelft.nl
Thank you very much for your effort.

Best regards,
Sebastiano and Annibale

Paper accepted at ICSME ’15

We are excited to announce that our paper “How Can I Improve My App? Classifying User Reviews for Software Maintenance and Evolution” has been accepted at the 31st International Conference on Software Maintenance and Evolution (ICSME 2015) in Bremen, Germany.

App Stores, such as Google Play or the Apple Store, allow users to give feedback on apps by posting review comments and giving star ratings. These platforms constitute a useful electronic mean in which application developers and users can productively exchange information about apps.
Previous research showed that users feedback contains usage scenarios, bug reports and feature requests, that can help app developers accomplish software maintenance and evolution tasks. However, in the case of the most popular apps, the large amount of received feedback, its unstructured nature and varying quality can make the identification of useful user feedback a very challenging task.
In this paper we present a taxonomy to classify app reviews into categories relevant to software maintenance and evolution, as well as an approach that merges three techniques: (1) Natural Language Processing, (2) Text Analysis and (3) Sentiment Analysis to automatically classify app reviews into the proposed categories. We show that the combined use of these techniques allows to achieve better results (a precision of 75% and a recall of 74%) than results obtained using each technique individually (precision of 70% and a recall of 67%).

Approach for Classifying User Reviews for Software Maintenance and Evolution