In the context of software evolution, researchers conceived and experimented a wide spectrum of approaches to extract pertinent information from software repositories with the aim of supporting software developers during maintenance tasks. In particular, software evolution research has focused on the analysis of structured and semi-structured artifacts (e.g. source code and versioning data) of traditional software systems like the Firefox web browser or software projects coming from Open Source communities such as the Apache Software Foundation (ASF). However, very few research studies were performed for supporting mobile app development processes. Emerging domains, such as mobile devices, are growing rapidly and the mobile app development industry has expanded and now it is growing year after year. Indeed, market studies suggest that the global mobile app economy is expected to be worth $143 billion by the end of 2016. Recent studies indicate that apps receiving high users’ ratings use APIs that are less fault- and change-prone than the APIs used by low rated apps. Thus, in the context of mobile software development, developers must pay attention to building robust and reliable apps. In fact, users easily get frustrated by repeated failures, crashes, and other bugs; hence, they abandon some apps in favor of their competitors.

Mobile apps are designed, implemented, tested and distributed in a different manner than traditional software with the aim at efficiently answering the mobile market requests. Beside that, also the distribution mechanism for mobile apps is very different to the distribution of traditional software products. Mobile apps are released through the app markets rely on app stores, such as Google Play and Apple’s App store. Developers of both large (Facebook, Youtube, Adobe etc.) and small companies (having a number of developers < 6) release their apps providing the same mechanism for the users to download and install them. Thus, the data stored in app stores represents an interesting source of information for software engineering researchers, since they “have never had available, a more rich, wide and varied source of information about software products”. The data that these mobile app markets contain can be used to generate new research and perform further empirical results with the aim to support developers during mobile app development.

Goals of this master project

In this master project we propose to investigate further methods, tools, and techniques able to mine the sheer amount and diversity of the potentially available data, combine them to provide to developers the appropriate feedback-environment they need to perform the development and maintenance tasks performed for the evolution of mobile applications. Therefore, the scientific challenge is to modelling the information presented to app developers to augment the knowledge at their disposal and to support mobile app evolution. More details about the project can be found in the attached PDF below.

Task description

The main tasks of this projects are:

  • Traceability:
    • Linking requirements from reviews to source code
    • Linking reviews to specific versions
    • Linking app store metadata (price, rating, etc.) to source code
    • Update and improve requirements using information contained in reviews (this task is is optional since it is very challenging)
  • Predict the right price of an application (optional, however, if interested you can do it instead of one of the traceability tasks)
  • Conceive a mechanism which uses review data to check the feeling of users about new releases (optional, however, if interested you can do it instead of one of the traceability tasks)
  • All the previous mechanisms should be able to work on both Google Play and Apple's App Store data.
  • Evaluation: the usefulness of the implemented tool will be evaluated by performing a study involving professional developers.

Detailed description