Titulo Estágio
Planting trees in the Android forest
Áreas de especialidade
Engenharia de Software
Local do Estágio
DEI-FCTUC
Enquadramento
Ever since the industrial revolution, society has built its intensive development pace on top of the widespread use of energy resources. The problem is that the growing energy demands have significant side-effects such as global warming, but even more importantly that it is simply not able to match such demands on the production side. This has raised awareness in multiple contexts, that recently include the community acknowledgement of the need for sustainable software development.
One of the most fascinating such contexts is the one of mobile software development, and particularly within Android, the mobile operating system with the largest adoption rate. Indeed, as smartphone/tablet users we often would like our batteries to last longer than they do, even if our device usage is more and more computationally demanding.
In this project we seek to understand how different compilation options within Android’s runtime environment (ART) affect energy consumption of Android programs, and the effect such options have on their resilience and runtime performance.
Besides performance/(runtime-)efficiency, which is perhaps the most widely studied non-functional software attribute, resiliency is key to the success of an application. Indeed, software users assume as granted that no matter what might cause a failure, the software will be able of recovering from it and simply *work*.
Objetivo
The main goals to achieve within this project are:
- to realize, within the state of the art, the realistic dimensions that can have a study comparing reliability/energy-efficiency/performance properties of Android programs within an optimizing compiler;
- to propose a study comparing such 3 dimensions using a representative set of Android programs;
- to devise and implement a framework for conducting such a study in an, as much as possible, automated way;
The framework will use/adapt robustness testing and software fault injection tools to evaluate the resilience of the programs obtained with different compiler optimization strategies.
- to analyze in detail the results of such study with the aim of providing new insights on how the 3 dimensions above influence each other.
Plano de Trabalhos - Semestre 1
- Trimester 1: Study the literature, the tools and the frameworks that are available for monitoring the energy consumption of Android programs as well as their runtime performance and reliability.
- Trimester 2: Design an effective comparative study. Write an intermediate report.
Plano de Trabalhos - Semestre 2
- Trimester 3: Implement a framework for the automated analysis and comparison of Android programs in terms of the three considered axis. The framework to develop should be general enough to consist of a re-usable tool that other developers may build their work upon.
- Trimester 4: Extensively benchmark the case studies that will have been defined and analyse their results. Thesis writing.
Condições
The eligible student will have at disposal all the necessary computational platforms, tools and devices, including the use of devices such as Hardkernel’s ODroid.
He/she will work within a research team that is working on related issues.
Orientador
João Paulo Fernandes e Henrique Madeira (jpf@dei.uc.pt,henrique@dei.uc.pt)
jpf@dei.uc.pt 📩