Depuis le siècle dernier, la technologie a connu une croissance quasi exponentielle et touche presque toutes les branches de la vie industrielle, économique et sociale, chacun dans son domaine spécifique. Elle a accéléré le développement et la croissance économique de beaucoup de pays, il en est de même jusqu’à améliorer le bien être de la .population La technologie, ce domaine qui aide à améliorer et à augmenter les différentes productions industrielles et qui tend à faciliter les tâches antérieurement difficiles à faire ou bien requérant le concours de plusieurs acteurs, trouve encore son application plus avancée en développant en son sein l’électronique, qui est un domaine de la physique appliquée exploitant les variations de grandeurs électriques (courant, tensions, charges, etc.) en vue d’une utilisation bien spécifique. Devant ce développement à pas de géant de la technique, l’électrique et l’électronique, les besoins deviennent exigeants et nombreux voire complexes, d’où en fait la naissance de l’informatique qui est une science du traitement automatique de l’information, rendant encore plus aisée toutes les opérations tant dans les industries que dans la vie courante de tout homme. En effet dans toutes les branches possédant des informations qu’il faudrait gérer méthodiquement et rapidement soit en vue d’une prise de décision immédiate ou bien en vue d’effectuer une tâche avec toute la précision voulue, l’Informatique joue alors un rôle prépondérant
MAINTENANCE D’UN LOGICIEL
La vie d’un logiciel commence lorsqu’une organisation (par exemple l’entreprise) décide, pour répondre à ses besoins, à le construire. Elle passe par diverses activités de conception et réalisation. Puis elle connaît une période plus ou moins longue d’utilisation et d’adaptation. Enfin, elle se termine lorsque l’Entreprise estime que le logiciel est devenu obsolète. Cette simple définition de la vie d’un logiciel n’est pas facile à réaliser. Il faut une bonne organisation, et la prise de conscience du fait que le développement du logiciel n’est pas simplement l’écriture de programmes sur une durée variant de quelques heures à quelques jours, d’ou la notion de cycle de vie (datant de 1970). Pour ce faire, ce cycle de vie contient de nombreuses étapes distinctes y compris la maintenance. Ces étapes jouent chacune des rôles importants dans la période de développement et d’utilisation d’un logiciel [4].
Les différents étapes d’un cycle de vie d’un logiciel
L’activité de développement d’un logiciel peut être perçue comme un long raisonnement mené durant un certain temps. Ce long raisonnement est habituellement décomposé en de nombreuses étapes. Il existe plusieurs types de cycle de vie mais ils adoptent les mêmes définitions des différentes étapes .
a- Analyse et définitions des besoins
C’est un dialogue entre le client et le concepteur pour définir l’ensemble des fonctionnalités désirées et les contraintes à respecter. On essaie d’arriver à une compréhension totale du problème. Un cahier des charges exprime les besoins.
b- Conception du système et du logiciel
En partant de l’analyse des besoins, on décompose le système en deux parties : « matériel » et « logiciel ». Ce processus est appelé « conception du système ». C’est le processus qui consiste à représenter les diverses fonctions du système d’une manière qui permettra d’obtenir rapidement un ou plusieurs programmes réalisant ces fonctions.
c- Implémentation et tests unitaires
Lors de cette étape, on réalise un ensemble d’unités de programme écrites dans un langage de programmation exécutable. Les tests unitaires permettent de vérifier que ces unités répondent à leurs spécifications.
d- Intégration et tests du système
On intègre les unités de programme et on réalise les tests globaux pour être sûr que les besoins logiciels ont été satisfaits. Le système est alors livré au client.
e- Mise en oeuvre et maintenance
C’est l’étape la plus longue du cycle de vie d’un logiciel. L’activité de maintenance consiste à corriger les erreurs qui n’ont pas été découverts lors des étapes antérieures du cycle de vie; et aussi à améliorer la réalisation des unités du système et à augmenter ses fonctionnalités au fur et à mesure que de nouveaux besoins apparaissent. Cette étape est très intéressante car le but de ce chapitre est de décrire les activités de la maintenance et sa place dans le cycle de vie d’un logiciel.
Généralité sur la maintenance d’un logiciel
Historiquement, le terme « maintenance »a été appliqué au processus de modification d’un logiciel après sa livraison. Ces modifications peuvent être de simples changements destinés à corriger des erreurs de programmation, des changements plus profonds destinés à corriger des erreurs de conception, ou des modifications et extensions fondamentales qui correspondent à un changement dans la définition des besoins [2].
Les différents types de maintenance
Cependant, on continue d’utiliser le terme « maintenance » pour désigner toute modification à un programme destinée à corriger des erreurs ou à offrir de nouvelles fonctionnalités. Dans la maintenance d’un logiciel, on peut distinguer :
➤ La maintenance adaptative,
➤ La maintenance corrective et
➤ La maintenance perfective.
Maintenance adaptative
Ce type de maintenance consiste à adapter le logiciel aux changements de son environnement c’est à dire, on adapte le logiciel au nouvel environnement technique. Cela est indispensable lorsque pendant la période d’utilisation, on se déplace vers un autre système d’exploitation.
La maintenance corrective
La maintenance corrective consiste à corriger des erreurs qui ont pu être faits pendant la conception et la réalisation du logiciel. Plusieurs types d’erreurs peuvent être commises : mauvaise conception du logiciel, l’erreur des calculs, etc. Ces erreurs sont détectées par ceux qui exploitent le logiciel ou par ceux qui assurent la maintenance.
La maintenance perfective
La maintenance perfective consiste à effectuer les changements demandés par les utilisateurs ou par les programmeurs du système, l’ajout de module pour les besoins des utilisateurs. Une analyse effectuée par Lientz et Swanson [2] établit une répartition des diverses formes de maintenance :
➤ 65% de la maintenance perfective
➤ 18% de la maintenance adaptative
➤ 17% de la maintenance corrective .
Le cycle de maintenance
Il y a plusieurs cycles de maintenance, qui commencent toujours par l’établissement de la liste des priorités de réparation et par la désignation des équipes de maintenance. A la fin, ils aboutissent à une version du système corrigée (pour la maintenance corrective) ou évoluée (pour la maintenance perfective) ou compatible à un environnement (pour la maintenance adaptative).
Demandes de changements : Dans cette étape, on met clairement les fonctionnalités à corriger et les nouveaux besoins à ajouter.
Analyse des codes sources : Pour pouvoir trouver facilement les principales erreurs à corriger ou les besoins à ajouter, cette phase consiste à détecter l’architecture globale du logiciel, et les principaux algorithmes utilisés.
Modifications des codes sources : C’est la modification du programme proprement dit pour avoir les nouvelles fonctionnalités qu’on veut obtenir à partir de l’analyse des codes sources.
Livraison du système modifiée : Cette phase consiste à valider le nouveau produit. Une nouvelle période d’utilisation du logiciel recommence.
L’avantage de ce modèle est la rapidité de l’opération, et l’absence de règles ou de normes à respecter.
Autres modèles de maintenance
Les grands systèmes se diffèrent par leur complexité. A titre d’exemple, on peut citer le système d’exploitation. Les modèles de maintenance suivants sont beaucoup plus précis (formels) et plus détaillés par rapport au précédent. Ils se prêtent aux grands systèmes logiciels.
Ce sont :
➤ le modèle de TAUTE,
➤ le modèle IEEE.
IMPLANTATION D’UNE SOURIS ET CORRECTION DES ERREURS
Un travail d’implantation de souris a été commencé dans la version 4.2, mais la méthode utilisée a résulté au blocage du système après quelques utilisations et l’impossibilité d’utiliser le clavier dans certains cas. La correction des erreurs et l’adoption d’une autre méthode ont été nécessaires pour résoudre ces problèmes, afin d’avoir une bonne fonctionnement de la souris implantée dans le logiciel et pour rendre facile la manipulation du logiciel ACCEAO.
Les différences entre la version 4.2 et la version 4.3
Lorsqu’on parle d’une nouvelle version d’un logiciel, on pense directement à une version plus évoluée du logiciel considéré. La révision et l’amélioration d’une version peuvent être considérées comme évolution. Car dans ce cas, les différences entre deux versions successives sont inévitables.
Bref aperçu de la version 4.2
En tant que simulateur des circuits électroniques, l’ACCEAO version 4.2 conserve toutes les fonctionnalités des versions antérieures [3], telles que :
• Le traçage des diagrammes asymptotiques (de Bode),
• La possibilité de concevoir un amplificateur à transistors,
• L’analyse en régime continu,
• L’analyse en régime transitoire…
Ce logiciel possède aussi des avantages, en ne citant que sa possibilité de tourner même avec une machine bas de gamme (comme les IBM-PC, 286) [1].
Améliorations apportées par l’ACCEAO version 4.3
La version 4.3 résout les problèmes rencontrés à l’utilisation de la souris cités plus haut en exploitant une méthode complètement différente et effectuée les modifications y afférentes pour les besoins des utilisateurs et des concepteurs. Une nouvelle interface graphique qui ne perturbe ni la partie analyse ni la conception permet :
➤ d’accéder aux menus et sous-menus,
➤ de saisir les valeurs caractéristiques d’un composant,
➤ de déplacer les composants sélectionnés,
➤ d’accéder dans le digramme de Bode,
➤ de parcourir les fichiers d’aide, à l’aide de la souris sans perturber le fonctionnement du clavier.
Implantation de la souris dans le logiciel ACCEAO sous DOS
Lorsque dans un logiciel donné, on peut faire usage d’une souris, la manipulation de certaines actions du programme devient plus pratique et plus confortable. C’est une des motivations de la version 4.2, et reprise par la version 4.3.
Principe
Il a été utile et nécessaire d’insérer le nouvel fichier souris.cpp (ANNEXE) dans le programme. Ce fichier contient toutes les fonctions qui gèrent les événements et les mouvements de la souris. Toutes les fonctions se rapportant à la souris sont écrites en assembleur et utilisent l’interruption 33h [5][6]. Pour invoquer cette interruption, la fonction geninterrupt () [5][6] est exploitée. La plupart des fonctions de souris travaillent avec les registres AX, BX, CX, DX pour traiter les informations provenant du programme d’appel et lui retourner les résultats nécessaires dans ces mêmes registres. Le registre AX sert à retourner l’état de la fonction qui indique un échec de l’opération en cas d’erreur et transmis le numéro de fonction. Dans le mode de fonctionnement de la souris, l’état de ces boutons et la position du pointeur jouent un rôle important. Voici quelques fonctions se rapportant à la souris utilisées pendant le développement du logiciel ACCEAO [6].
|
Table des matières
INTRODUCTION
CHAPITRE I : MAINTENANCE D’UN LOGICIEL
1-1 Introduction
1-2 Etapes de cycle de vie d’un logiciel
a- L’analyse et définition des besoins
b- La conception de système et du logiciel
c- Implémentation et test unitaire
d- L’intégration et test du système
e- Mise en oeuvre et maintenance
1-3 Généralité sur la maintenance du logiciel
a- Les différents types de maintenance
(i) La maintenance adaptative
(ii) La maintenance corrective
(iii) La Maintenance perfective
b- Le cycle de maintenance
(i) Modèle « maintenance urgente »
(ii) Autres modèles de maintenance
c- Les facteurs affectant les coûts de maintenance
CHAPITRE II : IMPLANTATION D’UNE SOURIS ET CORRECTION DES ERRREURS
2-1 Les différences entre la version 4.2 et la version 4.3
a- Bref aperçu de la version 4.2
b- Amélioration apportée par la version 4.3
2-2 Implantation de la souris dans le logiciel ACCEAO sous DOS
a- Principe
b- Méthodes
(i) Technique de conception
(ii) Gestion d’événement de la souris et du clavier
CHAPITRE III : GUIDE D’UTILISATION DU LOGICIEL ACCEAO
3-1 Les menus
a- Le menu File
(i) Le sous-menu New
(ii) Le sous-menu Load
(iii) Le sous-menu Save
(iv) Le sous-menu Quit
b- Le menu Tools
(i) Le sous-menu device
(ii) Le sous-menu Edit
(iii) sous-menu Library
(iv) Le sous-menu source
c- Le menu Analysis
d- Le menu Design
(i) Le sous-menu Qp triangle
(ii) Le sous-menu Bode Plots
e- Le menu Help
3-2 Pour les autres fonctions
CONCLUSION
ANNEXE
REFERENCES BIBLIOGRAPHIQUES