Programmation Orientée Objet en C++       6ème Partie: Qualité du Logiciel                Fabio Hernandez              Fab...
Vue dEnsemble   Notions de base   Types, variables, opérateurs   Contrôle dexécution   Fonctions   Mémoire dynamique   Qua...
Table des Matières   Qualité du logiciel   Facteurs de qualité   Apport de la technologie orientée objet   Maintenance du ...
Qualité du Logiciel   Le génie logiciel sintéresse à la production du logiciel de   qualité   Les techniques orientées obj...
Qualité du Logiciel (suite)   Les facteurs externes sont perceptibles par les utilisateurs du   produit logiciel   Le but ...
Facteurs de Qualité   Correction          capacité dun produit logiciel à accomplir sa tâche exacte, telle que          dé...
Facteurs de Qualité (suite)   Robustesse          capacité des systèmes de réagir correctement aux conditions anormales   ...
Facteurs de Qualité (suite)   Extensibilité          degré de facilité dadaptation des produits logiciels aux modification...
Facteurs de Qualité (suite)   Extensibilité (suite)          deux principes essentiels pour améliorer lextensibilité:     ...
Facteurs de Qualité (suite)   Compatibilité          facilité de combiner des éléments logiciels avec dautres          cha...
Facteurs de Qualité (suite)   Efficacité (suite)          dans certains situations lefficacité a des effets sur la correct...
Facteurs de Qualité (suite)   Facilité dutilisation (suite)          un système bien conçu autour dune structure claire a ...
Facteurs de Qualité (suite)   Fonctionnalité          ensemble de possibilités offertes par un système          jusquoù al...
Facteurs de Qualité (suite)   Intégrité          capacité dun produit logiciel de protéger ses composants (programmes,    ...
Facteurs de Qualité (suite)   Documentation (suite)          la documentation interne, qui permet aux développeurs de comp...
Apport de la technologie objet   comment la technologie OO améliore-t-elle ces facteurs de   qualité?   la méthode OO enco...
Apport de la technologie objet (suite)   les techniques OO permettent de construire systèmes plus   rapidement et à un coû...
Maintenance du Logiciel   Maintenance cest ce qui arrive quand un produit est délivré   pour son utilisation   Le coût de ...
Maintenance du Logiciel (suite)                                                  Changements dans la spécification        ...
Résumé   La qualité du logiciel est un compromis entre un ensemble   dobjectifs différents   Les facteurs externes, percep...
Prochain SlideShare
Chargement dans…5
×

Partie 6: Qualité du Logiciel — Programmation orientée objet en C++

1 744 vues

Publié le

Support material for a continued education course "Introduction to object oriented programming in C++".
In French.

0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 744
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
118
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Partie 6: Qualité du Logiciel — Programmation orientée objet en C++

  1. 1. Programmation Orientée Objet en C++ 6ème Partie: Qualité du Logiciel Fabio Hernandez Fabio.Hernandez@in2p3.fr
  2. 2. Vue dEnsemble Notions de base Types, variables, opérateurs Contrôle dexécution Fonctions Mémoire dynamique Qualité du logiciel Evolution du modèle objet Objets et classes Fonctions membres Classes génériques Héritage Polymorphisme Héritage multiple Entrée/sortiePOO en C++:Qualité du Logiciel 152 © 1997-2003 Fabio HERNANDEZ
  3. 3. Table des Matières Qualité du logiciel Facteurs de qualité Apport de la technologie orientée objet Maintenance du logiciel RésuméPOO en C++:Qualité du Logiciel 153 © 1997-2003 Fabio HERNANDEZ
  4. 4. Qualité du Logiciel Le génie logiciel sintéresse à la production du logiciel de qualité Les techniques orientées objet aident à produire des logiciels de bonne qualité La qualité du logiciel est le résultat de la combinaison de plusieurs facteurs internes et externes Les facteurs internes sont perceptibles uniquement par les personnes ayant accès aux sources du logiciel (développeurs) modularité lisibilité facilité de modification ...POO en C++:Qualité du Logiciel 154 © 1997-2003 Fabio HERNANDEZ
  5. 5. Qualité du Logiciel (suite) Les facteurs externes sont perceptibles par les utilisateurs du produit logiciel Le but est daméliorer la qualité des facteurs externes Les techniques orientées objet aident à améliorer la qualité interne comme un moyen datteindre la qualité externePOO en C++:Qualité du Logiciel 155 © 1997-2003 Fabio HERNANDEZ
  6. 6. Facteurs de Qualité Correction capacité dun produit logiciel à accomplir sa tâche exacte, telle que définie dans la spécification cest une qualité indispensable suppose davoir écrit une spécification précise des besoins du système à construire, ce qui est en soi une tâche difficile cest une qualité conditionnée: le logiciel étant construit en couches, il sagit de garantir que chaque couche est correcte, en supposant que les couches inférieures le sont aussi Application Bibliothèques de lApplication Bibliothèques Standard Compilateur Système dexploitation MatérielPOO en C++:Qualité du Logiciel 156 © 1997-2003 Fabio HERNANDEZ
  7. 7. Facteurs de Qualité (suite) Robustesse capacité des systèmes de réagir correctement aux conditions anormales la correction fait référence au comportement du système dans les cas prévus dans la spécification la robustesse caractérise le comportement dans des situations en dehors de la spécification la notion de normalité ou anormalité est relative à la spécification un cas anormal est un cas qui nest pas traité dans la spécification normal ne veut pas dire souhaitable, mais prévu lors de la conception du système il y a toujours des cas que la spécification ne traite pas explicitement si ces cas arrivent, le système ne doit pas provoquer des effets catastrophiques (produire des messages derreur, travailler en mode dégradé, terminer lexécution de façon appropriée)POO en C++:Qualité du Logiciel 157 © 1997-2003 Fabio HERNANDEZ
  8. 8. Facteurs de Qualité (suite) Extensibilité degré de facilité dadaptation des produits logiciels aux modifications à la spécification relative la taille du système: plus le système est grand, plus ladaptation aux changements est difficile à la base de chaque système logiciel il y a un besoin humain: les modifications sont donc inévitables (par exemple changements de la loi) le changement est une constante dans le développement des produits logiciel: changements de besoins, de notre compréhension des besoins, des algorithmes, de la représentation des données, des techniques dimplémentation supporter les changements est un des objectifs principaux de la technologie objetPOO en C++:Qualité du Logiciel 158 © 1997-2003 Fabio HERNANDEZ
  9. 9. Facteurs de Qualité (suite) Extensibilité (suite) deux principes essentiels pour améliorer lextensibilité: simplicité de conception: une architecture simple est plus facile à adapter décentralisation: plus les modules sont autonomes, plus il y a de chance que les modifications affectent un seul ou un nombre limité de modules Réutilisabilité capacité des composants logiciel de servir pour la construction de plusieurs applications différentes les solutions logiciel suivent certains patrons: il devrait être possible dexploiter ces éléments communs pour éviter de réinventer des solutions à chaque fois en conséquence, moins de logiciel à écrire et à tester plus de temps à consacrer pour améliorer les autres facteurs de qualitéPOO en C++:Qualité du Logiciel 159 © 1997-2003 Fabio HERNANDEZ
  10. 10. Facteurs de Qualité (suite) Compatibilité facilité de combiner des éléments logiciels avec dautres chaque élément logiciel a besoin dinteragir avec dautres chacun fait des suppositions différentes sur lenvironnement exemple: format des fichiers sur les différents systèmes dexploitation Efficacité capacité de demander peu de ressources machine (processeur, espace mémoire interne et externe, bande passante des dispositifs de communications, ...) pour accomplir la tâche en rapport avec lextensibilité et la réutilisabilité: les optimisations trop agressives peuvent rendre le logiciel tellement spécialisé quil devient difficile de le modifier et de le réutiliser la capacité de calcul est en constante croissance: pas besoin de gagner une micro-seconde si cela compromet les autres facteurs de qualitéPOO en C++:Qualité du Logiciel 160 © 1997-2003 Fabio HERNANDEZ
  11. 11. Facteurs de Qualité (suite) Efficacité (suite) dans certains situations lefficacité a des effets sur la correction (météo, temps réel,...) Portabilité facilité de transférer les produits logiciel sur plusieurs plate-formes lexpression plate-forme englobe la combinaison matériel et logiciel (processeur, système dexploitation, système de fenêtrage,...) Facilité dutilisation degré de facilité avec laquelle des personnes de qualifications différentes peuvent apprendre à utiliser les produits logiciels pour résoudre des problèmes facilité dinstallation, de desintallation, dopération, de surveillance, ... ce facteur prend en compte les différents niveaux dexpertise des utilisateurs potentiels (novice, intermédiaire, expert,...)POO en C++:Qualité du Logiciel 161 © 1997-2003 Fabio HERNANDEZ
  12. 12. Facteurs de Qualité (suite) Facilité dutilisation (suite) un système bien conçu autour dune structure claire a tendance à être plus facile à comprendre et à utiliser le concepteur du système doit faire un effort pour comprendre la spécificité de la communauté des utilisateurs ciblés les systèmes à succès vont toujours au delà de laudience initiale prévue par le concepteur (FORTRAN, UNIX,...) un système conçu pour un groupe spécifique dutilisateurs se base sur des suppositions qui ne sont pas forcement vraies pour une audience plus vaste les concepteurs des interfaces homme-machine font des suppositions aussi limitées que possible à propos des utilisateursPOO en C++:Qualité du Logiciel 162 © 1997-2003 Fabio HERNANDEZ
  13. 13. Facteurs de Qualité (suite) Fonctionnalité ensemble de possibilités offertes par un système jusquoù aller? Combien est-il suffisant? lintroduction de nouvelles fonctionnalités peut induire une perte de cohérence du système, et donc impacter sa facilité dutilisation Opportunité (Timeliness) qualité dun produit logiciel dêtre disponible au moment où les utilisateurs le désirent Verifiabilité facilité de préparation de procédures dacceptation, des données de test et des procédures pour détecter les problèmesPOO en C++:Qualité du Logiciel 163 © 1997-2003 Fabio HERNANDEZ
  14. 14. Facteurs de Qualité (suite) Intégrité capacité dun produit logiciel de protéger ses composants (programmes, données,...) contre les accès et les modifications non autorisés Réparabilité degré de difficulté de détection et réparation des défauts Economie qualité dun produit logiciel dêtre terminé dans le budget affecté Documentation ce nest pas un facteur de qualité en soi, mais plutôt une conséquence dautres facteurs la documentation externe, qui permet aux utilisateurs dun système de le comprendre et de lutiliser correctement, est une conséquence de la facilité dutilisationPOO en C++:Qualité du Logiciel 164 © 1997-2003 Fabio HERNANDEZ
  15. 15. Facteurs de Qualité (suite) Documentation (suite) la documentation interne, qui permet aux développeurs de comprendre la structure et limplémentation du système, est une conséquence de la nécessité dêtre extensible la documentation des composants, permettant aux développeurs de comprendre ses fonctionnalités sans comprendre son implémentation, est une conséquence de la nécessité de réutilisationPOO en C++:Qualité du Logiciel 165 © 1997-2003 Fabio HERNANDEZ
  16. 16. Apport de la technologie objet comment la technologie OO améliore-t-elle ces facteurs de qualité? la méthode OO encourage un style de conception commun et des interfaces entre modules standardisés (compatibilité) la méthode encourage labstraction et lencapsulation en séparant spécification et implémentation (portabilité) des mécanismes comme le polymorphisme et la résolution dynamique aident à écrire des systèmes capables de sadapter automatiquement à la plate-forme (par exemple systèmes de fenêtrage) la réutilisation de composants de qualité industrielle résulte en des gains considérables en performancePOO en C++:Qualité du Logiciel 166 © 1997-2003 Fabio HERNANDEZ
  17. 17. Apport de la technologie objet (suite) les techniques OO permettent de construire systèmes plus rapidement et à un coût inférieur et facilitent lajout des nouvelles fonctionnalitésPOO en C++:Qualité du Logiciel 167 © 1997-2003 Fabio HERNANDEZ
  18. 18. Maintenance du Logiciel Maintenance cest ce qui arrive quand un produit est délivré pour son utilisation Le coût de la maintenance du logiciel est estimé à 70% du coût total du produit Quest-ce quon entend par maintenance? Au fur et à mesure que la spécification du logiciel change comme conséquence des changements dans le monde externe, le logiciel doit aussi évoluer La correction des défauts fait aussi partie de la maintenancePOO en C++:Qualité du Logiciel 168 © 1997-2003 Fabio HERNANDEZ
  19. 19. Maintenance du Logiciel (suite) Changements dans la spécification Changements du format des données 41,80 % 17,60 % Correction durgence des défauts Corrections de routine Modifications du matériel 12,40 % Documentation 3,40 % Améliorations de performance 4,00 % 9,00 % 5,50 % 6,20 % AutresSource: OOSC [B. Meyer 1997]POO en C++:Qualité du Logiciel 169 © 1997-2003 Fabio HERNANDEZ
  20. 20. Résumé La qualité du logiciel est un compromis entre un ensemble dobjectifs différents Les facteurs externes, perceptibles par les utilisateurs du système, doivent être différenciés des facteurs internes, perceptibles par les développeurs et concepteurs Ce qui importe ce sont les facteurs externes, dont la qualité est conditionnée par la qualité des facteurs internes La technologie OO peut aider à améliorer la qualité Le coût du logiciel est impacté par le coût de la maintenance, principalement dû à la difficulté dimplémenter des modifications et par la forte dépendance des logiciels sur le format physique des donnéesPOO en C++:Qualité du Logiciel 170 © 1997-2003 Fabio HERNANDEZ

×