7 research outputs found

    Star-rating evaluation model for rating the energy-efficiency level of android google play apps

    Get PDF
    The tremendous increase in smartphone usage is 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 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 do not indicate the energy behavior of the apps they offer, which causes users to randomly choose apps without understanding their energy-consumption behavior. A review of the relevant literature was provided covering various energy-saving techniques. The results gave an initial impression about the popularity of the usage of two power-saving modes where the average usage of these modes did not exceed 31% among the total 443 Android users. To address this issue, we propose a star-rating evaluation model (SREM), an approach that generates a tentative energy rating label for each app. The model was tested on 7 open-source apps to act as a primary evaluation sample. 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. As per our results, SREM helped in saving 35% of smartphone energy

    30 Years of Software Refactoring Research: A Systematic Literature Review

    Full text link
    Peer Reviewedhttps://deepblue.lib.umich.edu/bitstream/2027.42/155872/4/30YRefactoring.pd

    30 Years of Software Refactoring Research:A Systematic Literature Review

    Full text link
    Due to the growing complexity of software systems, there has been a dramatic increase and industry demand for tools and techniques on software refactoring in the last ten years, defined traditionally as a set of program transformations intended to improve the system design while preserving the behavior. Refactoring studies are expanded beyond code-level restructuring to be applied at different levels (architecture, model, requirements, etc.), adopted in many domains beyond the object-oriented paradigm (cloud computing, mobile, web, etc.), used in industrial settings and considered objectives beyond improving the design to include other non-functional requirements (e.g., improve performance, security, etc.). Thus, challenges to be addressed by refactoring work are, nowadays, beyond code transformation to include, but not limited to, scheduling the opportune time to carry refactoring, recommendations of specific refactoring activities, detection of refactoring opportunities, and testing the correctness of applied refactorings. Therefore, the refactoring research efforts are fragmented over several research communities, various domains, and objectives. To structure the field and existing research results, this paper provides a systematic literature review and analyzes the results of 3183 research papers on refactoring covering the last three decades to offer the most scalable and comprehensive literature review of existing refactoring research studies. Based on this survey, we created a taxonomy to classify the existing research, identified research trends, and highlighted gaps in the literature and avenues for further research.Comment: 23 page

    A selective approach for energy-aware video content adaptation decision-taking engine in android based smartphone

    Get PDF
    Rapid advancement of technology and their increasing affordability have transformed mobile devices from a means of communication to tools for socialization, entertainment, work and learning. However, advancement of battery technology and capacity is slow compared to energy need. Viewing content with high quality of experience will consume high power. In limited available energy, normal content adaptation system will decrease the content quality, hence reducing quality of experience. However, there is a need for optimizing content quality of experience (QoE) in a limited available energy. With modification and improvement, content adaptation may solve this issue. The key objective of this research is to propose a framework for energy-aware video content adaptation system to enable video delivery over the Internet. To optimise the QoE while viewing streaming video on a limited available smartphone energy, an algorithm for energy-aware video content adaptation decision-taking engine named EnVADE is proposed. The EnVADE algorithm uses selective mechanism. Selective mechanism means the video segmented into scenes and adaptation process is done based on the selected scenes. Thus, QoE can be improved. To evaluate EnVADE algorithm in term of energy efficiency, an experimental evaluation has been done. Subjective evaluation by selected respondents are also has been made using Absolute Category Rating method as recommended by ITU to evaluate EnVADE algorithm in term of QoE. In both evaluation, comparison with other methods has been made. The results show that the proposed solution is able to increase the viewing time of about 14% compared to MPEG-DASH which is an official international standard and widely used streaming method. In term of QoE subjective test, EnVADE algorithm score surpasses the score of other video streaming method. Therefore, EnVADE framework and algorithm has proven its capability as an alternative technique to stream video content with higher QoE and lower energy consumption

    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

    Explainable, Security-Aware and Dependency-Aware Framework for Intelligent Software Refactoring

    Full text link
    As software systems continue to grow in size and complexity, their maintenance continues to become more challenging and costly. Even for the most technologically sophisticated and competent organizations, building and maintaining high-performing software applications with high-quality-code is an extremely challenging and expensive endeavor. Software Refactoring is widely recognized as the key component for maintaining high-quality software by restructuring existing code and reducing technical debt. However, refactoring is difficult to achieve and often neglected due to several limitations in the existing refactoring techniques that reduce their effectiveness. These limitation include, but not limited to, detecting refactoring opportunities, recommending specific refactoring activities, and explaining the recommended changes. Existing techniques are mainly focused on the use of quality metrics such as coupling, cohesion, and the Quality Metrics for Object Oriented Design (QMOOD). However, there are many other factors identified in this work to assist and facilitate different maintenance activities for developers: 1. To structure the refactoring field and existing research results, this dissertation provides the most scalable and comprehensive systematic literature review analyzing the results of 3183 research papers on refactoring covering the last three decades. Based on this survey, we created a taxonomy to classify the existing research, identified research trends and highlighted gaps in the literature for further research. 2. To draw attention to what should be the current refactoring research focus from the developers’ perspective, we carried out the first large scale refactoring study on the most popular online Q&A forum for developers, Stack Overflow. We collected and analyzed posts to identify what developers ask about refactoring, the challenges that practitioners face when refactoring software systems, and what should be the current refactoring research focus from the developers’ perspective. 3. To improve the detection of refactoring opportunities in terms of quality and security in the context of mobile apps, we designed a framework that recommends the files to be refactored based on user reviews. We also considered the detection of refactoring opportunities in the context of web services. We proposed a machine learning-based approach that helps service providers and subscribers predict the quality of service with the least costs. Furthermore, to help developers make an accurate assessment of the quality of their software systems and decide if the code should be refactored, we propose a clustering-based approach to automatically identify the preferred benchmark to use for the quality assessment of a project. 4. Regarding the refactoring generation process, we proposed different techniques to enhance the change operators and seeding mechanism by using the history of applied refactorings and incorporating refactoring dependencies in order to improve the quality of the refactoring solutions. We also introduced the security aspect when generating refactoring recommendations, by investigating the possible impact of improving different quality attributes on a set of security metrics and finding the best trade-off between them. In another approach, we recommend refactorings to prioritize fixing quality issues in security-critical files, improve quality attributes and remove code smells. All the above contributions were validated at the large scale on thousands of open source and industry projects in collaboration with industry partners and the open source community. The contributions of this dissertation are integrated in a cloud-based refactoring framework which is currently used by practitioners.Ph.D.College of Engineering & Computer ScienceUniversity of Michigan-Dearbornhttp://deepblue.lib.umich.edu/bitstream/2027.42/171082/1/Chaima Abid Final Dissertation.pdfDescription of Chaima Abid Final Dissertation.pdf : Dissertatio

    A Source-level Energy Optimization Framework for Mobile Applications

    No full text
    Energy efficiency can have a significant influence on user experience of mobile devices such as smartphones and tablets. Although energy is consumed by hardware, software optimization plays an important role in saving energy, and thus software developers have to participate in the optimization process. The source code is the interface between the developer and hardware resources. In this paper, we propose an energy-optimization framework guided by a source code energy model that allows developers to be aware of energy usage induced by the code and to apply very targeted source-level refactoring strategies. The framework also lays a foundation for the code optimization by automatic tools. To the best of our knowledge, our work is the first that achieves this for a high-level language such as Java. In a case study, the experimental evaluation shows that our approach is able to save from 6.4% to 50.2% of the CPU energy consumption in various application scenarios.Comment: 10 pages. arXiv admin note: substantial text overlap with arXiv:1605.0523
    corecore