Processus Logiciel Avancé (PDF)
Document Details
Uploaded by EfficientLoyalty1265
UIR (L'Université Internationale de Rabat)
Pr. Soumia ZITI
Tags
Summary
Cours de Processus Logiciel Avancé au Cycle d'Ingénieur, couvrant les concepts et méthodes du génie logiciel, les méthodes de spécification et de conception, la modélisation UML, les techniques avancées d'ingénierie, et les contrats en Eiffel/Java.
Full Transcript
04/10/2023 Processus Logiciel Avancé Cycle d’Ingénieur Software Engineering Pr. Soumia ZITI Professeur d’enseignement Supérieur 1 Sommaire Concepts et méthodes de génie logiciel...
04/10/2023 Processus Logiciel Avancé Cycle d’Ingénieur Software Engineering Pr. Soumia ZITI Professeur d’enseignement Supérieur 1 Sommaire Concepts et méthodes de génie logiciel Méthodes de spécification et de conception Complément en modélisation UML Techniques avancées d'ingénierie Contrats en Eiffel/Java 2 1 04/10/2023 Concepts et méthodes de génie logiciel Génie logiciel Généralités et principes Qualité logiciel et impacts Cycle de vie des logiciels Modèles linéaire: Code&Fixe, Cascade et V Modèle itératif, incrémental et en spirale Modèle Agile Critères de qualité logicielle 3 Génie Logiciel Généralité sur le Génie Logiciel Définition : Décrit l’ensemble de méthodes ( spécification, conception, test…) , techniques et outils (Atelier de Génie logiciel) nécessaires à la production de logiciels de qualité industrielle. Objectifs de génie logiciel : Satisfaire les utilisateurs, en produisant des logiciels adaptés aux besoins ; les gestionnaires, en réduisant les coûts de maintenance et les chefs de projet, en rendant les logiciels productifs dans un délai raisonnable. Risque de logiciel : Diffusion massive en pilotage, système sécuritaire, industrie nucléaire (réservation de ticket, pilotage aéronautique, diagnostique médicale, opération financière …) 4 4 2 04/10/2023 Génie Logiciel Généralité sur le Génie Logiciel Conception Développement Maintenance 5 5 Génie Logiciel Généralité sur le Génie Logiciel Logiciel : Un ensemble des documents de gestion de projet, Une spécification décrivant la liste des fonctions à remplir par le logiciel, les facteurs qualité du logiciel (portabilité, évolutivité, robustesse,...), les contraintes (performances temporelles et spatiales,...) et les interfaces avec son environnement Une conception décrivant la découpe de la spécification en modules (ou objets), la description les interfaces entre ces modules (ou objets) et la description des algorithmes mis en place Un code source et un exécutable Produit : Programmes sources et machines, des procédures et des ensembles de données enregistrées et l’ensemble des documents liés à la fabrication logiciel. 6 6 3 04/10/2023 Génie Logiciel Principes du Génie Logiciel Généralisation : regroupement d’un ensemble de fonctionnalités semblables en une fonctionnalité paramétrable (généricité, héritage) Structuration : façon d’organiser un logiciel (utilisation d’une méthode bottom-up ou top- down) Abstraction : mécanisme qui permet de présenter un contexte en exprimant les éléments pertinents et en omettant ceux qui ne le sont pas Modularité : décomposition d’un logiciel en composants discrets Documentation : gestion des documents incluant leur identification, acquisition, production, stockage et distribution Vérification : détermination du respect des spécifications établies sur la base des 7 besoins identifiés dans la phase précédente du cycle de vie 7 Génie Logiciel Caractéristiques de logiciel Produit unique: Conçu et fabriqué une seule fois (Production à l’unité), il est Semblable au génie civil (ponts, routes...) Inusable: Défauts pas dus à l'usure mais proviennent de sa conception Un objet technique fortement contraint: Le logiciel est fabriqué pour soulager l'humain d'un problème complexe. Il relève des modes de travail du domaine technique Invisible: Fabrication du logiciel est activité purement intellectuelle. Le logiciel est un produit immatériel, dont l’existence est indépendante du support physique. Difficulté de perception de la notion de qualité du logiciel Technique non mature: Encore artisanal malgré les progrès. Il est semblable à une œuvre d’art (roman, partition...) 8 8 4 04/10/2023 Génie Logiciel Plan de développement logiciel La description du logiciel à réaliser en différents niveaux de produits (programmes et documents) Les moyens matériels et/ou logiciel à mettre à disposition ou à réaliser (Méthodes, Techniques, Outils) Le découpage du cycle de vie en phases, la définition des tâches à effectuer dans chaque phase et l'identification des responsables associés Les supports de suivi de l'avancement (Planning et calendriers) Les moyens utilisés pour conduire le projet Les points clés avec ou sans intervention du client 9 9 Génie Logiciel Constat sur le développement de logiciel Le coût du développement du logiciel dépasse souvent celui du matériel, Les coûts dans le développement du logiciel : 20% pour le codage et la mise au point individuelle 30% pour la conception 50% pour les tests d'intégration Durée de vie d'un logiciel de 7 à 15 ans Le coût de la maintenance évolutive et corrective constitue la part prépondérante du coût total Plus de la moitié des erreurs découvertes en phases de tests proviennent d'erreurs introduites dans les premières étapes La récupération d'une erreur est d'autant plus coûteuse que sa découverte est tardive 10 10 5 04/10/2023 Génie Logiciel Enjeux de génie logiciel QUALITÉ PROJET COÛT DÉLAI 11 Génie Logiciel Qualité du logiciel Déf. intuitive : La qualité est la conformité avec les besoins, l’adéquation avec l’usage attendu, le degré d’excellence ou , tout simplement, la valeur de quelque chose pour quelqu’un Déf. ISO : Ensemble des traits et des caractéristiques d’un produit logiciel portant sur son aptitude à satisfaire des besoins exprimés ou implicites Déf. IEEE : La qualité du logiciel correspond au degré d’adéquation selon lequel un logiciel possède une combinaison d’attributs désirés. Déf. de Crosby : La qualité du logiciel correspond au degré de perception selon lequel un client perçoit qu’un logiciel réponde aux multiples attentes. Déf. de Pressman :Conformité aux exigences explicites à la fois fonctionnelles et de performances, aux standards de développements explicitement documentés et aux caractéristiques implicites qui sont attendues de tous logiciels professionnellement développés 12 12 6 04/10/2023 Génie Logiciel Importance de qualité de logiciel Le logiciel est une composante majeure des systèmes informatiques (environ 80% du coût) utilisés pour : Communication: système téléphonique, email, audio-visuel Santé: monitoring, détection de maladies Transport: automobile, aéronautique Echanges économiques: commerce, trading, envoi d’argent Entertainment: show, événements sportifs, cinéma Les défauts du logiciel sont extrêmement coûteux en terme: d'argent de réputation de perte de vie 13 13 Génie Logiciel Facteurs de non qualité de logiciel Mauvaise spécification : Vague, incomplète, instables… Mauvaise estimation : Fausse, oublis, précisions insuffisantes… Mauvaise répartition des tâches : Organisation inadaptée, contraintes omises et écart non détecté à temps Mauvaise réalisation technique: Codage, tests, documentation Problèmes humains: Mauvaise distribution des travaux, conflits et rétention d’’information Manque d’expérience du métier de chef de projet 14 14 7 04/10/2023 Génie Logiciel Exemples de désastres historiques 1988 abattage d'un Airbus 320 par l'USS Vincennes : affichage cryptique et confusion du logiciel de détection 1991 échec de missile patriot : calcul imprécis de temps dû à des erreurs arithmétiques London Ambulance Service Computer Aided Despatch System : plusieurs décès Le 3 Juin 1980, North American Aerospace Defense Command (NORAD) rapporta que les U.S. étaient sous attaque de missiles Echec du premier lancement opérationnel de la navette spatiale dont le logiciel d'exploitation temps réel consiste en environ 500,000 LOC : problème de synchronisation entre les ordinateurs de contrôle de vol Réseau téléphonique longue distance d'AT&T : Panne de 9 heures provoqué par un patch de code non testé 15 15 Génie Logiciel Exemple type : Ariane 5 C’est le lanceur successeur de Ariane 4 pour le lancement de satellites en orbite terrestre. 37 seconde après décollage réussi, elle explose en vol Des information incorrectes avaient été transmises mettant le système de contrôle en défaut L’expertise a montré que le défaut provenait de la tentative de conversion d’un nombre flottant 64-bit en entier signé 16-bit et qu’il n’ y avait pas de gestion d’exceptions implantées Cette partie provenait d’Ariane 4 et du fait de l’accélération et de la vitesse moins importante, le problème n’était jamais apparu ni en vol réel ni en test 16 16 8 04/10/2023 Génie Logiciel Problème de conformité aux besoins Produit réaliser Besoins exprimés Satisfaction Prestations inutiles hasardeuse hors spécification Insatisfaction client Spécifications et Satisfaction prestations inutiles Non-conformité Spécification inutiles Spécification rédigée 17 17 Génie Logiciel Exemple: Suspendre une balançoire pour enfant à un d’arbre 18 18 9 04/10/2023 Génie Logiciel Document de logiciel Cahier des charges: Description initiale des fonctionnalités désirées, généralement écrite par l’utilisateur Document de spéciations: Décrit précisément les conditions que doit remplir le logiciel. Il contient le: Modèle objet qui indique les classes et les documents principaux Scenarios des cas d’utilisation : indique les différents enchainements possibles du point de vue de l’utilisateur Calendrier du projet: Ordre des différentes tâches, les détails et ressources qu’elles demandent Plan de test du logiciel : Décrit les procédures de tests appliquées au logiciel pour contrôler son bon fonctionnement Tests de validation : tests choisis par le client pour déterminer s’il peut accepter le logiciel 19 19 Génie Logiciel Document de logiciel Plan d’assurance qualité : Décrit les activités mises en œuvre pour garantir la qualité du logiciel Manuel utilisateur : Mode d’emploi pour le logiciel dans sa version finale Code source : Code complet du produit fini Rapport des tests : Décrit les tests effectuées et les réactions du système Rapport des défauts : Décrit les comportements du système qui n’ont pas satisfait le client. Il s’agit le plus souvent de défaillances du logiciel ou d’erreurs 20 20 10 04/10/2023 Génie Logiciel Structure d’un cahier de charge Présentation du projet Contexte: Environnement dans lequel s'inscrit le projet (stratégie, enjeux, domaine, etc.) Objectifs: Résultats que le projet doit atteindre. Description de l'existant: Environnement logiciel et matériel du logiciel. Etude du système existant, le cas échéant. Critères d'acceptabilité du produit: Procédure de validation et critères d'acceptation. 21 21 Génie Logiciel Structure d’un cahier de charge Expression des besoins Besoins fonctionnels: Fonctions (ou opérations, ou encore transformations) que le logiciel doit réaliser. Les spéciations fonctionnelles peuvent être classées par ordre d’importance. Besoins non fonctionnels: Les spéciations non fonctionnelles sont toutes les spéciations qui n'expriment pas une fonction du logiciel (contraintes de performance, système d'exploitation cible...). 22 22 11 04/10/2023 Génie Logiciel Structure d’un cahier de charge Contraintes Coûts : Budget alloué au projet et moyens matériels et logiciels mis à disposition (ressource humaine incluse). Délais : Date de livraison du produit. Les Echéances intermédiaires. Contraintes complémentaire: Autres contraintes à prendre en compte (normes techniques, clauses juridiques, etc.) 23 23 Génie Logiciel Structure d’un cahier de charge Déroulement du projet Planification : Articulation des grandes phases du projet et des principaux jalons. Plan d'assurance qualité : Procédures adoptées pour contrôler la qualité du logiciel ( processus de fabrication du logiciel et produit logiciel livrable). Documentation : Description de la documentation devant accompagner le logiciel à sa livraison. Elle concerne toutes les étapes de fabrication logiciel de l’anlyse des besoins à la diffusion sur sites clients. Répartition des tâches : hiérarchiser les tâches et sous-tâches nécessaires au développement du logiciel 24 24 12 04/10/2023 Génie Logiciel Structure d’un cahier de charge Responsabilités Maîtrise d'ouvrage MOA: le maître d’ouvrage est l'entité porteuse du besoin, définissant l'objectif du projet, son calendrier et le budget consacré à ce projet. Le résultat attendu du projet est la réalisation d'un produit, appelé ouvrage. Maîtrise d'œuvre MOE: Le maître d'oeuvre est l'entité retenue par le maître d'ouvrage pour réaliser l'ouvrage, dans les conditions de délais, de qualité et de coût fixées par ce dernier conformément à un contrat. 25 25 Génie Logiciel Documents et phases de développement logiciel Document Phase de production Manuel utilisateur final Implémentation Conception architecturale Conception Plan d’assurance qualité Planification Code source Implémentation Cahier des charges Faisabilité Plan de test Spécification Manuel utilisateur préliminaire Spécification Conception détaillée Conception Estimation des coûts Planification Calendrier du projet Planification Rapport des tests Tests 26 Documentation Implémentation 26 13 04/10/2023 Génie Logiciel Activités de développement de logiciel Vérifier et valider le logiciel Assembler les composants Développer un des composants Définir comment il sera développé Définir ce qui sera développé L’organisation de ces activités et leur enchaînement définit le cycle de développement du logiciel 27 27 Cycle de vie logiciel Définition Le « cycle de vie d'un logiciel » (software lifecycle), désigne toutes les étapes du développement d'un logiciel, de sa conception à sa disparition. Ce découpage permet de définir des jalons intermédiaires permettant la validation du développement logiciel (conformité du logiciel avec les besoins exprimés), et la vérification du processus de développement (adéquation des méthodes mises en œuvre). L'origine de ce découpage provient du constat que les erreurs ont un coût d'autant plus élevé qu'elles sont détectées tardivement dans le processus de réalisation. Le cycle de vie permet de détecter les erreurs au plus tôt et ainsi de maîtriser la qualité du logiciel, les délais de sa réalisation et les coûts associés. 28 28 14 04/10/2023 Cycle de vie logiciel Activités du cycle de vie Analyse du problème Définition des objectifs : définition la finalité du projet et son inscription dans une stratégie globale. Analyse des besoins et faisabilité : l’expression, le recueil et la formalisation des besoins du demandeur et de l'ensemble des contraintes budgétaire et temporel. Conception du logiciel Générale : élaboration des spécifications de l'architecture générale du logiciel. Détaillée : définition précise de chaque sous-ensemble du logiciel. Implémentation et validation Codage : traduction dans un langage de programmation des fonctionnalités définies lors de phases de conception. Tests unitaires : vérification individuelle que chaque sous-ensemble du logiciel est implémentée conformément aux spécifications. 29 29 Activités du cycle de vie Activités du cycle de vie Test et vérification Intégration : assurance de l'interfaçage des différents éléments (modules) du logiciel. Elle fait l'objet de tests d'intégration consignés dans un document. Qualification (ou recette) : vérification de la conformité du logiciel aux spécifications initiales. Documentation : production des informations nécessaires pour l'utilisation du logiciel et pour des développements ultérieurs. Diffusion Production : exploitation et déploiement sur site du logiciel. Formation des utilisateurs: organisation des sessions de formation Maintenance : Maintenance adaptative, corrective ou évolutive : élaboration des actions correctives et évolutives sur le logiciel. 30 30 15 04/10/2023 Cycle de vie logiciel Le modèle linéaire Historiquement, la première tentative pour mettre de la rigueur dans le ‘développement sauvage’ (coder et corriger ou ‘code and fix’) a consisté à distinguer une phase d’analyse avant la phase d’implémentation (séparation des questions). Analyse Implémentation 31 31 Cycle de vie logiciel Le modèle dirigé par la programmation COMPRÉHENSION DU PROBLÈME PROGRAMMATION SI NON SATISFAIT MISE AU POINT FIN 32 32 16 04/10/2023 Cycle de vie logiciel Le modèle de transformation automatique SPÉCIFICATION VALIDATION TRANSFORMATION 33 33 Cycle de vie logiciel Le modèle en cascade Chaque étape doit être terminée avant que ne commence la suivante A chaque étape il faut produire un document de base pour l’étape suivante Chaque phase ne remet en cause que la phase précédente 34 34 17 04/10/2023 Cycle de vie logiciel Le modèle en cascade La découverte d’une erreur entraine le retour à la phase d’origine de l’erreur et nouvelle cascade avec nouveaux documents Le coût de modification d’une erreur est important Pas toujours adapté à une production logicielle, en particuliers si les besoins des clients changent ou ils sont difficiles à spécifier. 35 35 Cycle de vie logiciel Le modèle en V Variant du modèle en cascade qui met en évidence la complémentarité des phases menant à la réalisation et les phases de test permettant de les valider Rédaction Validation Expression des besoins besoins Validation Validation Spécifications fonctionnelle Analyse Validation Conception Analyse Implémentation Validation finale Maintenance Validations des étapes intermédiaires sous forme de documents 36 18 04/10/2023 Cycle de vie logiciel Le modèle en V Test unitaires : test de chaque unité de programme (méthode, classe, composant, ) indépendamment du reste du système Test d’intégration : test des interactions entre composants (interface et composants compatibles Test système : test du système complet par rapport à son cahier de charge Test d’acceptation : fait par le client, validation par rapport aux besoins initiaux Expression Tests des besoins d’acceptation Tests Spécifications système Analyse Tests Conception d’intégration Tests Implémentation unitaires Protocoles de validation définis par l’analyse descendante 37 Cycle de vie logiciel Le modèle itératif Principe: A chaque étape, on rajoute de nouvelles fonctionnalités Caractéristiques: Chaque étape est relativement simple facile à tester et essayer au fur et à mesure le logiciel développe 38 19 04/10/2023 Cycle de vie logiciel Le modèle par prototype Développement rapide d’un prototype avec le client pour valider ses besoins. Ecriture de la spécification à partir de prototype puis processus de développement linéaire. Quand on connait pas bien les spécifications. 39 Cycle de vie logiciel Le modèle par prototype Prototype jetable : Modèle gérable d’un point de vue changement des spécifications qui sont générées par prototypage Construit et utilisé lors de l’ analyse des besoins et la spécifications fonctionnelles Validation des spécifications par l'expérimentation Prototype évolutif : Première version du proto = embryon du produit final Itération jusqu'au produit final Difficulté à mettre en œuvre des procédures de validation et de vérification Modèle en spirale, développement incrémental 40 20 04/10/2023 Cycle de vie logiciel Le modèle incrémental Face aux dérives bureaucratiques de certains gros développements, et à l’impossibilité de procéder de manière aussi linéaire, le modèle incrémental a été proposé dans les années 80: Hiérarchiser les besoins du client. Concevoir et livrer au client un produit implantant un sous ensemble de fonctionnalités par ordre de priorité. 41 Cycle de vie logiciel Le modèle incrémental Le développement est réaliser par suite d’incréments ou composantes, qui correspondent à des parties des spécification, et qui viennent intégrer le noyau de logiciel L’objectif est d’assurer la meilleur adéquation aux besoins possibles Le choix d’incrément est un compromis entre la durée de développement et le niveau de prise en compte des spécification Incréments délivrés temps 42 21 04/10/2023 Cycle de vie logiciel Le modèle en spirale 43 Cycle de vie logiciel Le modèle en spirale 44 22 04/10/2023 Cycle de vie logiciel Méthode agile et Extreme Programming Nouvelle approche de développement incrémental basée sur la réalisation rapide, en équipe, d’incréments fonctionnels Caractéristiques : Emphase sur la satisfaction du client et sur le travail d'équipe Implication constante du client Programmation en binôme (revue de code permanente) Développement dirigé par les tests Cycles de développement rapides pour réagir aux changements Fonctionne pour petites équipes de développement (< 20) car communication cruciale Avantages : développement rapide en adéquation avec les besoins Inconvénients : pas de spécification, documentation = tests, maintenance ? 45 Cycle de vie logiciel Pratiques des méthodes agiles et XP Equipe Responsabilité collective du code Programmation en binôme Langage commun \ Métaphore Rythme durable Code Refactoring Conception simple Tests Intégration continue Règles de codage Projet Client sur site Tests d’acceptation Planification itérative et livraison fréquente 46 23 04/10/2023 Cycle de vie logiciel Le cycle standard XP 1. Description des besoins en scénario 2. Evaluation du coût du scénario 3. Choix des scénarios à intégrer 4. Division des tâches 5.Test de scénario 6.Implémentation du programme 7.Réorganisation du code 8.Intégration des modules développés 47 Cycle de vie logiciel Conclusion Il n’y a pas de modèle idéal car tout dépend des circonstances Le modèle en cascade ou en V est risqué pour les développements innovants car les spécifications et la conception risquent d’être inadéquats et souvent remis en cause. Le modèle incrémental est risqué car il ne donne pas beaucoup de visibilité sur le processus complet. Le modèle en spirale est un canevas plus général qui inclut l’évaluation des risques. Souvent, un même projet peut mêler différentes approches, comme le prototypage pour les sous-systèmes à haut risque et la cascade pour les sous systèmes bien connus et à faible risque. 48 24 04/10/2023 Critères de qualité logicielle ISO/IEC 9126 propose 6 caractéristiques de qualité du produit logiciel CAPACITÉ FACILITÉ FIABILITÉ FONCTIONNELLE D’UTILISATION RENDEMENT MAINTENABILITÉ PORTABILITÉ 49 Critères de qualité logicielle Capacité fonctionnelle Définition Ensemble d'attributs portant sur l'existence d'un ensemble de fonctions et leurs propriétés. Les fonctions sont celles qui satisfont aux besoins exprimés ou implicites Sous-caractéristiques Aptitude: : présence et adéquation d’une série de fonctions pour des tâches données Exactitude: fourniture de résultats ou d’effets justes ou convenus Interopérabilité: capacité à interagir avec des systèmes donnés Sécurité: aptitude à empêcher tout accès non autorisé (accidentel ou délibéré) aux programmes et données 50 25 04/10/2023 Critères de qualité logicielle Fiabilité Définition Ensemble d'attributs portant sur l'aptitude du logiciel à maintenir son niveau de service dans des conditions précises et pendant une période déterminée Sous-caractéristiques Maturité: fréquence des défaillances dues à des défauts du logiciel Tolérance aux fautes: aptitude à maintenir un niveau de service donné en cas de défaut du logiciel ou de violation de son interface Possibilité de récupération capacité à rétablir son niveau de service et de restaurer les informations directement affectées en cas de défaillance ; temps et effort nécessaire pour le faire 51 Critères de qualité logicielle Facilité d’utilisation Définition Ensemble d'attributs portant sur l'effort nécessaire pour l’utilisation et l'évaluation individuelle de cette utilisation par un ensemble défini ou implicite d’utilisateurs Sous-caractéristiques Facilité de compréhension : effort que doit faire l’utilisateur pour reconnaître la logique et sa mise en œuvre Facilité d’apprentissage: effort que doit faire l’utilisateur pour apprendre son application, il doit comprendre ce que l'on peut faire avec le logiciel, et savoir comment le faire Facilité d’exploitation : effort que doit faire l’utilisateur pour exploiter et contrôler l’exploitation de son application 52 26 04/10/2023 Critères de qualité logiciel Rendement Définition Ensemble d'attributs portant sur le rapport existant entre le niveau de service d’un logiciel et la quantité de ressources utilisées, dans des conditions déterminées Sous-caractéristiques Comportement vis-à-vis du temps: temps de réponses et de traitement ; débits lors de l’exécution de sa fonction Comportement vis-à-vis des ressources : quantité de ressources utilisées ; durée de leur utilisation lorsqu'il exécute sa fonction 53 Critères de qualité logicielle Maintenabilité Définition Ensemble d'attributs portant sur l'effort nécessaire pour faire des modifications données Sous-caractéristiques Facilité d’analyse : effort nécessaire pour diagnostiquer les déficiences et causes de défaillance ou pour identifier les parties à modifier Facilité de modification: modification : effort nécessaire pour modifier, remédier aux défauts ou changer d’environnement Stabilité : risque des effets inattendus des modifications Facilité de test : effort nécessaire pour valider le logiciel modifié 54 27 04/10/2023 Critères de qualité logicielle Maintenabilité Types de maintenabilité Perfective ou évolutive: qui consiste à maintenir les fonctionnalités antérieures tout en ajoutant des nouvelles fonctionnalités qui modifient profondément l'architecture comme le changement de SGBD… Adaptative: qui correspond à l'ajout de petites fonctionnalités qui ne modifie pas l'architecture comme passage de données par fichiers… Corrective: qui permet la correction des anomalies ou des erreurs mises à jour par le client et non pas lors des tests de vérification et de validation. 55 Critères de qualité logicielle Portabilité Définition Ensemble d'attributs portant sur l'aptitude du logiciel à être transféré d’un environnement à l’autre Sous-caractéristiques Facilité d’adaptation: possibilité d’adaptation à différents environnements donnés sans que l’on ait recours à d’autres actions ou moyens que ceux prévus à cet effet pour le logiciel considéré Facilité d’installation: effort nécessaire pour installer le logiciel dans un environnement donné Conformité aux règles de portabilité: conformité aux normes et aux conventions ayant trait à la portabilité Interchangeabilité: : possibilité et effort d’utilisation du logiciel à la place d’un autre logiciel donné dans le même environnement 56 28 04/10/2023 Critères de qualité logicielle Compromis de qualité Les critère de qualité peuvent être contradictoires, pour chaque, le choix des compromis doit s’effectuer en fonction du contexte. Facilité d’emploi vs maintenabilité Fiabilité vs portabilité Capacité vs rendement La qualité s’obtient par la mise en place de procédure et des méthodes de phase de spécification La démarche qualité ne consiste pas à corriger les défauts mais à les prévenir 57 Critères de qualité logiciel Schéma de compromis de qualité 58 29 04/10/2023 Critères de qualité logicielle Exercice : Dites à quelle dimension de la qualité du produit logiciel se rapportent les affirmations suivantes : 1. Le logiciel A est plus facile que le logiciel B à installer R : Portabilité 2. Un utilisateur prend en moyenne 2 minutes pour effectuer un test-t à l’aide d’Excel alors qu’il prendra la moitié du temps avec un S-Plus. R : Facilité d’utilisation 3. Après une panne du logiciel A, il doit reprendre depuis la dernière sauvegarde. R : fiabilité 4. Le logiciel A calcule une intégrale avec des approximations numérique alors que le logiciel B utilise le calcul symbolique. R : Capacité fonctionnelle 5. Le changement du fichier d’entrée du logiciel A engendre des modifications dans tous ses modules. R : Maintenabilité 59 Critères de qualité logicielle Exercice (suite) : 10. Les ordinateurs roulant sous linux requièrent moins de puissance que les ordinateurs roulant sous windowsXP. R : Rendement 11. Le programme A continue de rouler malgré des données manquantes. R : Fiabilité 12. Le logiciel de courrier électronique B peut aussi interpréter les fils RSS. R : Capacité fonctionnelle 13. Le logiciel A utilise le tri par insertion alors que le logiciel B utilise Quick sort. R : Rendement 14. Les commentaires du logiciel B sont inadéquats. R : Maintenabilité 15. Les logiciels java roulent facilement sur différentes architectures. R : Portabilité 60 30