Software development methodology in a Green IT environment. (Méthodologie de développement de logiciels dans un environnement informatiquement vert)

Le nombre de peripheriques mobiles (smartphone, tablette, ordinateur portable, etc.) et les internautes augmentent continuellement. En raison de l'accessibilite 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 emissions de gaz a effet de serre. Ainsi, les TIC (Technologies de l'Information et de la Communication) sont responsables d'environ 2% des emissions mondiales de gaz a effet de serre qui sont equivalentes a celles emises par l'industrie aerienne. Selon des rapports recents, le Groupe d'experts Intergouvernemental sur l'Evolution du Climat (GIEC), les emissions de CO2 dus aux TIC augmentent rapidement. Neanmoins, les TIC, en permettant de resoudre des problemes complexes dans d'autres secteurs, peuvent grandement et facilement participer pour reduire une partie importante des 98% restants des emissions mondiales de CO2. L'utilisation du logiciel implique des operations materielles qui sont physiquement responsables de la consommation d'energie. Par consequent, le logiciel est indirectement implique dans la consommation d'energie. Ainsi, nous devons reduire la consommation d'energie du logiciel tout en conservant les memes fonctionnalites pour le logiciel afin de creer des logiciels durables et verts. Premierement, dans ce travail de these, nous definissons les termes «durable et vert» dans le domaine du logiciel afin de creer des logiciels respectant les criteres de ces termes. Pour creer un produit logiciel, nous devons suivre un processus d'ingenierie logicielle. Par consequent, nous decrivons des criteres durables et verts a respecter apres chaque etape de ce processus afin d'etablir un processus d'ingenierie logicielle durable et ecologique. En particulier, nous nous concentrons sur l'estimation de la consommation d'energie du logiciel. De nombreux travaux ont essaye de proposer divers outils pour estimer la consommation d'energie due aux logiciels afin de reduire l'empreinte carbone. Pendant longtemps, les solutions proposees se sont concentrees uniquement sur la conception du materiel, mais ces dernieres annees, les aspects logiciels sont egalement devenus importants. Malheureusement, ces etudes, dans la plupart des cas, ne considerent que le CPU et negligent tous les autres composants. Les modeles de consommation d'energie existants doivent etre ameliores en tenant compte de plus de composants susceptibles de consommer de l'energie pendant l'execution d'une application. L'ecriture d'un logiciel durable, performant et vert necessite de comprendre le comportement de consommation d'energie d'un programme informatique. L'un des avantages est que les developpeurs, en ameliorant leurs implementations du code source, optimiseront la consommation d'energie du logiciel. De plus, il existe un manque d'outil d'analyse pour surveiller dynamiquement la consommation d'energie du code source de plusieurs composants. Ainsi, nous proposons GMTEEC (Methodologie Generique d'Outil pour Estimer la Consommation Energetique) qui se compose de quatre couches aidant et guidant la construction d'un outil permettant d'estimer la consommation energetique d'un logiciel. Ainsi, dans notre travail, en respectant les couches de GMTEEC, nous creons TEEC (Outil pour Estimer la Consommation Energetique) qui repose sur une formule mathematique etablie pour chaque composant (CPU, memoire, disque dur, reseau) susceptible de consommer de l'energie afin d'estimer la consommation totale d'energie du logiciel composee de la somme de chaque consommation d'energie par composant. De plus, nous ajoutons a TEEC la capacite de localiser dynamiquement les points chauds qui sont les parties du code source consommant la plus grande quantite d'energie afin d'aider et guider les developpeurs a optimiser leur code source et a creer des logiciels efficaces, durables et verts. [etc]