776 research outputs found

    Multisite adaptive computation offloading for mobile cloud applications

    Get PDF
    The sheer amount of mobile devices and their fast adaptability have contributed to the proliferation of modern advanced mobile applications. These applications have characteristics such as latency-critical and demand high availability. Also, these kinds of applications often require intensive computation resources and excessive energy consumption for processing, a mobile device has limited computation and energy capacity because of the physical size constraints. The heterogeneous mobile cloud environment consists of different computing resources such as remote cloud servers in faraway data centres, cloudlets whose goal is to bring the cloud closer to the users, and nearby mobile devices that can be utilised to offload mobile tasks. Heterogeneity in mobile devices and the different sites include software, hardware, and technology variations. Resource-constrained mobile devices can leverage the shared resource environment to offload their intensive tasks to conserve battery life and improve the overall application performance. However, with such a loosely coupled and mobile device dominating network, new challenges and problems such as how to seamlessly leverage mobile devices with all the offloading sites, how to simplify deploying runtime environment for serving offloading requests from mobile devices, how to identify which parts of the mobile application to offload and how to decide whether to offload them and how to select the most optimal candidate offloading site among others. To overcome the aforementioned challenges, this research work contributes the design and implementation of MAMoC, a loosely coupled end-to-end mobile computation offloading framework. Mobile applications can be adapted to the client library of the framework while the server components are deployed to the offloading sites for serving offloading requests. The evaluation of the offloading decision engine demonstrates the viability of the proposed solution for managing seamless and transparent offloading in distributed and dynamic mobile cloud environments. All the implemented components of this work are publicly available at the following URL: https://github.com/mamoc-repo

    Google Play apps ERM: (energy rating model) multi-criteria evaluation model to generate tentative energy ratings for Google Play store apps

    Get PDF
    A common issue that is shared among Android smartphones users was and still related to saving their batteries power and to avoid the need of using any recharging resources. The tremendous increase in smartphone usage is clearly accompanied by an increase in the need for more energy. This preoperational relationship between modern technology and energy generates energy-greedy apps, and therefore power-hungry end users. With many apps falling under the same category in an app store, these apps usually share similar functionality. Because developers follow different design and development schools, each app has its own energy-consumption habits. Since apps share similar features, an end-user with limited access to recharging resources would prefer an energy-friendly app rather than a popular energy-greedy app. However, app stores give no indication about the energy behaviour of the apps they offer, which causes users to randomly choose apps without understanding their energy-consumption behaviour. Furthermore, with regard to the research questions about the fact that power saving application consumes a lot of electricity, past studies clearly indicate that there is a lot of battery depletion due to several factors. This problem has become a major concern for smartphone users and manufacturers. The main contribution of our research is to design a tool that can act as an effective decision support factor for end users to have an initial indication of the energy-consumption behaviour of an application before installing it. The core idea of the “before-installation” philosophy is simplified by the contradicting concept of installing the app and then having it monitored and optimized. Since processing requires power, avoiding the consumption of some power in order to conserve a larger amount of power should be our priority. So instead, we propose a preventive strategy that requires no processing on any layer of the smartphone. To address this issue, we propose a star-rating evaluation model (SREM), an approach that generates a tentative energy rating label for each app. To that end, SREM adapts current energy-aware refactoring tools to demonstrate the level of energy consumption of an app and presents it in a star-rating schema similar to the Ecolabels used on electrical home appliances. The SREM will also inspire developers and app providers to come up with multiple energy-greedy versions of the same app in order to suit the needs of different categories of users and rate their own apps. We proposed adding SREM to Google Play store in order to generate the energy-efficiency label for each app which will act as a guide for both end users and developers without running any processes on the end-users smartphone. Our research also reviews relevant existing literature specifically those covering various energy-saving techniques and tools proposed by various authors for Android smartphones. A secondary analysis has been done by evaluating the past research papers and surveys that has been done to assess the perception of the users regarding the phone power from their battery. In addition, the research highlights an issue that the notifications regarding the power saving shown on the screen seems to exploit a lot of battery. Therefore, this study has been done to reflect the ways that could help the users to save the phone battery without using any power from the same battery in an efficient manner. The research offers an insight into new ways that could be used to more effectively conserve smartphone energy, proposing a framework that involves end users on the process.Um problema comum entre utilizadores de smartphones Android tem sido a necessidade de economizar a energia das baterias, de modo a evitar a utilização de recursos de recarga. O aumento significativo no uso de smartphones tem sido acompanhado por um aumento, também significativo, na necessidade de mais energia. Esta relação operacional entre tecnologia moderna e energia gera aplicações muito exigentes no seu consumo de energia e, portanto, perfis de utilizadores que requerem níveis de energia crescentes. Com muitos das aplicações que se enquadram numa mesma categoria da loja de aplicações (Google Store), essas aplicações geralmente também partilham funcionalidades semelhantes. Como os criadores destas aplicações seguem abordagens diferentes de diversas escolas de design e desenvolvimento, cada aplicação possui as suas próprias caraterísticas de consumo de energia. Como as aplicações partilham recursos semelhantes, um utilizador final com acesso limitado a recursos de recarga prefere uma aplicação que consome menos energia do que uma aplicação mais exigente em termos de consumo energético, ainda que seja popular. No entanto, as lojas de aplicações não fornecem uma indicação sobre o comportamento energético das aplicações oferecidas, o que faz com que os utilizadores escolham aleatoriamente as suas aplicações sem entenderem o correspondente comportamento de consumo de energia. Adicionalmente, no que diz respeito à questão de investigação, a solução de uma aplicação de economia de energia consume muita eletricidade, o que a torna limitada; estudos anteriores indicam claramente que há muita perda de bateria devido a vários fatores, não constituindo solução para muitos utilizadores e para os fabricantes de smartphones. A principal contribuição de nossa pesquisa é projetar uma ferramenta que possa atuar como um fator de suporte à decisão eficaz para que os utilizadores finais tenham uma indicação inicial do comportamento de consumo de energia de uma aplicação, antes de a instalar. A ideia central da filosofia proposta é a de atuar "antes da instalação", evitando assim a situação em se instala uma aplicação para perceber à posteriori o seu impacto no consumo energético e depois ter que o monitorizar e otimizar (talvez ainda recorrendo a uma aplicação de monitorização do consumo da bateria, o que agrava ainda mais o consumo energético). Assim, como o processamento requer energia, é nossa prioridade evitar o consumo de alguma energia para conservar uma quantidade maior de energia. Portanto, é proposta uma estratégia preventiva que não requer processamento em nenhuma camada do smartphone. Para resolver este problema, é proposto um modelo de avaliação por classificação baseado em níveis e identificado por estrelas (SREM). Esta abordagem gera uma etiqueta de classificação energética provisória para cada aplicação. Para isso, o SREM adapta as atuais ferramentas de refatoração com reconhecimento de energia para demonstrar o nível de consumo de energia de uma aplicação, apresentando o resultado num esquema de classificação por estrelas semelhante ao dos rótulos ecológicos usados em eletrodomésticos. O SREM também se propõe influenciar quem desenvolve e produz as aplicações, a criarem diferentes versões destas, com diferentes perfis de consumo energético, de modo a atender às necessidades de diferentes categorias de utilizadores e assim classificar as suas próprias aplicações. Para avaliar a eficiência do modelo como um complemento às aplicações da loja Google Play, que atuam como uma rotulagem para orientação dos utilizadores finais. A investigação também analisa a literatura existente relevante, especificamente a que abrange as várias técnicas e ferramentas de economia de energia, propostas para smartphones Android. Uma análise secundária foi ainda realizada, focando nos trabalhos de pesquisa que avaliam a perceção dos utilizadores em relação à energia do dispositivo, a partir da bateria. Em complemento, a pesquisa destaca um problema de que as notificações sobre a economia de energia mostradas na tela parecem explorar muita bateria. Este estudo permitiu refletir sobre as formas que podem auxiliar os utilizadores a economizar a bateria do telefone sem usar energia da mesma bateria e, mesmo assim, o poderem fazer de maneira eficiente. A pesquisa oferece uma visão global das alternativas que podem ser usadas para conservar com mais eficiência a energia do smartphone, propondo um modelo que envolve os utilizadores finais no processo.Un problème fréquent rencontré par les utilisateurs de smartphones Android a été, tout en l’étant toujours, d’économiser leur batterie et d’éviter la nécessité d’utiliser des ressources de recharge. La croissance considérable de l’utilisation des smartphones s’accompagne clairement d’une augmentation des besoins en énergie. Cette relation préopérationnelle entre la technologie moderne et l’énergie génère des applications gourmandes en énergie, et donc des utilisateurs finaux qui le sont tout autant. De nombreuses applications relevant de la même catégorie dans une boutique partagent généralement des fonctionnalités similaires. Étant donné que les développeurs adoptent différentes approches de conception et de développement, chaque application a ses propres caractéristiques de consommation d’énergie. Comme les applications partagent des fonctionnalités similaires, un utilisateur final disposant d’un accès limité aux ressources de recharge préférerait une application écoénergétique plutôt qu’une autre gourmande en énergie. Cependant, les boutiques d’applications ne donnent aucune indication sur le comportement énergétique des applications qu’elles proposent, ce qui incite les utilisateurs à choisir des applications au hasard sans comprendre leurs caractéristiques en ce domaine. En outre, en ce qui concerne les questions de recherche sur le fait que les applications d’économie d’énergie consomment beaucoup d’électricité, des études antérieures indiquent clairement que la décharge d’une batterie est due à plusieurs facteurs. Ce problème est devenu une préoccupation majeure pour les utilisateurs et les fabricants de smartphones. La principale contribution de notre étude est de concevoir un outil qui peut agir comme un facteur d’aide efficace à la décision pour que les utilisateurs finaux aient une indication initiale du comportement de consommation d’énergie d’une application avant de l’installer. L’idée de base de la philosophie « avant l’installation » est simplifiée par le concept contradictoire d’installer l’application pour ensuite la contrôler et l’optimiser. Puisque les opérations de traitement exigent de l’énergie, éviter la consommation d’une partie d’entre elles pour l’économiser devrait être notre priorité. Nous proposons donc une stratégie préventive qui ne nécessite aucun traitement sur une couche quelconque du smartphone. Pour résoudre ce problème, nous proposons un modèle d’évaluation au moyen d’étoiles (star-rating evaluation model ou SREM), une approche qui génère une note énergétique indicative pour chaque application. À cette fin, le SREM adapte les outils actuels de refactoring sensibles à l’énergie pour démontrer le niveau de consommation d’énergie d’une application et la présente dans un schéma de classement par étoiles similaire aux labels écologiques utilisés sur les appareils électroménagers. Le SREM incitera également les développeurs et les fournisseurs d’applications à mettre au point plusieurs versions avides d’énergie d’une même application afin de répondre aux besoins des différentes catégories d’utilisateurs et d’évaluer leurs propres applications. Nous avons proposé d’ajouter le SREM au Google Play Store afin de générer le label d’efficacité énergétique pour chaque application. Celui-ci servira de guide à la fois pour les utilisateurs finaux et les développeurs sans exécuter de processus sur le smartphone des utilisateurs finaux. Notre recherche passe également en revue la littérature existante pertinente, en particulier celle qui couvre divers outils et techniques d’économie d’énergie proposés par divers auteurs pour les smartphones Android. Une analyse secondaire a été effectuée en évaluant les documents de recherche et les enquêtes antérieurs qui ont été réalisés pour évaluer la perception des utilisateurs concernant l’alimentation téléphonique depuis leur batterie. En outre, l’étude met en évidence un problème selon lequel les notifications concernant les économies d’énergie affichées à l’écran semblent elles-mêmes soumettre les batteries à une forte utilisation. Par conséquent, cette étude a été entreprise pour refléter les façons qui pourraient aider les utilisateurs à économiser efficacement la batterie de leur téléphone sans pour autant la décharger. L’étude offre un bon aperçu des nouvelles façons d’économiser plus efficacement l’énergie des smartphones, en proposant un cadre qui implique les utilisateurs finaux dans le processus

    EARMO: An Energy-Aware Refactoring Approach for Mobile Apps

    Get PDF
    The energy consumption of mobile apps is a trending topic and researchers are actively investigating the role of coding practices on energy consumption. Recent studies suggest that design choices can conflict with energy consumption. Therefore, it is important to take into account energy consumption when evolving the design of a mobile app. In this paper, we analyze the impact of eight type of anti-patterns on a testbed of 20 android apps extracted from F-Droid. We propose EARMO, a novel anti-pattern correction approach that accounts for energy consumption when refactoring mobile anti-patterns. We evaluate EARMO using three multiobjective search-based algorithms. The obtained results show that EARMO can generate refactoring recommendations in less than a minute, and remove a median of 84% of anti-patterns. Moreover, EARMO extended the battery life of a mobile phone by up to 29 minutes when running in isolation a refactored multimedia app with default settings (no WiFi, no location services, and minimum screen brightness). Finally, we conducted a qualitative study with developers of our studied apps, to assess the refactoring recommendations made by EARMO. Developers found 68% of refactorings suggested by EARMO to be very relevant.This work has been supported by the Natural Sciences and Engineering Research Council of Canada (NSERC) and Consejo Nacional de Ciencia y TecnologĂ­a, MĂ©xico (CONACyT)

    Achieving Quality through Software Maintenance and Evolution: on the role of Agile Methodologies and Open Source Software

    Get PDF
    Agile methodologies, open source software development, and emerging new technologies are at the base of disruptive changes in software engineering. Being effort estimation pivotal for effective project management in the agile context, in the first part of the thesis we contribute to improve effort estimation by devising a real-time story point classifier, designed with the collaboration of an industrial partner and by exploiting publicly available data on open source projects. We demonstrate that, after an initial training on at least 300 issue reports, the classifier estimates a new issue in less than 15 seconds with a mean magnitude of relative error between 0.16 and 0.61. In addition, issue type, summary, description, and related components prove to be project-dependent features pivotal for story point estimation. Since story points are the most popular effort estimation metric in the agile context, in the second study presented in the thesis we investigate the role of agile methodologies in software maintenance and evolution, and prove its undoubted influence on the refactoring research field over the last 15 years. In the later part of the thesis, we focus on recent technologies to understand their impact on software engineering. We start by proposing a specialized blockchain-oriented software engineering, on the basis of the peculiar challenges the blockchain sector must confront with and statistical data retrieved from a corpus of open source blockchain-oriented software repositories, identified relying upon the 2016 Moody’s Blockchain Report. We advocate the need for new professional roles, enhanced security and reliability, novel modeling languages, and specialized metrics, along with new research directions focusing on collaboration among large teams, testing, and specialized tools for the creation of smart contracts. Along with the blockchain, in the later part of this work we also study the growing mobile sector. More specifically, we focus on the relationships between software defects and the use of the underlying system API, proving that our findings are aligned with those in the literature, namely, that the applications which are more connected to API classes are also more defect-prone. Finally, in the last work presented in the dissertation, we conducted a statistical analysis of 20 open source object-oriented systems, 10 written in the highly popular language Java and 10 in the rising language Python. We leveraged two statistical distribution functions–the log-normal and the double Pareto distributions–to provide good fits, both in Java and Python, for three metrics, namely, the NOLM, NOM, and NOS metrics. The study, among other findings, revealed that the variability of the number of methods used in Python classes is lower than in Java classes, and that Java classes, on average, feature fewer lines of code than Python classes

    Software development process mining: discovery, conformance checking and enhancement

    Get PDF
    Context. Modern software projects require the proper allocation of human, technical and financial resources. Very often, project managers make decisions supported only by their personal experience, intuition or simply by mirroring activities performed by others in similar contexts. Most attempts to avoid such practices use models based on lines of code, cyclomatic complexity or effort estimators, thus commonly supported by software repositories which are known to contain several flaws. Objective. Demonstrate the usefulness of process data and mining methods to enhance the software development practices, by assessing efficiency and unveil unknown process insights, thus contributing to the creation of novel models within the software development analytics realm. Method. We mined the development process fragments of multiple developers in three different scenarios by collecting Integrated Development Environment (IDE) events during their development sessions. Furthermore, we used process and text mining to discovery developers’ workflows and their fingerprints, respectively. Results. We discovered and modeled with good quality developers’ processes during programming sessions based on events extracted from their IDEs. We unveiled insights from coding practices in distinct refactoring tasks, built accurate software complexity forecast models based only on process metrics and setup a method for characterizing coherently developers’ behaviors. The latter may ultimately lead to the creation of a catalog of software development process smells. Conclusions. Our approach is agnostic to programming languages, geographic location or development practices, making it suitable for challenging contexts such as in modern global software development projects using either traditional IDEs or sophisticated low/no code platforms.Contexto. Projetos de software modernos requerem a correta alocação de recursos humanos, técnicos e financeiros. Frequentemente, os gestores de projeto tomam decisões suportadas apenas na sua própria experiência, intuição ou simplesmente espelhando atividades executadas por terceiros em contextos similares. As tentativas para evitar tais práticas baseiam-se em modelos que usam linhas de código, a complexidade ciclomática ou em estimativas de esforço, sendo estes tradicionalmente suportados por repositórios de software conhecidos por conterem várias limitações. Objetivo. Demonstrar a utilidade dos dados de processo e respetivos métodos de análise na melhoria das práticas de desenvolvimento de software, colocando o foco na análise da eficiência e revelando aspetos dos processos até então desconhecidos, contribuindo para a criação de novos modelos no contexto de análises avançadas para o desenvolvimento de software. Método. Explorámos os fragmentos de processo de vários programadores em três cenários diferentes, recolhendo eventos durante as suas sessões de desenvolvimento no IDE. Adicionalmente, usámos métodos de descoberta e análise de processos e texto no sentido de modelar o fluxo de trabalho dos programadores e as suas características individuais, respetivamente. Resultados. Descobrimos e modelámos com boa qualidade os processos dos programadores durante as suas sessões de trabalho, usando eventos provenientes dos seus IDEs. Revelámos factos desconhecidos sobre práticas de refabricação, construímos modelos de previsão da complexidade ciclomática usando apenas métricas de processo e criámos um método para caracterizar coerentemente os comportamentos dos programadores. Este último, pode levar à criação de um catálogo de boas/más práticas no processo de desenvolvimento de software. Conclusões. A nossa abordagem é agnóstica em termos de linguagens de programação, localização geográfica ou prática de desenvolvimento, tornando-a aplicável em contextos complexos tal como em projetos modernos de desenvolvimento global que utilizam tanto os IDEs tradicionais como as atuais e sofisticadas plataformas "low/no code"

    Seamless Task Offloading on Multi-Clouds and Edge Resources: an Experiment

    Get PDF
    Cloud computing has been growing at an increasing rate over the last few years. Commercial and scientific applications have come to rely on it as a development tool due to its exceptional characteristics in processing power and storage. The trend has been augmented with the emergence of the Internet of Things and smart processing devices at the edge. Contrary to the line of thought commonly adopted, we present in this work an alternative platform that considers edge devices as possible processing nodes, and provide a two-level task scheduling deployment that can handle not only binary modules, but also code-level fragmentations. We also go through a simple implementation of the platform, using production-ready solutions, while validating it on public and private clouds, and physically-separated edge devices
    • …
    corecore