Cours GL2
Cours GL2
Cours GL2
Contenu de la matière :
Chapitre 1 : Processus de développement logiciel :
1) Motivations :
• Qualités attendues d'un logiciel
• Principes du Génie Logiciel
• Maturité du processus de développement de logiciel
Chapitre 3 :
1) Métriques
• Métriques de Mac Cabe
• Métriques de Halstead
• Métriques de Henry_Kafura
• Métriques Objet de Chidamber et Kemerer
• Métriques MOOD
2) Analyse et gestion des risques
3) Tests de Logiciels
• Tests Fonctionnels
• Tests Structurels
• Tests de Flots de données
• Tests orientés objets.
Chapitre 1 : Processus de développement Logiciel :
1) Motivations :
Utilisabilité :
Inclut deux points essentiels :
• Facilite d'apprentissage : comprendre ce que l'on peut faire avec le logiciel, et savoir
comment le faire.
• Facilite d'utilisation : importance de l'effort nécessaire pour utiliser le logiciel a des fins
données .
que faire pour l'assurer ?
• Analyse du mode opératoire des utilisateurs
• Adapter l'ergonomie des logiciels aux utilisateurs
Fiabilité :
Correction, justesse, conformité : le logiciel est conforme a ses spécifications, les résultats sont
ceux attendus.
Robustesse, sureté : le logiciel fonctionne raisonnablement en toutes circonstances, rien de
catastrophique ne peut survenir, même en dehors des conditions d'utilisation prévues .
Performance :
Les logiciels doivent satisfaire les contraintes de temps d'exécution
que faire pour l'assurer ?
• Créer des logiciels plus simples
• Veiller à la complexité des algorithmes
• Utiliser des machines performantes
Portabilité :
Un même logiciel doit pouvoir fonctionner sur plusieurs machines
que faire pour l'assurer ?
• Rendre le logiciel indépendant de son environnement d'exécution
• Utiliser des machines virtuelles
Ré-utilisabilité :
On peut espérer des gains considérables car dans la plupart des logiciels :
80 % du code est du < tout venant > qu'on retrouve à peu prés partout
20 % du code est spécifique
que faire pour l'assurer ?
• Abstraction, généricité (exemple : MCD générique de réservation)
• Construire un logiciel à partir de composants prêts à l'emploi < Design Patterns >
Facilité de maintenance :
Un logiciel ne s'use pas. Pourtant, la maintenance absorbe une très grosse partie des efforts de
développement (67%)
Objectifs :
• Réduire la quantité de maintenance corrective (zéro défaut)
• Rendre moins couteuses les autres maintenances
Enjeux :
Les couts de maintenance se jouent très tôt dans le processus d'élaboration du logiciel. Au fur et à
mesure de la dégradation de la structure, la maintenance devient de plus en plus difficile.
Aussi, il ne faut pas oublier que la qualité du processus de fabrication est garante de la qualité du
produit final. Pour obtenir un logiciel de qualité, il faut en maitriser le processus d'élaboration. La
vie d'un logiciel est composée de différentes étapes. La succession de ces étapes forme le cycle de
vie du logiciel. Donc, il est primordial de contrôler la succession de ces différentes étapes : utiliser
une méthode décrivant clairement les étapes à suivre pour élaborer un logiciel.
Niveau 1 Initial :
Sans intérêt : plans et contrôles inefficaces
• Processus essentiellement non contrôlé, non défini.
• Le succès dépend des individus.
Niveau 2 Reproductible :
Intuitif : dépend encore des individus
• Procédures de gestion utilisées, gestion des configurations et assurance qualité
• Pas de modèle formel de processus
Niveau 3 Défini :
Qualitatif : institutionnalisé
• Procédures formelles pour vérifier que le processus est utilisé
Niveau 4 Maitrisé :
Quantitatif : Processus de mesures
• Gestion quantitative de la qualité
Niveau 5 Optimisé :
• Améliorations retournées dans le processus
• Stratégies d'amélioration du processus
Inconvénients :
• Découverte d'une erreur entraine retour à la phase à l'origine de l'erreur et nouvelle cascade,
avec de nouveaux documents...
• Cout de modification d'une erreur important, donc choix en amont cruciaux (typique d'une
production industrielle)
• Pas toujours adapté à une production logicielle, en particulier si besoins du client changeants
ou difficiles à spécifier.
2) Pro
cessus de développement en V
Caractéristiques :
• Variante du modèle en cascade
• Mise en évidence de la complémentarité des phases menant à la réalisation et des phases de
test permettant de les valider
• Adapté pour des projets dont le domaine est bien maitrisé
Avantages :
• Une plus grande attention sur la ré utilisabilité,
• Meilleure élimination des erreurs,
• Objectifs de qualité pris en compte dès le commencement du processus de développement,
• Intègre maintenance et développement dans un même contexte.
Avantage principal : Les efforts consacrés au développement d’un prototype sont le plus
souvent compensés par ceux gagnés à ne pas développer de fonctions inutiles
Règles à observer
• Deux tâches doivent être séparées par un artéfacts
• Une tâche ne peut être exécutée tant que ses artéfacts d’entrée n’existent pas
• Il doit y avoir au moins une tâche de début et une tâche de fin
Il doit y avoir un trajet depuis chaque tâche jusqu’à la tâche de fin
Règles à observer
Les processus sont représentés par des cases qui contiennent des phrases verbales
Les flèches représentent des données et doivent être :
• accompagnées de phrases nominales
• Un processus peut être une activité ponctuelle ou continue
• Deux flèches sortant d’une case peuvent indiquer : Soit deux sorties simultanées, soit deux
sorties exclusives.
1) Gestion de Projets :
Lors de la gestion de projet on rencontre essentiellement des problème humains. Pour maitriser ses
problème il faut correctement planifier la progression du développement du logiciel et motiver et
coordonner un groupe de professionnels.
Les techniques de gestion projets logiciels sont souvent communes à la gestion de projet en
général. La différence se présente dans le problème particulier de la visibilité :
Un projet logiciel apparaît souvent à ses développeurs comme presque achevé alors qu’il ne l’est
qu’à 90%.
1.2.2 Indicateurs :
On en déduit deux indicateurs de variance traduisant les écarts entre le réel et le planifié:
• La variance de coût : VC = CBTE − CRTE. Qu’est-ce que j’ai réellement reçu (en valeur du
travail) par rapport à ce que j’ai réellement dépensé ?
• La variance de temps (par rapport à l’échéancier) : VE = CBTE − CBTP. Qu’est-ce que j’ai
réellement fait par rapport à ce que j’avais prévu de faire?
La particularité de la variance de temps est qu’elle traduit un retard sous une échelle financière. Elle
est bien sûr à associer à une estimation temporelle du retard possible.
On associe à ces indicateurs de variance deux autres indicateurs qui traduisent le même phénomène
mais sont complémentaires pour indiquer des problèmes en relatif (%)
1.2.3.Valeur acquise :
VA : Valeur acquise : représente le rapport du coût du travail effectué au coût travail nécessaire
pour tout le projet.
VA = CBTE /CBA = somme des VP pour les tâches achevées
= PA (pourcentage achevé)
Exemple :
Tache Travail estimé (jh) Travail réel à Date Date
aujourd’hui d’achèvement d’achèvement
estimée effective
A 5 10 25/01 01/02
B 25 20 15/02 15/02
C 120 80 15/05
D 40 50 15/04 15/04
E 60 50 01/07
F 80 70 01/09
Exemple :
Les durées entre une série d’erreurs sont les suivantes : 4, 3, 5, 6, 4, 6, 7. Calculons le taux d'erreur
instantané :
Si on prolonge cette courbe, on voit qu’elle coupe l’axe des abscisses (l'axe des x ) pour une valeur
de 11 erreurs environ. Le taux d’erreur devrait donc être nul (y = 0) après la 11eme erreur. Comme
7 erreurs ont été trouvées, il ne devrait plus en rester que 4.
2) Planification de projet :
La planification est un élément essentiel de la gestion de projets, il consiste à déterminer les taches à
accomplir ainsi que leurs ordre et décider des ressources à allouer aux différentes taches .
3) Assurance qualité :
La qualité est une notion difficile à définir, selon la définition de la norme ISO 8402 c'est : «
l’ensemble des caractéristiques d’une entité qui lui confèrent l’aptitude à satisfaire des besoin
exprimés et implicites ». Un logiciel est dit de qualité lorsqu'il fonctionne correctement.
Il est plus facile de mesurer les défauts que contient un logiciel que sa qualité. Pour cela, si on
souhaite juger de la qualité d'un logiciel, on se réfère au degré de mécontentement du client ou
nombre de rapports d'erreurs. On vous propose dans cette partie du cours d'utiliser les « inspections
formelles » pour assurer la qualité du logiciel produit.