Vous êtes sur la page 1sur 23

05/03/23

Maintenance
Logicielle

Mme. Khadija El Miloudi


213

Introduction

• Développer un nouveau logiciel et le lancer sur le marché constitue une


étape passionnante pour toute entreprise. Cependant, tout bon logiciel doit
pouvoir s’adapter à son époque.
• Cela implique un suivi et une maintenance appropriés. La technologie
évoluant à la vitesse de la lumière, les logiciels doivent suivre l’évolution et
les demandes du marché.
Mme. Khadija El Miloudi

• Dans le domaine informatique, on ne peut pas penser à la création des


logiciels sans penser à la phase de maintenance. Les bugs informatiques
sont innombrables et peuvent arriver sans rendez-vous.

214

1
05/03/23

Définition
La maintenance logicielle
• Est le processus qui consiste à changer, modifier et mettre à jour les logiciels
afin de répondre aux besoins des clients.
• Est l’activité du cycle de vie du développement logiciel associée avec le
maintien, en permanence, d’un système informatique en condition
opérationnelle en phase avec les besoins des utilisateurs et des opérations de
traitement de données.

Mme. Khadija El Miloudi


• Est effectuée après le lancement du produit pour plusieurs raisons,
notamment pour améliorer l’ensemble du logiciel, corriger les problèmes ou les
bugs, augmenter les performances, etc.

215

Maintenabilité

• Selon le modèle de qualité logicielle de la norme ISO 25010, l’un des facteurs
de qualité d’un produit logiciel est la maintenabilité.

• La maintenabilité est définie dans la norme comme étant l’ensemble


d'attributs portant sur l'effort nécessaire pour faire des modifications données.
Mme. Khadija El Miloudi

• C’est la facilité avec laquelle un logiciel peut être maintenu.

216

2
05/03/23

Maintenabilité
• Les critères de ce facteur de qualité sont :

̶ Facilité d’analyse : effort nécessaire pour diagnostiquer les déficiences et


causes de défaillance ou pour identifier les parties à modifier

̶ Facilité de modification : effort nécessaire pour modifier, remédier aux


défauts ou changer d’environnement

Mme. Khadija El Miloudi


̶ Stabilité : risque des effets inattendus des modifications

̶ Facilité de test : effort nécessaire pour valider le logiciel modifié

217

Le besoin en maintenance du logiciel

Il existe un besoin de maintenance des logiciels pour les raisons suivantes :


• Les besoins des utilisateurs changent avec le temps. Ainsi, le client peut
exiger des améliorations fonctionnelles ou de performances
• Les problèmes lors de l’utilisation du logiciel, des erreurs logicielles
• Le logiciel doit être adapté pour tenir compte des changements dans son
environnement externe (par exemple, un changement nécessaire en raison
d’un nouveau système d’exploitation ou d’un périphérique), Modification de
Mme. Khadija El Miloudi

l’environnement du matériel / logiciel

218

3
05/03/23

La maintenance est le cœur du


métier informatique

• La maintenance des logiciels est la colonne dorsale du métier informatique


car elle permet de rétablir tous les problèmes informatiques afin de garantir
un fonctionnement numérique sans failles.
• La maintenance du logiciel est une activité très large qui inclut des
corrections d’erreurs, des améliorations des capacités, la suppression des
fonctionnalités obsolètes et l’optimisation.

Mme. Khadija El Miloudi


• C’est impossible de livrer un projet informatique sans signer un contrat de
maintenance. La période du contrat se diffère selon les besoins de chaque
client.

219

L’intérêt de la maintenance d’un


logiciel
• La maintenance d’un logiciel est une solution efficace qui permet
l’optimisation de la durée de vie d’un logiciel afin de conserver et optimiser
ses caractéristiques.
• Elle présente ainsi plusieurs d’autres valeurs comme :

o La réduction des coûts : Les charges de renouvellement des logiciels sont


très élevées. Pour cette raison la maintenance est une étape cruciale
Mme. Khadija El Miloudi

assurant la pertinence de votre produit.

o Amélioration de la productivité : Un processus professionnel rapide et


résistant, garantissant un terrain de travail bien structuré et
opérationnel.

220

4
05/03/23

Les activités de maintenance du logiciel

• Améliorer l’efficacité du système


• Modifier les composants
• Tester le produit résultant et vérifier l’exactitude des modifications
• Éliminer les effets indésirables résultant des modifications
• Optimiser le code afin d’accélérer son exécution

Mme. Khadija El Miloudi


• Contrôler l’efficacité et le respect des normes
• Rendre le code plus facile à comprendre et à utiliser
• Éliminer tout écart par rapport aux spécifications

221

Les activités de maintenance du logiciel


Mme. Khadija El Miloudi

222

5
05/03/23

Types de maintenance logicielle


• Les différents types de maintenance logicielle sont chacun réalisés pour des
raisons et des objectifs divers. Un logiciel donné peut être soumis à un, deux
ou tous les types de maintenance au cours de sa durée de vie.

• Les quatre types de maintenance logicielle sont :


̶ La maintenance logicielle corrective

Mme. Khadija El Miloudi


̶ La maintenance logicielle préventive
̶ La maintenance logicielle perfective
̶ la maintenance logicielle adaptative.

223

Maintenance logicielle corrective


• La maintenance logicielle corrective est la forme type et classique de
maintenance.
• La maintenance corrective est nécessaire lorsqu’un logiciel rencontre un
problème, notamment lorsque surviennent des défaillances et des erreurs.
Celles-ci peuvent avoir un impact considérable sur la fonctionnalité du logiciel
en général et doivent donc être corrigées le plus rapidement possible.
• Modifications apportées pour corriger les problèmes découverts.
Mme. Khadija El Miloudi

• Les éditeurs de logiciels peuvent souvent résoudre les problèmes qui


nécessitent une maintenance corrective grâce aux rapports de bug envoyés par
les utilisateurs.

224

6
05/03/23

Maintenance logicielle préventive


• La maintenance logicielle préventive consiste à se projeter dans l’avenir
afin que votre logiciel puisse continuer à fonctionner comme souhaité le plus
longtemps possible.
• La maintenance logicielle préventive peut s’attaquer à de petits problèmes
qui, à un moment donné, peuvent ne pas avoir d’importance, mais qui
peuvent se transformer en problèmes plus importants à l’avenir.
• La maintenance préventive est importante dans le cas des systèmes critiques

Mme. Khadija El Miloudi


et nécessaire dans la détection des problèmes dans une phase très avancée
pour empêcher leurs déroulements.

225

Maintenance logicielle perfective


• La maintenance logicielle perfective vise à adapter le logiciel en y ajoutant
de nouvelles fonctionnalités, au besoin, et en y supprimant celles qui ne sont
pas pertinentes ou efficaces.
• Elle implique des changements que le client estime qu’ils permettront
d’améliorer l’efficacité du produit, par l’ajout de fonctionnalités
supplémentaires ou par la diminution du temps de réponse, par exemple.
• Ce processus permet aux logiciels de rester pertinents à mesure que le marché
et les besoins des utilisateurs évoluent.
Mme. Khadija El Miloudi

• Moyen d’amélioration de la performance ou la maintenabilité du logiciel.

226

7
05/03/23

Maintenance logicielle adaptative

• La maintenance logicielle adaptative est liée à l’évolution des technologies


ainsi qu’aux politiques et règles concernant vos logiciels.
• Modifications pour maintenir le logiciel utilisable dans un environnement
modifié ou changeant.
• Il s’agit notamment des modifications de système d’exploitation, du stockage
dans le cloud, du matériel, etc. Lorsque ces changements sont effectués, votre
logiciel doit s’adapter afin de répondre correctement aux nouvelles exigences
et continuer à bien fonctionner.

Mme. Khadija El Miloudi


227

Le processus de maintenance logicielle


• Le processus de maintenance logicielle implique diverses techniques de
maintenance logicielle pouvant changer en fonction du type de maintenance et
du plan de maintenance logicielle mis en place.
• L’équipe de maintenance doit être en mesure de fournir des réponses aux
questions suivantes :

o De quel type de changement s’agit-il ?


Mme. Khadija El Miloudi

o Quelle est l’étendue du changement ?


o Quelles sont les ressources nécessaires pour faire le changement : temps,
personnels, budget et plannings ?
o Quel est le degré de difficulté à implanter le changement ?
o Quel est le risque encouru pour accomplir le changement ?

228

8
05/03/23

Le processus de maintenance logicielle


• La plupart des modèles de processus de maintenance logicielle comprennent
les étapes suivantes :

1. Identification et suivi
2. Analyse
3. Conception
4. Mise en œuvre

Mme. Khadija El Miloudi


5. Test du système
6. Test d’acceptation
7. Livraison

229

Le processus de maintenance logicielle


1. Identification et suivi : processus consistant à déterminer quelle partie
du logiciel doit être modifiée (ou entretenue). Cette partie peut être générée
par l’utilisateur ou identifiée par le développeur du logiciel lui-même, en
fonction de la situation et de la défaillance spécifique.
2. Analyse : processus consistant à analyser la modification suggérée, y
compris la compréhension des effets potentiels d’une telle modification.
Cette étape comprend généralement une analyse des coûts pour comprendre
si la modification est financièrement intéressante.
Mme. Khadija El Miloudi

3. Conception : conception des nouvelles modifications à l’aide des


spécifications des exigences.

230

9
05/03/23

Le processus de maintenance logicielle


4. Mise en œuvre : processus de mise en œuvre de nouveaux modules par les
programmeurs.
5. Test du système : avant d’être lancés, le logiciel et le système doivent être
testés. Cela inclut le module lui-même, le système et le module, et
l’ensemble du système en même temps.
6. Test d’acceptation : les utilisateurs testent la modification pour
l’accepter. Il s’agit d’une étape importante, car les utilisateurs peuvent
détecter les problèmes en cours et formuler des recommandations pour une

Mme. Khadija El Miloudi


résolution et des modifications plus efficaces.
7. Livraison : mises à jour du logiciel ou, dans certains cas, nouvelle
installation du logiciel. Il s’agit du moment où les modifications arrivent
chez les clients.

231

Le processus de maintenance logicielle

• Les deux activités les plus coûteuses dans la maintenance de logiciels sont la
compréhension du problème qui est généralement liée à la compréhension du
logiciel maintenu, et la maîtrise de la totalité des effets de propagation des
changements proposés.

• Un petit changement peut avoir des effets considérables et inattendus sur le


reste du système. Le danger encouru lors de la modification, réside dans cette
conséquence de l’impact d’un changement obtenu.
Mme. Khadija El Miloudi

232

10
05/03/23

Le processus de maintenance logicielle


• La compréhension d’un programme représente l’une des tâches les plus
importantes du processus de maintenance. Les personnes chargées de la
maintenance épuisent 40 à 60% de leurs temps à lire le code et à essayer de
comprendre sa logique. C’est une activité laborieuse qui augmente le coût de
la maintenance.

• L’équipe qui a développé le système n’est pas toujours celle qui assure sa
maintenance, les documents de spécifications sont parfois incomplets et le

Mme. Khadija El Miloudi


code source constitue souvent la seule source d’informations fiable.

233

Le processus de maintenance logicielle

• La plupart des problèmes associés à la maintenance du logiciel sont causés


par la méthode utilisée pour concevoir et développer le système.

• Pour faciliter la maintenance et augmenter la maintenabilité des systèmes


logiciels, il faut définir des standards de codage, de documentation et d’outils
de tests dans la phase de développement du logiciel, documenter l’évolution du
Mme. Khadija El Miloudi

logiciel et utiliser les techniques destinées à la maintenance.

234

11
05/03/23

Le processus de maintenance logicielle


• Pratiquement, lorsqu’une proposition de changement parvient à l’équipe de
maintenance, elle est transformée en terme logiciel afin de décider si la
proposition doit être retenue ou rejetée.
• Une fois acceptée, il faut localiser l’origine de l’anomalie. L’analyse d’impact
du changement s’impose à cette étape afin de:

̶ déterminer tous les composants du système qui doivent changer en

Mme. Khadija El Miloudi


conséquence du changement initial,
̶ estimer les ressources nécessaires pour implémenter le changement.

• Ce résultat permet aux gestionnaires de prendre une décision sur la meilleure


solution à mettre en œuvre ou annuler la requête de changement.

235

Le processus de maintenance logicielle

• En effet, plus les problèmes liés à un changement sont découverts tard, plus
leur coût augmente.

• Plusieurs changements sont proposés pour résoudre un même problème et


satisfaire le même besoin. L'évaluation de l'impact de chaque changement
permet de choisir le changement adéquat.
Mme. Khadija El Miloudi

• L’expérience a montré qu’effectuer des changements dans un code sans


comprendre leurs implications peut conduire à une mauvaise estimation de
l’effort à produire, à prolonger les délais de livraison, à dégrader la conception
d’un logiciel, à entamer la fiabilité du produit et enfin peut amener au retrait
prématuré du logiciel.

236

12
05/03/23

Coût de la maintenance logicielle


• Les coûts liés à la maintenance logicielle sont dus à de multiples facteurs et
varient en fonction de la situation spécifique.

• Dans certains cas, la maintenance logicielle peut représenter jusqu’à deux


tiers du cycle complet du processus logiciel ou plus de 50 % des processus
SDLC.

Mme. Khadija El Miloudi


• Le coût de maintenance est généralement supérieur aux coûts de
développement (2 fois à 100 fois en fonction de l’application).

237

Coût de la maintenance logicielle


• Les coûts de maintenance augmentent au fur et à mesure que le logiciel est
maintenu.

• Plus le logiciel est vieux, plus la maintenance coûtera cher, car les
technologies évoluent au fil du temps.

• La refonte d’un ancien logiciel pour l’adapter à la technologie d’aujourd’hui


Mme. Khadija El Miloudi

peut être un processus exceptionnellement coûteux dans certaines


situations.

• La maintenance qui modifie la structure logicielle rend encore les futures


opérations de maintenance plus difficiles.
238

13
05/03/23

Coût de la maintenance logicielle

• Afin de réduire les coûts de la maintenance logicielle, l’utilisation des bonnes


techniques et stratégies en matière de maintenance logicielle est un élément
essentiel pour garantir le fonctionnement à long terme d’un logiciel et la
satisfaction des clients et des utilisateurs.

• Tous les éditeurs de logiciels doivent avoir mis en place une stratégie

Mme. Khadija El Miloudi


spécifique pour s’attaquer à la maintenance logicielle de manière efficace et
complète.

239

Stratégies en matière de maintenance


logicielle
• La documentation est une stratégie importante dans le développement de
logiciels. Si la documentation d’un logiciel n’est pas à jour, sa mise à jour
peut sembler impossible. La documentation doit comprendre des
informations sur le fonctionnement du code, des solutions aux problèmes
potentiels, etc.

• L’assurance qualité est également un élément important du plan de


maintenance d’un logiciel. Si l’assurance qualité est importante avant le
Mme. Khadija El Miloudi

lancement initial d’un logiciel, elle peut également être intégrée beaucoup
plus tôt dans le processus (dès la phase de planification) pour s’assurer que le
logiciel est développé correctement et pour donner un aperçu des
modifications à apporter, au besoin.

240

14
05/03/23

Risques d’une mauvaise maintenance


logicielle
• Certaines entreprises ne donnent pas un grand
intérêt aux services de maintenance et confient
leurs projets aux personnes non qualifiées pour ne
pas consacrer un budget important pour ce faire.
• Cela va engendrer plusieurs conséquences néfastes
à long-termes et qui sont les suivants :

Mme. Khadija El Miloudi


✔ Mauvaise sécurité des données
✔ Risque de piratage
✔ Utilisation erronée des logiciels
✔ Gaspillage inutile des ressources

241

Conclusion

• L’identification des impacts possibles avant d'effectuer le changement, nous


permettra de réduire les risques d’entreprendre des changements coûteux.

• Il est conseillé d’investir plus d’efforts dans les premières phases du cycle de
vie du logiciel pour réduire les coûts de maintenance.
Mme. Khadija El Miloudi

• Plus d’efforts au cours du développement, pour en réduire les défauts, va


certainement réduire le coût de maintenance.

242

15
05/03/23

Documentation

Mme. Khadija El Miloudi


243

Introduction
• Un logiciel a une durée de vie de plusieurs années et subit de nombreuses
évolutions au cours de cette période.
• En entreprise, seule une petite minorité de logiciels sont conçus par un seul
développeur. La grande majorité des projets sont réalisés et maintenus par
une équipe de plusieurs personnes travaillant sur la même base de code
source.
• Il est fréquent que les effectifs changent et que des développeurs soient
amenés à travailler sur un logiciel sans avoir participé à sa création.
Mme. Khadija El Miloudi

• Un ou plusieurs documents doivent accompagner le logiciel. On peut classer


cette documentation en deux catégories : La documentation technique et
La documentation utilisateur.

244

16
05/03/23

La documentation technique
• La documentation technique doit expliquer comment fonctionne le logiciel.

• La documentation technique est écrite par des informaticiens, pour des


informaticiens.
• Elle nécessite des compétences techniques pour être comprise.

Mme. Khadija El Miloudi


• Le public visé est celui des personnes qui interviennent sur le logiciel du point
de vue technique : « développeurs, intégrateurs, responsables techniques,
éventuellement chefs de projet ».

245

La documentation technique

• Le contenu de la documentation technique varie fortement en fonction de la


structure et de la complexité du logiciel associé:
1. La Modélisation :

o La documentation technique inclut les informations liées au domaine du


logiciel. Elle précise comment les éléments - métiers ont été modélisés
informatiquement au sein du logiciel (modèle conceptuel des données,
diagrammes UML, organisation des BD).
Mme. Khadija El Miloudi

246

17
05/03/23

La documentation technique

2. L’Architecture :

o La phase d'architecture d'un logiciel permet, en partant des besoins


exprimés dans le cahier des charges, de réaliser les grands choix qui
structureront le développement : technologies, langages, découpage en sous-
parties, outils, etc.

Mme. Khadija El Miloudi


o La documentation technique doit décrire tous ces choix de conception.
L'ajout de schémas est conseillé,

o ¨Par exemple, l'implantation physique des différents composants sur une ou


plusieurs machines doit également être documentée

247

La documentation technique
3. La Production du code source :

o Afin d'augmenter la qualité du code source produit, de nombreux logiciels


adoptent des normes ou des standards de production du code source :
conventions de nommage, formatage du code, etc.

o Afin que les nouveaux développeurs les connaissent et les respectent, ces
normes et standards doivent être présentés dans la documentation
Mme. Khadija El Miloudi

technique.

248

18
05/03/23

La documentation technique
4. La Génération :

Le processus de génération (« build ») permet de passer des fichiers sources


du logiciel aux éléments exécutables. Elle se fait en plusieurs étapes et inclut
souvent une phase de compilation du code source.
elle doit donc être documentée.

Mme. Khadija El Miloudi


249

La documentation technique
5. Le Déploiement :

o La documentation technique doit indiquer comment s'effectue le déploiement


du logiciel, c'est-à-dire l'installation de ses différents composants sur la ou
les machines nécessaires.

6. La Documentation du code source :


Mme. Khadija El Miloudi

o Il est également possible de documenter un logiciel directement depuis son


code source en y ajoutant des commentaires.

250

19
05/03/23

La documentation utilisateur
• La documentation d'utilisation ne vise pas à faire comprendre comment le
logiciel est conçu. Son objectif est d'apprendre à l'utilisateur à se servir du
logiciel.
• La documentation d'utilisation doit être :

Utile : une information exacte, mais inutile, ne fait que renforcer le


sentiment d'inutilité et gêne la recherche de l'information pertinente ;

Mme. Khadija El Miloudi


Agréable : sa forme doit favoriser la clarté et mettre en avant les
préoccupations de l'utilisateur et non pas les caractéristiques techniques du
produit.

251

La documentation utilisateur
• Le public visé est l'ensemble des utilisateurs du logiciel.

• On supposera le plus souvent que le public visé n'est pas un public


d'informaticiens.

• D'une manière générale, s'adapter aux connaissances du public visé constitue


la principale difficulté de la rédaction de la documentation d'utilisation.
Mme. Khadija El Miloudi

252

20
05/03/23

Les formes de la documentation utilisateur

1. Le Manuel utilisateur : La forme la plus classique de la documentation


d'utilisation consiste à rédiger un manuel utilisateur, le plus souvent sous
la forme d'un document bureautique. Ce document est structuré et permet
aux utilisateurs de retrouver les informations qu'ils recherchent. Il intègre
très souvent des captures d'écran afin d'illustrer le propos. Un manuel
utilisateur peut être organisé de deux façons :

o Le Guide d'utilisation

Mme. Khadija El Miloudi


o Manuel de référence

253

Les formes de la documentation utilisateur

o Le Guide d'utilisation : ce mode d'organisation décompose la


documentation en grandes fonctionnalités décrites pas à pas et dans
l'ordre de leur utilisation.

o Manuel de référence : dans ce mode d'organisation, on décrit une par une


chaque fonctionnalité du logiciel, sans se préoccuper de leur ordre ou de
Mme. Khadija El Miloudi

leur fréquence d'utilisation. *Cette organisation suit la logique du


créateur du logiciel plutôt que celle de son utilisateur. Elle est en général
moins appréciée de ces derniers.

254

21
05/03/23

Les formes de la documentation utilisateur

2. Le Tutoriel : De plus en plus souvent, la documentation d'utilisation inclut


un ou plusieurs tutoriels, destinés à faciliter la prise en main initiale du
logiciel.
• Un tutoriel est un guide pédagogique constitué d'instructions détaillées
pas à pas en vue d'objectifs simples sans l'obliger à parcourir un manuel
utilisateur plus ou moins volumineux.
• Il peut prendre la forme d'un document texte, ou bien d'une vidéo ou d'un
exercice interactif.

Mme. Khadija El Miloudi


255

Les formes de la documentation utilisateur

3. Le FAQ : Une Foire Aux Questions (en anglais Frequently Asked


questions) est une liste de questions-réponses sur un sujet.

4. L’Aide en ligne : Il peut s'agir d'une partie de la documentation publiée


sur Internet sous un format hypertexte.
Mme. Khadija El Miloudi

256

22
05/03/23

Les recommandations de rédaction


d’une documentation
• Toute documentation doit absolument être écrite de manière structurée, afin
de faciliter l'accès à une information précise. Ce qui signifie :

̶ La décomposer en paragraphes suivant une organisation hiérarchique ;


̶ Et Utiliser des styles de titre, une table des matières, des références...

• Le public visé n'a pas forcément d'expérience informatique, il est


indispensable de bannir les explications trop techniques et penser à définir les

Mme. Khadija El Miloudi


principaux termes et le « jargon » utilisé.

• Une documentation doit être rédigée dans une langue simple, pour être
comprise de tous, y compris de personnes étrangères apprenant la langue de
rédaction.
257

23

Vous aimerez peut-être aussi