Analyse d‘impact du changement et réseaux bayésiens

Analyse d’impact du changement

L‘analyse d‘impact décrit comment mener, à un coût efficace, une analyse complète d‘impact d‘un changement dans un logiciel existant. Les mainteneurs doivent posséder une connaissance intime de la structure et du contenu du logiciel. Ils utilisent ce savoir pour faire l‘analyse d‘impact, qui identifie tous les produits des systèmes et des logiciels affectés par une demande de modification de logiciel et établir une estimation des ressources nécessaires pour accomplir le changement. De plus, le risque à faire le changement est déterminé. La demande de changement, parfois appelée demande de modification (MR) et aussi appelée rapport de problème (PR), doit d‘abords être analysée et traduite en termes logiciels. Elle est faite après qu‘une demande de modification soit entrée dans le processus de gestion de configuration.

Les objectifs d‘analyse de l‘impact sont : 
• Détermination de la portée d‘un changement pour établir un plan et implanter le travail;
• Développement d‘estimations justes des ressources nécessaire pour effectuer le travail;
• L‘analyse de coûts/bénéfices du changement demandé;

La sévérité d‘un problème est aussi souvent utilisé pour décider comment et quand un problème sera corrigé. Le mainteneur identifie ensuite les composants affectés. Plusieurs solutions potentielles sont fournies et alors une recommandation est faite sur la meilleure voie d‘action. Les logiciels conçus avec la maintenabilité à l‘esprit facilitent grandement le processus d‘analyse d‘impact.

L‘analyse d‘impact du changement est effectuée principalement lors de la maintenance des programmes, en vue d‘évaluer les effets du changement sur le reste du système et de réduire le risque de s‘embarquer dans des dépenses coûteuses. Cette évaluation englobe l‘estimation des ressources humaines, financières, temps, effort et plannings nécessaires pour accomplir le changement.

Processus du changement

Une méthode formelle pour gérer le changement est essentielle pour deux raisons. Elle fournit (i) un canal de communication commun entre le personnel de maintenance, les utilisateurs, le chef de projet et les opérateurs, (ii) un annuaire des changements du système, pour la gestion de projet, l‘audit et le contrôle de qualité[7].

Madhavji définit les étapes du processus de changement comme suit :
• Identifier le besoin d‘apporter le changement à un élément (item) de l‘environnement;
• Acquérir le changement adéquat relatif à l‘élément;
• Évaluer ou estimer l‘impact du changement sur les autres éléments de l‘environnement;
• Sélectionner ou construire une méthode pour le processus de changement;
• Faire les changements nécessaires pour tous les éléments, et résoudre les interdépendances de manière satisfaisante;
• Enregistrer les détails des changements pour de futures références;
• Remettre l‘élément changé de nouveau dans l‘environnement.

Pour bien mener les changements dans un environnement, il est nécessaire de connaître tous les facteurs affectant le changement en question et les conséquences de ce changement.

Bohner décrit un processus plus en détail de changement du logiciel qui incorpore l‘analyse d‘impact [8]. Ce modèle illustre où les impacts du changement peuvent être détectés durant la plupart des activités de changement du logiciel.

Ces étapes se présentent comme suit :

1. Gérer le changement logiciel : au cours de laquelle les objectifs de qualité sont établis, les risques des changements sont déterminés et le suivi de la progression du changement, de l‘attribution des ressources et de la planification du release sont faites;

2. Comprendre le changement et déterminer l‘impact : permet d‘identifier les impacts du changement, de clarifier la requête du changement, d‘enregistrer les impacts du changement et de déterminer la stabilité du logiciel. L‘identification de l‘impact représente l‘activité centrale qui supporte la plupart des activités du processus de changement. Cette étape a pour objectif de déterminer les impacts du changement du logiciel, de classifier les changements et d‘explorer les changements similaires. De plus, elle permet d‘identifier les impacts des exigences et de conception, d‘analyser les impacts du code source et de déterminer les tests de régression candidats;

3. Spécifier et concevoir les changements : au cours de laquelle se fait l‘analyse des exigences du changement, l‘examen des changements de l‘architecture du logiciel, la dérivation des exigences du changement et la conception du programme de changement;

4. Implémenter les changements : c‘est une activité itérative qui englobe la détermination des modules à changer, l‘identification des expressions du programme à changer, l‘application des changements au programme et le test unitaire du logiciel modifié;

5. Retester le logiciel affecté : consiste à générer les cas de tests pour les nouvelles fonctionnalités ou celles modifiées, à mettre à jour la suite de tests, à effectuer les tests d‘intégration, à mener le test du système et à réaliser les tests d‘acceptation. Elle a pour objectif d‘assurer que les modifications effectuées répondent aux nouveaux besoins, et tout le système satisfait les besoins existants.

D‘une façon générale, une bonne méthodologie et une parfaite compréhension du système et du changement contribuent largement dans la réduction du temps entre la proposition du changement, son analyse, son implémentation et sa délivrance. Par conséquent, moins d‘effort requis pour effectuer le changement. L‘implémentation des modifications doit se faire de manière organisée et par priorité. D‘une part, les changements qui chevauchent doivent être rassemblés de même que les changements similaires afin d‘éviter la duplication du travail et l‘augmentation de la complexité. D‘autre part, dans le but de cerner les effets de bord du changement et son effet de propagation, un seul changement doit être traité à la fois sinon on risque de rendre le système indisponible.

Avantages de l’analyse d’impact 

Quand on est en face d‘une nécessité de modification dans un système, il est nécessaire de savoir l‘impact ou les effets secondaires qui peuvent résulter de cette modification sur le reste du système. Sans une bonne analyse d‘impact du changement, les ingénieurs peuvent faire de petits changements qui peuvent involontairement causer des problèmes majeurs ou avoir des répercussions sur tout le système.

En génie logiciel, cerner les spécifications et les objectifs du projet avant son développement diminue le risque de refaire le travail, de retarder les plannings et de dépasser le budget. Le même principe se présente en analyse d‘impact du changement. L‘identification des impacts du changement, la planification du changement et l‘estimation des ressources requises avant d‘implémenter le changement, permettent de diminuer le risque de s‘embarquer dans des dépenses coûteuses, inutiles ou imprévisibles.

Lorsqu‘un changement se présente, plusieurs solutions sont envisageables pour résoudre le même problème. L‘analyse d‘impact du changement permet aux gestionnaires de qualifier leurs choix à base d‘informations recueillies par l‘équipe de maintenance sur la faisabilité technique du changement. L‘analyse d‘impact est donc un outil d‘aide à la décision. En effet, si un changement peut affecter un ensemble de sections disjointes du programme, les gestionnaires peuvent choisir de ne pas l‘implémenter ou de l‘examiner une autre fois pour une implémentation alternative plus sûre. L‘analyse d‘impact du changement permet de diriger les tests de régression. Ces derniers jouent un rôle intégral dans la maintenance du logiciel. Les tests de régression appliqués au logiciel modifié, permettent d‘avoir l‘assurance que le code modifié continue à satisfaire les spécifications actuelles et qu‘il ne compromet pas le comportement du code non modifié.

Suite à une modification, il faut retester toutes les parties du code qui ont été affectées directement ou indirectement par ce changement. Pour cela, il faut recenser toutes les classes qui doivent être retestées pour que le système ne perde pas ses caractéristiques initiales et continues à satisfaire les besoins des utilisateurs actuels et futurs. Sans ce recensement, on doit retester tout le logiciel, ce qui est très coûteux et très long. Ne pas tester suffisamment peut avoir une influence sur la qualité du logiciel.

Table des matières

Introduction générale
Chapitre I : Impact de changement
I.1 Introduction
I.2 Définitions et terminologie
I.2.1 Définition 1
I.2.2 Définition 2
I.3 Le besoin de maintenance
I.4 Les catégories de maintenance
I.4.1 Maintenance corrective
I.4.2 Maintenance adaptative
I.4.3 Maintenance perfective
I.4.4 Maintenance préventive
I.5 Le processus de la maintenance
I.6 Mesure de la maintenance du logiciel
I.6.1 Mesures spécifiques
I.7. Analyse d‘impact du changement
I.7.1 Processus du changement
I.7.2 Avantages de l‘analyse d‘impact
I.7.3 Difficultés de l‘analyse d‘impact
I.8 Modèle d’impact de Changement
I.8.1 Objectifs
I.8.2 Modèle Conceptuel
I.8.2.1 Changements
I.8.2.2 Liens
I.8.2.3 Impact
I.9 Travaux de recherche sur l‘analyse d‘impact de changement des systèmes OO
I. 10 Analyse d‘impact du changement et réseaux bayésiens
I.11Conclusion
Chapitre II : Réseaux bayésiens
II.1 Introduction
II.2 Pourquoi les réseaux bayésiens
II.3 Un réseau bayésien comme un système expert
II.4 Les réseaux bayésiens
II.4.1 Définition1
II.4.2 Définition2
II.4.3 Propriétés
II.4.4 La représentation graphique
II.4.5 Circulation de l‘information
II.4.6 Les chemins de circulation d‘information
II.5 La probabilité conditionnelle et le théorème de Bayes
II.6 Table de probabilités conditionnelles
II.7 Inférence
II.7.1 Définition 1
II.7.3 Définition 2
II.7.4 Définition 3
II.8 Comment calculer l‘inférence
II.8.1 Exemple explicatif
II.8.2 Les algorithmes d‘inférence
II.8.2.1 Méthodes d‘inférence exacte
II.8.2.2 Méthodes d‘inférence approchée
II.8.3. Les propriétés d‘un calcul d‘inférence
II.8.4 Apprentissage des réseaux bayésiens
II.8.4.1 Apprentissage des paramètres
II.8.4.2 Apprentissage de la structure
II.8.5 La construction d‘un réseau bayésien
II.9 Domaines d‘application des réseaux bayésien
II.10 Les outils bayésiens
II.10.1 BayesiaLab
II.10.2 Hugin
II.10.3 Bayesian network tools in Java « BNJ »
III.11 Comparaison entre les différents outils bayésien existants
II.12 Les avantages de l’approche bayesienne
II.13 Les inconvénients de l’approche bayesienne
II.10 Conclusion
Chapitre III : Conception du système
III.1.Introduction
III.2 Partie 1 : Conception du modèle « Réseau d‘impact»
III.2.1 Le réseau bayésien utilisé
III.2.2 Les différents composants du réseau d‘impact de changement
III.2.3 Affectation des paramètres
III.2.3.1 Les sommets d‘entrée
III.2.3.2 Les sommets intermédiaires
III.3 Partie 2 : Conception du système
III.3.1 Rappel sur le réseau bayésien
III.3.2 La table de probabilité
III.3.3 Les algorithme d‘inférence utilisé
III.3.3.1 Arbre de jonction
III.4 Fonctionnement du système
III.4.1 Algorithme d‘inférence
III.4.1.1 Algorithme d‘arbre de jonction « Jonction Tree»
III.5 La console
III.6 Conclusion
Chapitre IV : Implémentation du système
IV.1 Introduction
IV.2 Langage java (l‘IDE JBuilderX)
IV.2 .1 Caractéristiques du langage
IV. 3 Les interfaces d‘éditeur bayésien « Impact Bayes Net »
IV.3.1 La fenêtre de chargement d‘éditeur
IV.3.2 La fenêtre d‘éditeur du réseau bayésien
IV.3.3 La création du réseau bayésien
IV.3.4 La suppression d‘un nœud/arc
IV.3.5 La modification de variable / Fonction
IV.3.6 L‘observation d‘une variable « nœud»
IV.3.7 L‘interrogation des nœuds du réseau bayésien
IV.3.8 Interrogation d‘un fichier existant
IV.3.9 Choix d‘options
IV.3.9 .1 Algorithme d‘inférence
IV.3.9.2 Format d‘enregistrement
IV.4 La validation du système
IV.4.1 Présentation du problème
IV.4.2 Les tables de probabilités des nœuds du réseau bayésien «ASIA »
IV.4.3 Les résultats de l‘inférence sous BNJ
IV.4.4 Les résultats du réseau bayésien « ASIA » sous IBN
IV.4.5 Tableau comparatif des résultats
IV.5 Résultats et expérimentations
IV.6 Conclusion
Conclusion Générale

Cours gratuitTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

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