Software development methodology in a Green IT environment
Méthodologie de développement de logiciels dans un environnement informatiquement vert
Résumé
The number of mobile devices (smartphone, tablet, laptop, etc.) and Internet users are continually increasing. Due to the accessibility provided by cloud computing, Internet and Internet of Things (IoT), users use more and more software applications which cause an increasing effect on gas emission. Thus, ICT (Information and Communication Technologies) is responsible of around 2% worldwide greenhouse gas emissions which is equivalent of that emitted by the airline industry. According to recent reports, the Intergovernmental Panel on Climate Change (IPCC), CO2 emissions due to ICT are increasing widely. Nevertheless, ICT, in allowing to solve complex problems in other sectors, can greatly and easily participate to reduce significant portion of the remaining 98% of global CO2 emissions. The use of software implies hardware operations which are physically responsible of energy consumption. Consequently, software is indirectly involved in the energy consumption. Thus, we need to reduce software energy consumption while maintaining the same functionalities for the software in order to build sustainable and green software. Firstly, in this thesis work, we define the terms sustainable and green in the area of software development. To build a software product, we need to follow a software engineering process. Hence, we define and describe sustainable and green criteria to be respected after each step of this process in order to establish a sustainable and green software engineering process. Then, we focus on the software energy consumption estimation. Many research works tried to propose various tools to estimate the energy consumption due to software in order to reduce carbon footprint. Unfortunately, these studies, in the majority of cases, consider only the CPU and neglects all others components. Existing power consumption methodologies need to be improved by taking into account more components susceptible to consume energy during runtime of an application. Writing sustainable, power efficient and green software necessitates to understand the power consumption behavior of a computer program. One of the benefits is the fact that developers, by improving their source code implementations, will optimize software power consumption. Moreover, there is a lack of analyzing tool to dynamically monitor source code energy consumption of several components. Thus, we propose GMTEEC (Generic Methodology of a Tool to Estimate Energy Consumption) which is composed of four layers assisting developers to build a tool estimating the software power consumption. Hence, in our work, respecting the layers of GMTEEC, we develop TEEC (Tool to Estimate Energy Consumption) which is based on mathematical formula established for each component (CPU, memory, hard disk, network) in order to estimate the total software energy consumption. Moreover, we add in TEEC the capacity to locate dynamically the hotpoints which are the parts of source code consuming the greater amount of energy in order to help and guide developers to optimize their source code and build efficient, sustainable and green software. We performed a variety of experiments to validate the accuracy and quality of the sustainable and green software engineering process and TEEC. The results demonstrate the possibility to save significant quantity of energy and time at limited costs with an important positive impact on environment
Le nombre de périphériques mobiles (smartphone, tablette, ordinateur portable, etc.) et les internautes augmentent continuellement. En raison de l'accessibilité du cloud computing, de l'Internet et de l'Internet des Objets (IdO), les utilisateurs utilisent de plus en plus d'applications logicielles qui provoquent un effet croissant sur les émissions de gaz à effet de serre. Ainsi, les TIC (Technologies de l'Information et de la Communication) sont responsables d'environ 2% des émissions mondiales de gaz à effet de serre qui sont équivalentes à celles émises par l'industrie aérienne. Selon des rapports récents, le Groupe d'experts Intergouvernemental sur l'Evolution du Climat (GIEC), les émissions de CO2 dus aux TIC augmentent rapidement. Néanmoins, les TIC, en permettant de résoudre des problèmes complexes dans d'autres secteurs, peuvent grandement et facilement participer pour réduire une partie importante des 98% restants des émissions mondiales de CO2. L'utilisation du logiciel implique des opérations matérielles qui sont physiquement responsables de la consommation d'énergie. Par conséquent, le logiciel est indirectement impliqué dans la consommation d'énergie. Ainsi, nous devons réduire la consommation d'énergie du logiciel tout en conservant les mêmes fonctionnalités pour le logiciel afin de créer des logiciels durables et verts. Premièrement, dans ce travail de thèse, nous définissons les termes «durable et vert» dans le domaine du logiciel afin de créer des logiciels respectant les critères de ces termes. Pour créer un produit logiciel, nous devons suivre un processus d'ingénierie logicielle. Par conséquent, nous décrivons des critères durables et verts à respecter après chaque étape de ce processus afin d'établir un processus d'ingénierie logicielle durable et écologique. En particulier, nous nous concentrons sur l'estimation de la consommation d'énergie du logiciel. De nombreux travaux ont essayé de proposer divers outils pour estimer la consommation d'énergie due aux logiciels afin de réduire l'empreinte carbone. Pendant longtemps, les solutions proposées se sont concentrées uniquement sur la conception du matériel, mais ces dernières années, les aspects logiciels sont également devenus importants. Malheureusement, ces études, dans la plupart des cas, ne considèrent que le CPU et négligent tous les autres composants. Les modèles de consommation d'énergie existants doivent être améliorés en tenant compte de plus de composants susceptibles de consommer de l'énergie pendant l'exécution d'une application. L'écriture d'un logiciel durable, performant et vert nécessite de comprendre le comportement de consommation d'énergie d'un programme informatique. L'un des avantages est que les développeurs, en améliorant leurs implémentations du code source, optimiseront la consommation d'énergie du logiciel. De plus, il existe un manque d'outil d'analyse pour surveiller dynamiquement la consommation d'énergie du code source de plusieurs composants. Ainsi, nous proposons GMTEEC (Méthodologie Générique d'Outil pour Estimer la Consommation Energétique) qui se compose de quatre couches aidant et guidant la construction d'un outil permettant d'estimer la consommation énergétique d'un logiciel. Ainsi, dans notre travail, en respectant les couches de GMTEEC, nous créons TEEC (Outil pour Estimer la Consommation Energétique) qui repose sur une formule mathématique établie pour chaque composant (CPU, mémoire, disque dur, réseau) susceptible de consommer de l'énergie afin d'estimer la consommation totale d'énergie du logiciel composée de la somme de chaque consommation d'énergie par composant. De plus, nous ajoutons à TEEC la capacité de localiser dynamiquement les points chauds qui sont les parties du code source consommant la plus grande quantité d'énergie afin d'aider et guider les développeurs à optimiser leur code source et à créer des logiciels efficaces, durables et verts... [etc]
Origine | Version validée par le jury (STAR) |
---|
Loading...