Maintenance des logiciels

Maintenance des logiciels

Contexte

La maintenance est la phase la plus coรปteuse du cycle de vie du logiciel. Ceci peut, entre autres, sโ€™expliquer par le fait quโ€™elle est la phase la plus longue qui ne sโ€™ach ve quโ€™avec le retrait du logiciel. Par ailleurs, le ratio du coรปt de la maintenance par rapport au coรปt total du logiciel est passรฉ de 40 ร  60 % dans les annรฉes 80 ร  plus de 80% au d but de lโ€™an 2000 [52]. Le coรปt รฉlevรฉ de la maintenance pousse les chercheurs et les industriels ร  se focaliser sur cette phase du cycle de vie dโ€™un syst me afin dโ€™essayer de la comprendre pour mieux la contrรดler. Pour y arriver, il existe des techniques telles que la visualisation qui sert ร  montrer les tendances g n r ales du syst me dโ€™une fa on intuitive [41]. Par ailleurs selon les lois dโ€™ volution des logiciels, comme indiqu dans [ 44], un syst me doit tre continuellement changรฉ. Autrement, il apportera moins de satisfaction dans son environnement. En effet, durant la phase de maintenance, les programmeurs sont amenรฉs ร  faire des changements aux systรจmes pour de multiples raisons. Par exemple, les changements rรฉalisรฉs peuvent permettre de rรฉpondre ร  de nouveaux besoins des utilisateurs. On parle dans ce cas, de maintenance perfective. La maintenance peut aussi consister ร  apporter des changements afin de prรฉvenir les bogues (pr ventive), de sโ€™adapter un nouvel environnement (adaptative), ou pour corriger des erreurs (corrective). Ainsi, les logiciels doivent subir plusieurs changements pour prolonger la durรฉe de leur vie.

Origine et Dรฉfinition de la rรฉtro-ingรฉnierie

Dโ€™aprรจs [4], la rรฉtro-ingรฉnierie revient aux annรฉes de la rรฉvolution industrielle. Elle est semblable ร  la recherche scientifique oรน les chercheurs essayent dโ€™inventer des plans et des cartes aux phรฉnomรจnes naturels. La seule diffรฉrence est que la rรฉtro-ingรฉnierie concerne les objets crรฉรฉs par lโ€™homme (des appareils mรฉcanique, des composants รฉlectronique, des programmes informatique, โ€ฆ). Dโ€™une faรงon gรฉnรฉrale, la rรฉtro-ingรฉnierie est le processus dโ€™extraction de connaissances ou de concevoir des reprรฉsentations ร  partir de tout ce qui est construit par lโ€™homme. Dans le contexte de lโ€™ingรฉnierie logicielle, le terme rรฉtro-ingรฉnierie a รฉtรฉ dรฉfini en 1990 par Chikofsky et Cross dans [3] comme le processus dโ€™analyse dโ€™un systรจme pour (1) identifier les composants du systรจme et leurs interrelations, et (2) crรฉer des reprรฉsentations du logiciel dans une autre forme ou dans un niveau dโ€™abstraction plus รฉlevรฉ.

La rรฉtroingรฉnierie a รฉtรฉ traditionnellement vue comme un processus en deux รฉtapes : lโ€™extraction des informations et lโ€™abstraction. Lโ€™รฉtape dโ€™extraction des informations analyse les artefacts du logiciel pour recueillir des donnรฉes brutes, tandis que lโ€™รฉtape dโ€™abstraction crรฉe des vues et documents orientรฉs utilisateur ร  partir des donnรฉes brutes [25]. Chikofsky et Cross ont prรฉsentรฉ une structure de base pour les outils implรฉmentant la rรฉtro-ingรฉnierie . Le logiciel รฉtudiรฉ est analysรฉ et les rรฉsultats de cette analyse sont stockรฉs dans une base dโ€™informations. Par la suite, ces informations sont utilisรฉes pour produire diffรฉrentes vues du logiciel, comme les diagrammes, les rapports, et les mรฉtriques.[34] La rรฉtro-ingรฉnierie est trรจs utile aux dรฉveloppeurs des logiciels. En effet, ils lโ€™utilisent comme un moyen de coopรฉration et collaboration autour des logiciels qui ne disposent pas[36] (ou qui disposent partiellement) de la documentation. Ils peuvent lโ€™utiliser aussi pour รฉtudier et amรฉliorer les logiciels concurrents. De plus, la rรฉtro-ingรฉnierie permet dโ€™รฉvaluer la qualitรฉ et la robustesse dโ€™un logiciel. Elle est รฉgalement le moyen essentiel dans les diffรฉrentes taches de lโ€™รฉtape de maintenance qui reprรฉsente une รฉtape trรจs importante dans le cycle de vie de logiciel. En effet, une enquรชte effectuรฉe aux USA en 1986 auprรจs de 55 entreprises a rรฉvรฉlรฉ que 53% du budget total dโ€™un logiciel est affectรฉ ร  la maintenance [27]. La rรฉtro-ingรฉnierie facilite les taches de maintenances car elle permet de proposer aux personnes intervenant dans la maintenance des reprรฉsentations plus abstraites qui leur permet de comprendre le logiciel pour le tenir ร  jour en fonction des nouveaux besoins des utilisateurs.

Impact de changement

La modification des systรจmes est une tรขche ร  la fois difficile et porteuse de consรฉquence sur la suite de lโ€™รฉvolution de ces systรจmes. Les effets des changements subis par le systรจme doivent donc รชtre pris en considรฉration. La motivation de notre travail est dโ€™amรฉliorer la maintenance des systรจmes orientรฉs objet, et dโ€™intervenir plus prรฉcisรฉment dans la tรขche de lโ€™analyse de lโ€™impact de changement[40]. Nous visons principalement la rรฉduction de lโ€™effort ainsi que le coรปt de la maintenance. La rรฉduction de cet effort peut รชtre accomplie par la rรฉduction du temps entre la proposition du changement, son implantation et sa rรฉalisation, tout en assurant la qualitรฉ du systรจme. Lโ€™effort peut รชtre aussi rรฉduit si on peut prรฉdire le comportement du systรจme face ร  dโ€™รฉventuels changements. Notre travail se situe beaucoup plus dans cet axe de recherche. Plus lโ€™analyse et la prรฉdiction dโ€™impact de changement est systรฉmatique, plus la rรฉduction dโ€™effort est ร  notre avis optimale. Ainsi les bonnes dรฉcisions peuvent รชtre prises avant dโ€™initier les changements. En identifiant lโ€™impact potentiel dโ€™une modification, on rรฉduit le risque de sโ€™embarquer dans des changements coรปteux et imprรฉvisibles. Plus un changement affecte de classes, plus le coรปt de sa rรฉalisation nโ€™est รฉlevรฉ. Lโ€™analyse des impacts de changement permettra ainsi dโ€™รฉvaluer le coรปt dโ€™un changement et de faire un compromis entre les diffรฉrents changements suggรฉrรฉs.

Un impact, dans son sens le plus large est lโ€™effet ou lโ€™influence dโ€™une chose sur une autre. Dans notre รฉtude, lโ€™impact est la consรฉquence dโ€™un changement. Lโ€™analyse dโ€™impact est lโ€™รฉtude de la portรฉe de cet impact. Lโ€™analyse dโ€™impact du changement est lโ€™estimation des consรฉquences dโ€™un changement sur le reste du systรจme. Elle a รฉtรฉ pratiquรฉe de diffรฉrentes maniรจres pendant des annรฉes. Pfleeger et Bohner [78] dรฉfinissent lโ€™analyse dโ€™impact du changement comme : โ€œthe evaluation of the many risks associated with the change, including effects on resources, effort, and schedule estimatesโ€. Arnold et Bohner [78] dรฉfinissent lโ€™analyse dโ€™impact par : โ€œimpact analysis is the activity of identifying what to modify to accomplish a change or of identifying the potential consequences of a changeโ€. Le dรฉveloppement des logiciels consomme beaucoup de temps et de ressources. Mais, les coรปts de dรฉveloppement sont de loin infรฉrieurs aux coรปts de maintenance. En fait, ces coรปts de maintenance reprรฉsentent un souci majeur, mรชme pour systรจmes conรงus avec des techniques avancรฉes telle que lโ€™orientรฉ objet[41]. Dans les systรจmes, un flot continu de changements doit รชtre pris en compte sinon ces systรจmes risquent de devenir dรฉsuets ou mรชme dโ€™รชtre abandonnรฉs. Il devient donc nรฉcessaire que les systรจmes objets dรฉveloppรฉs soient รฉvolutifs et capables dโ€™absorber facilement tout changement. Une analyse dโ€™impact permet en gรฉnรฉral dโ€™รฉvaluer les consรฉquences dโ€™une modification avant de lโ€™implรฉmenter et dโ€™estimer ainsi les coรปts et risques associรฉs ร  la modification.

Conclusion gรฉnรฉrale et perspectives

Rรฉduire le coรปt de la maintenance nรฉcessite de se procurer les moyens nรฉcessaires pour lโ€™accomplir. Lโ€™analyse de lโ€™impact du changement est lโ€™une des techniques qui a connu de lโ€™importance dans le domaine de la maintenance ces derniรจres annรฉes. Le but de cette technique est de permettre aux gens responsables de la maintenance dโ€™รฉvaluer le coรปt du changement ร  priori, i.e., avant dโ€™entamer lโ€™implรฉmentation du changement. Cette รฉvaluation se fait de deux faรงons : technique et gestion. La premiรจre, รฉvaluation technique, se base sur la comprรฉhension du logiciel en modification et sur lโ€™identification du changement, son impact et ses effets de propagation sur tout le systรจme. Suite ร  cette analyse technique, lโ€™รฉquipe de maintenance est en mesure de conclure sur la faisabilitรฉ technique du changement et proposer des solutions optimales qui ne compromettent pas les fonctionnalitรฉs du systรจme existant. La deuxiรจme, รฉvaluation du point de vue gestion (ressources humaines et financiรจres), est รฉtablie habituellement par les gestionnaires. Ces derniers peuvent choisir parmi les solutions proposรฉes celle qui satisfait les besoins ou dรฉcider de rรฉรฉtudier le changement pour des solutions plus sรปres. Lโ€™analyse dโ€™impact du changement a รฉtรฉ รฉtudiรฉe de diffรฉrentes maniรจres par diffรฉrents utilisateurs, en se basant sur un ensemble de concepts.

Notre approche dโ€™aide ร  la dรฉcision pour la gestion des projets de maintenance logicielle utilise lโ€™analyse dโ€™impact de changement dans les programmes ร  objets ร  base des mรฉtriques qui mesurent une propriรฉtรฉ architecturale des logiciels qui est le couplage. En premier lieu, nous avons procรฉder ร  lโ€™extraction de certaines mรฉtriques relatives ร  la propriรฉtรฉ architecturale que lโ€™on veut รฉvaluer ; il sโ€™agit du couplage. Nous avons dรฉveloppรฉ un outil sous la plate-forme ECLIPSE qui permet dโ€™analyser un programme orientรฉ objet Java et dโ€™extraire les mรฉtriques nรฉcessaires. Cette รฉtape sโ€™est avรฉrรฉe importante pour mener notre expรฉrience. Notre approche aide le manager de maintenance ร  choisir une solution parmi plusieurs en tenant en compte de deux aspect : la nature de changement et sa propagation dans le reste du systรจme.

Le rapport de stage ou le pfe est un document d’analyse, de synthรจse et d’รฉvaluation de votre apprentissage, c’est pour cela rapport gratuit propose le tรฉlรฉchargement des modรจles gratuits de projet de fin d’รฉtude, rapport de stage, mรฉmoire, pfe, thรจse, pour connaรฎtre la mรฉthodologie ร  avoir et savoir comment construire les parties d’un projet de fin d’รฉtude.

Table des matiรจres

Introduction gรฉnรฉrale
1.1 Contexte
1.2 Problรฉmatique
1.3 Contribution
1.4 structure du mรฉmoire
Chapitre I : Maintenance des logiciels
1.Introduction
2.Les logiciels
2.1 L’รฉvolution des logiciels
2.2 Le gรฉnie logiciel
2.3 Qualitรฉ des logiciels
3.Cycle de vie d’un logiciel
4.Modรจles de cycle de vie d’un logiciel
4.1. Modรจle en cascade
4.2. Modรจle en V
4.3. Modรจle en spirale
4.4. Modรจle par incrรฉment
5.Maintenance des applications
5.1. Types de maintenance
5.2. Activitรฉs de maintenance
5.3. Problรจmes de maintenance
5.4. Techniques de maintenance
1.Rรฉtro-ingรฉnieurie
2.Rรฉeingenieurie
3.Analyse dโ€™impact
Chapitre II : Retro-ingรฉnierie des logiciels
1.Introduction
2.Origine et dรฉfinition de la rรฉtro-ingรฉnierie
3.Apporte la rรฉtro-ingenieurie logicielle
4.Demarche de la rรฉtro-ingenieurie logicielle
5.La dรฉmarche de la retro*ingenieurie des logicielle orientรฉ objet
Conclusion
Quelques Outils pour la Rรฉtro-ingรฉnierie
I.ptidej
prรฉsentation de ptidej
Fonctionnalitรฉs de la solution : PEPS, Ptidej for EcliPSe
3.Crรฉation dโ€™ une extension pour Peps
Argo uml
Introduction
Caractรฉristiques
Intรฉgration de lโ€™outil Argo uml a netbeans pour la retro-ingรฉnierie
III.Entreprise Architect
reprรฉsentation entreprise architect
Chapitre III : Impact de changement
Introduction
Dรฉfinition lโ€™impact de changement
Intรฉrรชt de lโ€™Impact de changement orientรฉ objet
Impact de changement orientรฉ objet
4.1 Objectif
4.2 Model conceptuel
4.2.1. Changement
4.2.2. Liens
4.3 Firewall de classe
Adaptation de model en java
Conclusion
ChapitreI V : Approche proposรฉ
Introduction et contribution
Approche proposรฉ
2.1. Extraction des composants
2.3. Prรฉsentation graphique
Rรฉalisation
3.1. Outil de dรฉveloppement
3.2 :mise en oeuvre de lโ€™outil
Conclusion
Conclusion gรฉnรฉrale et perspective
Bibliographie
ANNEXE

Rapport PFE, mรฉmoire et thรจse PDFTรฉlรฉcharger le rapport complet

Tรฉlรฉcharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiรฉe. Les champs obligatoires sont indiquรฉs avec *