• Aucun résultat trouvé

IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance des logiciels

N/A
N/A
Protected

Academic year: 2022

Partager "IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance des logiciels"

Copied!
27
0
0

Texte intégral

(1)

Yann-Gaël Guéhéneuc

Département d’informatique et de recherche opérationnelle

IFT3902 :

(Gestion de projet pour le) développement, (et la) maintenance des logiciels

Professeur adjoint

[email protected], local 2345

(2)

Plan du cours

1. Introduction

2. Notion de projet logiciel

3. Organisation du développement

4. Planification du développement

5. Contrôle du développement

6. Organisation de la maintenance

(3)

6. Organisation de la maintenance

1. Généralités

2. Types de maintenance

3. Modèles de maintenance

4. Gestion de la maintenance

5. Maintenabilité

6. Ré-ingénierie

7. Conclusion

(4)

6.1. Généralités (1/8)

Définition

– La maintenance est l’ensemble des activités effectuées pour modifier un logiciel après sa mise en opérations

« La plupart des logiciels sont immortels »

Nicholas Zvegintzov

(5)

6.1. Généralités (1 bis /8)

Saviez-vous que…

– 85% des programmes de gestion d’affaires mondiaux sont en COBOL

– 90 000 développeurs COBOL existent (encore) aux États-Unis d’Amérique

– 200 milliards de lignes de code COBOL tournent (encore) dans le monde

– 35% du développement de nouvelles applications d’affaires est en COBOL

– 59% des systèmes d’information du Ministère de la

« Defence » des États-Unis d’Amérique sont en COBOL

(6)

6.1. Généralités (2/8)

Justifications

– Correction d’erreurs (boucle sans fin) – Adaptation aux besoins des usagers

– Améliorations (implantation, architecture, performances)

– Changement de l’environnement technique

– Changement de l’environnement « affaires »

– Modernisation

(7)

7/25

6.1. Généralités (3/8)

Cinq lois de l’évolution des programmes

– Les cinq lois de Lehman, 1985 – Loi du changement continuel

• Un programme utilisé dans un environnement du monde réel doit nécessairement changer sinon il deviendra progressivement de moins en moins utile dans cet environnement

(De plus, un programme introduit dans un environnement change celui-ci, cf. l’« effet d’observation »)

(8)

6.1. Généralités (4/8)

Cinq lois de l’évolution des programmes

– Loi de la complexité croissante

• Lorsqu’un programme change, sa structure tend à

devenir plus complexe. Des ressources additionnelles doivent être consacrées à maintenir et à préserver sa structure

(Plus un programme est modifié, plus sa structure originelle est corrompue : il faut limiter le nombre de personnes travaillant sur un programme)

(9)

6.1. Généralités (5/8)

Cinq lois de l’évolution des programmes

– Loi de l’évolution des grands programmes

• L’évolution des grands programmes est un processus auto-régulateur. Les attributs comme la taille, le

temps entre versions et le nombre d’erreurs signalées sont approximativement invariants pour chaque

version du programme

(Tout le monde aime la stabilité…)

(10)

6.1. Généralités (6/8)

Cinq lois de l’évolution des programmes

– Loi de la stabilité organisationnelle

• Pendant la vie d’un programme, son taux de

développement est approximativement constant et indépendant des ressources qui y sont consacrées (Rappelez-vous également du mythe de la

personne–mois)

(11)

6.1. Généralités (7/8)

Cinq lois de l’évolution des programmes

– Loi de la conservation de la familiarité

• Pendant la vie d’un programme, l’incrément de changement dans chaque version est

approximativement constant

(C’est pourquoi il faut mettre en place des

mécanismes pour prendre en compte au plus tôt les futurs changement et limiter la corruption du

programme)

(12)

60% 70% 80% 90%

0%

20%

40%

60%

80%

100%

Début années 70

Début années 80

Fin années 80

Début années 90

6.1. Généralités (8/8)

Coûts de la maintenance

10 times 6 times

15-40 times

30-70 times

40-1000 times

(13)

6. Organisation de la maintenance

1. Généralités

2. Types de maintenance

3. Modèles de maintenance

4. Gestion de la maintenance

5. Maintenabilité

6. Ré-ingénierie

7. Conclusion

(14)

6.2. Types de maintenance (1/3)

Définitions traditionnelles

– Maintenance corrective

• Réparation des erreurs découvertes pendant l’utilisation du logiciel

– Maintenance adaptative

• Modifications du logiciel entraînées par des changements dans l’environnement technique

– Maintenance perfective

(15)

6.2. Types de maintenance (2/3)

Catégorie oubliée

– Maintenance pour améliorer les performances

Catégorie nouvelle

– Migration (legacy systems)

– Refonte totale du logiciel par des moyens

automatiques ou semi-automatiques en raison

de sa vétusté

(16)

6.2. Types de maintenance (3/3)

Répartition de l’effort de maintenance (types traditionnels)

Répartition de l'effort de maintenance (données de 1980)

20%

25%

55%

corrective adaptative perfective

(17)

6. Organisation de la maintenance

1. Généralités

2. Types de maintenance

3. Modèles de maintenance

4. Gestion de la maintenance

5. Maintenabilité

6. Ré-ingénierie

7. Conclusion

(18)

6.3. Modèles de maintenance (1/17)

Cycle de vie réel d’un logiciel

Cycle de vie de la maintenance

Modèles de cycle de maintenance

Un point de vocabulaire

(19)

6.3. Modèles de maintenance (2/17)

Cycle de vie réel d’un logiciel

– La maintenance est une activité récurrente

maintenance maintenance maintenance maintenance

Retrait

(20)

6.3. Modèles de maintenance (3/17)

Cycle de vie de la maintenance

Introduction Croissance Maturité Déclin

Support Corrections Modifications Modifications

(21)

6.3. Modèles de maintenance (4/17)

Modèles de cycle de maintenance

– Modèle de « maintenance urgente » – Modèle IEEE

D’autres modèles existent : Taute, ISO…

(22)

6.3. Modèles de maintenance (5/17)

Modèles de cycle de maintenance

– Modèle de « maintenance urgente »

• Travail fait aussi vite que possible

• Peu ou pas documenté

• Pas de respect des règles et des normes

Demande de changement

(DC)

Analyse du code source

Modification du code source

Livraison du logiciel modifié

(23)

6.3. Modèles de maintenance(5 bis /17)

(24)

6.3. Modèles de maintenance (8/17)

Modèles de cycle de maintenance

– Modèle IEEE

(1993)

DC Classification Analyse

Conception

Acceptation Livraison

(25)

6.3. Modèles de maintenance (15/17)

Un point de vocabulaire

– Terminologie IEEE pour la ré-ingénierie et la rétro-conception (1990)

Software maintenance : maintenance

Forward engineering : développement

(26)

6.3. Modèles de maintenance (16/17)

Un point de vocabulaire

Reverse engineering : rétro-conception

• Identification des composants d’un programme

– Classes, modules, fonctionnalités

• Représentation sous une forme plus abstraite

– Code source, UML, Wright

Design recovery : recouvrement des choix de conception et architecturaux

– Informations sur le domaine

(27)

6.3. Modèles de maintenance (17/17)

Un point de vocabulaire

Restructuring : restructuration

• Transformation d’une représentation à une autre au même niveau d’abstraction

Refactorings : re-factorisation

Redocumentation : re-documentation

– Le résultat est pour les personnes

Reengineering : ré-ingénierie

• Examen d’un programme pour en obtenir une nouvelle représentation et son implantation

Références

Documents relatifs

Le milieu doit contenir les éléments suivants pour répondre aux besoins de l'Orignal: (1) une strate d'alimentation terrestre abondante et diversifiée (feuilles et ramilles

Cet objectif a été atteint, l’étude montre qu’il est non seulement possible d’appliquer les concepts de la GMAO à la maintenance des logiciels mais que la majorité de ces

• Réaliser une inspection avant utilisation et un entretien après l’utilisation, le stockage et le remplacement de consommables conformément au manuel d’utilisation de ce

Auteur : Jean-Pierre Lardy - Produit par : Jean-Pierre Lardy Date de création : 20 février 2004 - Dernière mise à jour : avril 2008. NB : Une liste de logiciels de gestion

Pour vous y aider, Microsoft intègre cette dimension dans l’ensemble de sa stratégie Entreprise, au travers de solutions pour faciliter les opérations de gestion, comme

L’administration de systèmes est un terme qui recouvre en fait beaucoup de disciplines différentes, comme par exemple : la gestion des opérations, la gestion des

depuis les résultats présentent on constate que chacun des outils a ses propres caractéristiques fonctionnels qui les favorise, par exemple on a Katalon, UFT et TestComplet qui

Le kick-off proprement dit est organisé au plus tard 1 (un) mois après la date mentionnée dans le courrier notifiant l’approbation de l’offre. La période de deux ans