Vous êtes sur la page 1sur 12

Cours Installation et maintenance des logiciels ISESTMA

2021

Chapitre II :

Les méthodes de développement et les techniques de tests logiciels


Introduction

En bref, le Génie Logiciel c’est l’ensemble des méthodes, outils et techniques utilisées pour
développer et maintenir du logiciel dans le but d’assurer la qualité et la productivité. C’est
donc l’art de la construction du logiciel. Il est basé sur des méthodologies et des outils qui
permettent de formaliser et même d'automatiser partiellement la production de logiciels, mais
il est également basé sur des concepts plus informels, et demande des capacités de
communication, d'interprétation et d'anticipation. Tout au long du processus de développement,
plusieurs méthodes et outils de tests existent.

I. Les méthodes de développement logiciel

Proposé par M. DIFFOUO TAZO Evariste Page 16


Cours Installation et maintenance des logiciels ISESTMA
2021

Nous nous intéresserons ici aux méthodes de développement logiciel. Une méthode de
développement logiciel nécessite : une modélisation (concepts manipulés) ; une notation
associée à la modélisation ; un processus de développement et un (ou des) langage(s) et
plateforme(s) cible(s).

II. La modélisation des logiciels

Modéliser un système avant sa réalisation permet de mieux comprendre le


fonctionnement du système. C’est également un bon moyen de maîtriser sa complexité et
d’assurer sa cohérence. Un modèle est un langage commun, précis, qui est connu par tous les
membres de l’équipe et il est donc, à ce titre, un vecteur privilégié pour communiquer. Cette
communication est essentielle pour aboutir à une compréhension commune aux différentes

Proposé par M. DIFFOUO TAZO Evariste Page 17


Cours Installation et maintenance des logiciels ISESTMA
2021

parties prenantes (notamment entre la maîtrise d’ouvrage et la maîtrise d’œuvre informatique)


et précise d’un problème donné. La modélisation a donc pour objectifs :
- D’identifier les caractéristiques pertinentes d’un système dans le but de pouvoir
l’étudier ;
- De faciliter la compréhension du système, synthétiser son fonctionnement (par
l’abstraction et la simplification) ;
- De le normaliser ;
- De simuler le comportement du système futur ;
- De gérer le risque (état d’avancement, découverte de problèmes, etc.) et de
Communiquer
Dans le domaine de l’ingénierie du logiciel, le modèle permet de mieux répartir les
tâches et d’automatiser certaines d’entre elles. C’est également un facteur de réduction des coûts
et des délais. Il existe plusieurs méthodes de modélisation : La modélisation formelle ; la
modélisation fonctionnelle ; la modélisation structurée et la modélisation orientée objet.

1. La modélisation formelle

Ici toutes les activités du logiciel sont validées par des preuves formelles, conception obtenue
par raffinements successifs de la machine abstraite au code. Les méthodes formelles intègrent
des langages permettant de définir toutes les contraintes et de garantir les vérifications et la
validation complète. Ces langages basés sur les mathématiques vont pouvoir prendre en compte
n’importe quel concept abstrait ou logique. Les outils sont :

- Les Automates ;
- La logique (temporelle, modale) ;
- L’Algèbre (algèbre universelle, algèbre de processus) ;

Un exemple : VDM (Vienna Description Method) : il utilise la théorie des ensembles pour
décrire les entités et les objets ; mais aussi les formules de la logique de prédicats pour spécifier
les propriétés (classes, etc.)

2. La modélisation fonctionnelle

Le principe de la modélisation fonctionnelle est de décomposer le système selon les fonctions


qu’il doit réaliser par une analyse descendante modulaire. Ici les données et les fonctions sont
modélisées séparément. C’est un bon outil de communication pour réaliser les spécifications

Proposé par M. DIFFOUO TAZO Evariste Page 18


Cours Installation et maintenance des logiciels ISESTMA
2021

fonctionnelles. Elle offre la possibilité de vérifier la cohérence du modèle (modèle semi-


formel). Elle est bien adaptée aux processus de développement séquentiels. Elle est conçue
initialement pour des applications de gestion mais ´également utilisée
dans les domaines de la production et des systèmes automatisés. Elle est souvent associée à
d’autres outils (grafcet, state charts, réseaux de Pétri).
Exemples : SADT-SART, etc.
3. La modélisation orientée objet

La modélisation orientée objet sert à décomposer le logiciel en un ensemble d’entités (objets)


qui interagissent entre elles (objet = données + fonctions). Elle permet : La réduction des couts
de développement grâce `a la modularité, à la réutilisabilité et à la compacité du code ; la
réduction des coûts de maintenance grâce à l’encapsulation (18% des coûts de maintenance sont
dus à un changement de structure de données). Elle est bien adaptée aux processus de
développements itératifs. Elle offre la possibilité de vérifier la cohérence du modèle avec OCL
(Object Constraint Language) par exemple. Ici les données et les fonctions sont encapsulées
dans les mêmes « boites » qui dialoguent entre elles (les objets) par envoi de messages.

Exemples : Booch, HOOD, OOA, OMT, UP, etc.

III. Présentation de quelques méthodes


1. MERISE
1.1. Origines et évolution de la méthode MERISE
Jusqu'aux années 70, l'informatisation des entreprises s'est attachée à l'automatisation des
processus administratifs (facturation, paye, suivi des stocks, ..) avec une technologie encore
coûteuse. Ce type d'informatisation privilégiait les traitements par rapport au partage des
informations. Les méthodes de mise en œuvre de cette génération étaient destinées à concevoir
des "chaînes de traitements" avec l'approche suivante : à partir des résultats à produire, définir
les traitements à effectuer, puis en déduire les données nécessaires pour alimenter les
traitements. La structure des données mémorisées sur les fichiers était contingente aux
traitements à réaliser ; d'où une multiplication des fichiers (temporaires ou permanents)
générant une redondance importante des informations mémorisées. Nous retiendrons de ces
premières méthodes, les deux plus marquantes, MINOS et CORIG, dont des propositions ont
été reprises dans Merise. Début des années 70, c'est l'apparition des systèmes transactionnels,
de la multiprogrammation, des écrans claviers, des disques de grande capacité à coût

Proposé par M. DIFFOUO TAZO Evariste Page 19


Cours Installation et maintenance des logiciels ISESTMA
2021

abordable, mais aussi la concurrence stimulante de la mini-informatique et le développement


des premiers systèmes de gestion de bases de données. Tous ces éléments ont conduit les
informaticiens à reconcevoir des applications intégrées en essayant de tirer parti au mieux de
cette évolution. C'est l'époque des "transpositions" ou "reconversions" de systèmes importants.
La méthode Merise naît officiellement, marquant ainsi l'apparition de méthodes complètes qui
ambitionnent de répondre efficacement aux problèmes posés par la conception des systèmes
d'information adaptés aux fonctionnements des entreprises et technologies informatiques des
années 80.

1.2. Modélisation systémique de l’entreprise avec MERISE

Au travers de l’étude des niveaux de complexité, nous avons vu progressivement apparaître le


rôle du sous-système d’information (émergence de processus de mémorisation). Nous pourrons
ainsi mieux situer les fonctions et le rôle du système d’information de l’entreprise et ses
relations avec les autres sous-systèmes, le sous-système opérant et le sous-système de pilotage.

La figure suivante illustre la modélisation systémique de l’entreprise (ou organisation), avec


ses trois sous-systèmes : système opérant (SO), Système d’information (SI) et système de
pilotage (SP).

• Le système opérant est le siège de l’activité productive de l’entreprise. Cette activité consiste
en une transformation de ressources ou flux primaires. Ces flux primaires peuvent être des flux
de matière, des flux financiers, des flux de personnel, des flux d’actifs ou enfin des flux
d’information.

• Le système de pilotage est le siège de l’activité décisionnelle de l’entreprise. Cette activité


décisionnelle est très large et est assurée par tous les acteurs de l’entreprise, à des niveaux

Proposé par M. DIFFOUO TAZO Evariste Page 20


Cours Installation et maintenance des logiciels ISESTMA
2021

divers, depuis les acteurs agissant plutôt dans l’activité productrice de l’entreprise, à ceux
dirigeant cette dernière.

Elle permet la régulation, le pilotage mais aussi l’adaptation de l’entreprise à son


environnement. C’est cette activité qui conduira l’évolution, décidera notamment de
l’organisation et de l’évolution des systèmes opérants et d’information.

• Le système d’information que nous considérons, pour l’instant, comme un système de


mémorisation dont le rôle est de permettre au système de pilotage d’assurer ses fonctions,
notamment en assurant son couplage avec le système opérant. Les fonctions primaires du
système d’information sont représentées de manière détaillée dans la figure suivante :

1.3. Les trois composantes de Merise

MERISE est une méthode de conception de système d’information s’inscrit dans trois
dimensions exprimant :
• la démarche ou cycle de vie,
• le raisonnement ou cycle d’abstraction,
• la maîtrise ou cycle de décision.
La mise en œuvre de la méthode Merise doit toujours se repérer par rapport à ces trois
dimensions. Tout instant de la conception doit pouvoir se situer dans ce référentiel.
Ces trois dimensions sont présentées dans la figure suivante :

Proposé par M. DIFFOUO TAZO Evariste Page 21


Cours Installation et maintenance des logiciels ISESTMA
2021

La méthode Merise propose, pour le déroulement du cycle de vie, le découpage de ces


grandes périodes en différentes étapes (voir figure suivante).

Pour Merise quatre niveaux d’abstraction existe : le niveau conceptuel, le niveau


organisationnel, le niveau logique et le niveau physique.
Les deux premiers niveaux sont adaptés à la conception du système d’information
organisationnel (SIO), les deux derniers à la conception du système d’information informatisé
(SII). La figure suivante présente les quatre niveaux d’abstraction.

Les différents modèles des Systèmes d’information du niveau d’abstraction sont les suivant :

Proposé par M. DIFFOUO TAZO Evariste Page 22


Cours Installation et maintenance des logiciels ISESTMA
2021

Dans la pratique, le cycle de décision est intégré dans le cycle de vie. Cela se traduit par
des résultats types à l'issue de chaque étape et par des décisions attendues, comme le montre

la figure suivante :

2. UML
Les méthodes utilisées dans les années 1980 pour organiser la programmation
impérative ou structurée ou fonctionnelles (notamment Merise) étaient fondées sur la
modélisation séparée des données et des traitements.
Lorsque la programmation par objets prend de l’importance au début des années 1990,
la nécessité d’une méthode qui lui soit adaptée devient évidente. Plus de cinquante méthodes
apparaissent entre 1990 et 1995 (Booch ou OOD, OOA, Classe-Relation, Fusion, HOOD,
OMT, OOM, OOSE, etc.) mais aucune ne parvient à s’imposer. En 1994, le consensus se fait
autour de trois méthodes :

Proposé par M. DIFFOUO TAZO Evariste Page 23


Cours Installation et maintenance des logiciels ISESTMA
2021

– OMT (Object Modeling Technique) de James Rumbaugh fournit une représentation


graphique des aspects statique, dynamique et fonctionnel d’un système ;
– OOD (Object-Oriented Design) ou encore Booch de Grady Booch, introduit le concept
de paquetage (package) ;
– OOSE (Object-Oriented Software Engineering) d’Ivar Jacobson fonde l’analyse sur
la description des besoins des utilisateurs (cas d’utilisation, ou use cases).
Chaque méthode avait ses avantages et ses partisans. Le nombre de méthodes en
compétition s’était réduit, mais le risque d’un éclatement subsistait : la profession pouvait se
diviser entre ces trois méthodes, créant autant de continents intellectuels qui auraient du mal à
communiquer. Événement considérable et presque miraculeux, les trois Acteurs qui régnaient
chacun sur l’une des trois méthodes se mirent d’accord pour définir une méthode commune qui
fédérerait leurs apports respectifs. UML (Unified Modeling Language) est né de cet effort de
convergence. L’adjectif unified est là pour marquer qu’UML unifie, et donc remplace. En fait,
UML n’a pas l’ambition d’être exactement une méthode : c’est un langage. L’unification a
progressé par étapes. En 1995, Booch et Rumbaugh (et quelques autres) se sont mis d’accord
pour construire une méthode unifiée, Unified Method 0.8 ; en 1996, Jacobson les a rejoints pour
produire UML 0.9. Les acteurs les plus importants dans le monde du logiciel s’associent alors
à l’effort (IBM, Microsoft, Oracle, DEC, HP, Rational, Unisys etc.) et UML 1.0 est soumis à
l’OMG1. L’OMG adopte en novembre 1997, UML 1.1 comme langage de modélisation des
systèmes d’information à objets. La dernière version diffusée par l'OMG est UML 2.5 bêta 2
depuis septembre 2013. Ci-dessous présenté la genèse de UML.

1
L’OMG (Object Management Group) est une association américaine à but non-lucratif créée en 1989 dont l’objectif
est de standardiser et promouvoir le modèle objet sous toutes ses formes. L’OMG est notamment à la base des
spécifications UML, MOF, CORBA et IDL. L’OMG est aussi à l’origine de la recommandation MDA

Proposé par M. DIFFOUO TAZO Evariste Page 24


Cours Installation et maintenance des logiciels ISESTMA
2021

UML à partir de sa version 1.3 propose neuf (9) diagrammes tandis qu’il en existe
quatorze (14) depuis UML 2.3.
Les 14 diagrammes UML sont dépendants hiérarchiquement et se complètent, de façon à
permettre la modélisation d'un projet tout au long de son cycle de vie. Ils sont regroupés en trois
grandes vues :
Diagrammes structurels ou statiques qui rassemblent :
Diagramme de classes : il représente les classes intervenant dans le système ;
Diagramme d’objets : il sert à représenter les instances de classes (objets) utilisées
dans le système ;
Diagramme de composants : il permet de montrer les composants du système d'un
point de vue physique, tels qu'ils sont mis en œuvre (fichiers, bibliothèques, bases
de données…)
Diagramme de déploiement : il sert à représenter les éléments matériels
(ordinateurs, périphériques, réseaux, systèmes de stockage…) et la manière dont
les composants du système sont répartis sur ces éléments matériels et interagissent
entre eux.
Diagramme des paquetages : un paquetage étant un conteneur logique
permettant de regrouper et d'organiser les éléments dans le modèle UML, le
diagramme de paquetage sert à représenter les dépendances entre paquetages,
c’est-à-dire les dépendances entre ensembles de définitions.
Diagramme de structure composite : depuis UML 2.x, permet de décrire sous
forme de boîte blanche les relations entre composants d'une classe.
Diagramme de profils : depuis UML 2.2, permet de spécialiser, de personnaliser
pour un domaine particulier un meta-modèle de référence d'UML.

Diagrammes comportementaux qui rassemblent :


Diagramme des cas d'utilisation : il permet d'identifier les possibilités
d'interaction entre le système et les acteurs (intervenants extérieurs au système),
c'est-à-dire toutes les fonctionnalités que doit fournir le système.
Diagramme états-transitions : permet de décrire sous forme de machine à états
finis le comportement du système ou de ses composants.
Diagramme d'activité : permet de décrire sous forme de flux ou d'enchaînement
d'activités le comportement du système ou de ses composants.
Diagrammes d'interaction ou dynamiques qui rassemblent :
Proposé par M. DIFFOUO TAZO Evariste Page 25
Cours Installation et maintenance des logiciels ISESTMA
2021

Diagramme de séquence : représentation séquentielle du déroulement des


traitements et des interactions entre les éléments du système et/ou de ses acteurs.
Diagramme de communication : depuis UML 2.2, représentation simplifiée
d'un diagramme de séquence se concentrant sur les échanges de messages entre
les objets.
Diagramme global d'interaction : depuis UML 2.x, permet de décrire les
enchaînements possibles entre les scénarios préalablement identifiés
sous forme de diagrammes de séquences (variante du diagramme d'activité).
Diagramme de temps : depuis UML 2.3, permet de décrire les variations
d'une donnée au cours du temps.

IV. Les techniques de tests logiciels


1. Les types de tests

Les chiffres montrent que dans un processus de développement, la phase de test coute 40% de
l’ensemble (avec 40% pour l’analyse et 20% pour le codage). Les programmes de tests peuvent
parfois être plus longs que le programme à tester. Le concepteur devrait donc y penser dès le
départ.

Durant les étapes du cycle de vie, on pourra retrouver des tests aux principales étapes :
- tests de régression (suite à des modifications)
- Tests de recette : test de réception du logiciel chez le client final
- Tests intégration système : test de l’intégration du logiciel avec d’autres logiciels
- Tests système : test d’acception du logiciel avant livraison (nouvelle version par
exemple)
- Tests Intégration : test de l’intégration des différents composants (avec ou sans
hardware)
- Tests Unitaires : tests élémentaires des composants logiciels (une fonction, un
module, ...)
-Tests de non-régression

Les tests doivent permettre de détecter des erreurs ou des insuffisances dans un logiciel, en se
basant sur un référentiel défini au préalable. On retrouve :
- les tests de vérification : il s’agit de s’assurer que le système est conforme aux spécifications
définies initialement.
Proposé par M. DIFFOUO TAZO Evariste Page 26
Cours Installation et maintenance des logiciels ISESTMA
2021

- les tests de correction : il s’agit de s’assurer que le système fournit des résultats exacts.
- les tests de validation : il s’agit de s’assurer que le système répond aux attentes de l’utilisateur
et aux contraintes de l’environnement.

2. Les formes / types de tests

3. Différentes étapes du test logiciel

Le test du logiciel commence dès la première phase du projet. Ci-dessous le cycle de test logiciel

Proposé par M. DIFFOUO TAZO Evariste Page 27

Vous aimerez peut-être aussi