introduction au logiciel
Transcription
introduction au logiciel
maintenance difficile et coûteuse délais en général dépassés non portables non modifiables ou adaptables peu efficaces ❑ ❑ ❑ ❑ ❑ Analyse orientée objets coûts imprévisibles et prohibitifs ❑ 3 contiennent trop d'erreurs ❑ Conception de systèmes programmables II ne correspondent pas aux besoins CRISE DU LOGICIEL ❑ Laboratoire d'Informatique Technique INTRODUCTION AU LOGICIEL les spécifications les méthodes d'analyse et de conception ❑ ❑ 20 40 60 80 Conception de systèmes programmables II Laboratoire d'Informatique Technique 1955 4 Matériel Analyse orientée objets 1970 1990 Maintenance Développement TENDANCE DES COUTS Analyse orientée objets l'analyse, la conception et leur frontière ❑ 2 le cycle de vie du logiciel ❑ Conception de systèmes programmables II les principes du génie logiciel le génie logiciel et ses objectifs ❑ ❑ la "crise du logiciel" CONTENU ❑ Laboratoire d'Informatique Technique L'influence des mythes ❑ DEVELOPPER DU LOGICIEL EST UN METIER PREMIERES CONCLUSIONS Conception de systèmes programmables II 7 Analyse orientée objets UNE BONNE EQUIPE DE DEVELOPPEMENT DE LOGICIEL COMPREND AUSSI DES SPECIALISTES DU DOMAINE A AUTOMATISER UNE DEMARCHE DE MODELISATION ET DE SIMPLIFICATION EST INDISPENSABLE Laboratoire d'Informatique Technique Analyse orientée objets Le manque de modélisation ❑ 5 L'absence de droit à l'erreur ❑ Conception de systèmes programmables II L'absence d'échelle QUELQUES CAUSES ❑ Laboratoire d'Informatique Technique en cas de retard, il suffit de rajouter des programmeurs ❑ LE CREDO Conception de systèmes programmables II 8 Analyse orientée objets IL EST NECESSAIRE ET POSSIBLE DE SORTI DE LA CRISE DU LOGICIEL Laboratoire d'Informatique Technique Analyse orientée objets les spécifications peuvent changer car le logiciel est facilement modifiable ❑ 6 quand le programme fonctionne, c'est terminé ❑ Conception de systèmes programmables II une idée grossière du logiciel est suffisante pour commencer QUELQUES MYTHES ❑ Laboratoire d'Informatique Technique LE GENIE LOGICIEL ET SES OBJECTIFS sûrs compréhensibles qui répondent aux spécifications ✔ ✔ ✔ Analyse orientée objets LES OBJECTIFS: efficacité 9 Analyse orientée objets règle des 80 - 20 ✔ 11 efficacité macroscopique (vue unifiée du problème) ✔ Conception de systèmes programmables II efficacité microscopique (généralement considérée trop tôt) ✔ L'efficacité résulte d'un compromis entre le temps d'exécution et l'encombrement: Laboratoire d'Informatique Technique Conception de systèmes programmables II efficaces ✔ en respectant les délais aisément modifiables ✔ Le génie logiciel a été créé en réaction à la crise, avec pour objectif de créer des logiciels: Laboratoire d'Informatique Technique LES OBJECTIFS: sûreté et lisibilité Analyse orientée objets 12 Analyse orientée objets LISIBILITE ✔ directement liée à la gestion de la complexité ✔ on écrit le code une fois, mais on le lit à de nombreuses occasions SURETE ✔ prévention des pannes ✔ récupération en cas de pannes ✔ doit être considérée très tôt dans le processus de développement Conception de systèmes programmables II ❑ ❑ Laboratoire d'Informatique Technique 10 il faut séparer le quoi du comment Conception de systèmes programmables II ✔ la conception doit transparaître dans la solution il faut assurer l'invariance logique vis à vis des modifications matérielles ✔ ✔ on doit pouvoir connaître les effets d'un changement LES OBJECTIFS: modifiables ✔ Laboratoire d'Informatique Technique LES PRINCIPES DU GENIE LOGICIEL ✔ l'uniformité la complétude la "confirmabilité" ✔ ✔ ✔ LES PRINCIPES DU GENIE LOGICIEL DISSIMULATION DE L'INFORMATION Analyse orientée objets évite de base des décisions à haut niveau sur des caractéristiques de bas niveau ✔ 15 renforce l'abstraction en supprimant les détails ✔ Conception de systèmes programmables II renforcée par des interfaces bien définies ✔ C'est rendre inaccessibles les détails de l'implantation Laboratoire d'Informatique Technique Analyse orientée objets on peut se baser sur plusieurs types d'abstraction: fonctionnelle, de donnée, d'objet ✔ la structuration ✔ 13 principale technique de gestion de la complexité ✔ la modularité ✔ Conception de systèmes programmables II chaque niveau de décomposition doit représenter une abstraction ✔ la dissimulation de l'information ✔ Analyse orientée objets 16 Analyse orientée objets moyens de vérification (couplage et cohésion) ✔ Conception de systèmes programmables II 2 approches: top-down (descendante) bottom-up (ascendante) nécessite des interfaces bien définies permet de gérer la complexité LES PRINCIPES DU GENIE LOGICIEL LA MODULARITE ET LA STRUCTURATION 14 ✔ ✔ ✔ Laboratoire d'Informatique Technique Conception de systèmes programmables II omettre temporairement les autres ✔ extraire les éléments essentiels LES PRINCIPES DU GENIE LOGICIEL L'ABSTRACTION l'abstraction Laboratoire d'Informatique Technique ✔ Pour atteindre ses objectifs, le génie logiciel fait appel à 7 principes: Laboratoire d'Informatique Technique systèmes réactifs ✔ systèmes interactifs ✔ systèmes temps-réel ❑ Analyse orientée objets Analyse orientée objets exemples typiques ❑ le temps de réponse n'est pas très critique exemples typiques ❑ ❑ 19 Analyse orientée objets programmes de CAO Minitel / Videotex traitement de texte / éditeurs / tableurs Conception de systèmes programmables II ✓ ✓ ✓ Conception de systèmes programmables II 20 Analyse orientée objets commandes de machines, de robots ou de procédés industriels commutation téléphonique applications aéronautiques, spatiales et militaires ... ne doivent pas mettre en danger le système externe ❑ ✓ ✓ ✓ ✓ fonctionnent en général indéfiniment ❑ ❑ ne font rien sans demande préalable de l'utilisateur ❑ plusieurs stimuli peuvent se produire et doivent être traités en parallèle en dialogue avec un ou des utilisateurs via des capteurs et des actionneurs ❑ doivent réagir dans un temps borné aux sollicitations du système externe SYSTEMES TEMPS-REEL 18 ❑ Laboratoire d'Informatique Technique Conception de systèmes programmables II exemples typiques ✔ programmes de calcul ✔ gestion de la paie ✔ ... ❑ sont connectés à un système externe (procédé) SYSTEMES INTERACTIFS 17 le temps d'exécution n'est pas critique prennent ou demandent des données en entrée et produisent un résultat ❑ ❑ ont une durée de fonctionnement limitée SYSTEMES TRANSFORMATIONNELS ❑ Laboratoire d'Informatique Technique ❑ Laboratoire d'Informatique Technique Conception de systèmes programmables II peu de systèmes tombent dans une seule catégorie systèmes transformationnels ❑ CLASSIFICATION DES SYSTEMES INFORMATIQUES Laboratoire d'Informatique Technique 0.2 23 Analyse orientée objets Conception de systèmes programmables II 24 Analyse orientée objets les résultats des analyses de faisabilité ❑ 1 0.5 les sources d'information sur le domaine ❑ 2 Acceptation Opération L'ANALYSE Analyse orientée objets les exigences du client Test 22 C'est le processus qui partant des exigences du client vise à obtenir un cahier des charges, c'est à dire une description précise de ce que doit faire le logiciel. Entrent dans ce processus: Laboratoire d'Informatique Technique Conception de systèmes programmables II ❑ Exigences Codage Conception COUT DES ERREURS Analyse orientée objets développement 20-50% conception 30% codage 15-20% analyse 25% tests 20-25% CYCLE DE VIE (proportions) maintenance 50-80% Laboratoire d'Informatique Technique 5 10 20 Conception de systèmes programmables II Laboratoire d'Informatique Technique 21 Mort définition du logiciel validation conception préliminaire validation conception détaillée validation codage & dévermin. test de dével.tests & préopérations test de valid. opérations & mainten. revalidation abandon CYCLE DE VIE (modèle de la chute d'eau) Conception de systèmes programmables II validation préanalyse Laboratoire d'Informatique Technique c'est à ce niveau que se pratiquent les études de faisabilité ❑ les spécifications ❑ Conception de systèmes programmables II 27 Analyse orientée objets Analyse orientée objets en cas d'arrêt d'urgence, les sorties doivent être mise en état de sécurité ❑ 28 à la mise sous tension, le système doit s'auto-tester ❑ Conception de systèmes programmables II le système doit être capable d'acquérir 1000 points par seconde omissions contradictions ambiguïtés duplicata imprécisions trop de conception pas de priorités informations sans objet ou inutiles ❑ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ si un noeud du réseau tombe en panne, le réseau doit se reconfigurer dynamiquement ❑ il y d'ordinaire un ou plusieurs des problèmes suivants ❑ tous les calculs doivent se faire avec 10 chiffres EXEMPLES DE "QUOI" ❑ Laboratoire d'Informatique Technique les exigences du client sont rarement "propres" PROBLEMES AVEC LES EXIGENCES frontière entre analyse et conception ❑ Analyse orientée objets meta-exigences ❑ 26 l'analyse dit le "QUOI" non le "COMMENT" ❑ Conception de systèmes programmables II problèmes avec les exigences ANALYSE et CONCEPTION: les difficultés ❑ Laboratoire d'Informatique Technique ❑ Laboratoire d'Informatique Technique Analyse orientée objets il est bon de faire précéder l'analyse d'une étude du domaine ❑ 25 les erreurs à ce niveau ne sont souvent découvertes que très tard ❑ Conception de systèmes programmables II c'est un processus difficile qui fait appel aux capacités de l'analyste à ✓ manipuler l'abstraction ✓ modéliser LE PROCESSUS D'ANALYSE ❑ Laboratoire d'Informatique Technique la fin du fichier sera le caractère VT ❑ FRONTIERE ENTRE ANALYSE ET CONCEPTION un description précise et complète de la solution qui sera fournie au client, ainsi qu'un moyen de juger les alternatives de conception ✓ Analyse orientée objets la proposition de 2 ou 3 solutions possibles avec analyse complète et précise de ces solutions ✓ 31 la description de l'interaction du concept, système ou phénomène avec l'environnement existant ou proposé ✓ Conception de systèmes programmables II un examen du concept, système ou phénomène avec l'intention de le comprendre et de le décrire de façon précise ✓ dire que l'analyse ne concerne que le quoi n'est pas suffisant, il faut que sorte de l'analyse Laboratoire d'Informatique Technique Analyse orientée objets l'état des fins de course devra être lu dans un registre de 8 bits ❑ 29 pour remplacer une fiche d'outil, il faut d'abord détruire l'ancienne puis ajouter la nouvelle ❑ Conception de systèmes programmables II les fonctions sin et cos seront évaluées avec des approximations en séries EXEMPLES DE "COMMENT" ❑ Laboratoire d'Informatique Technique = description précise SPECIFICATIONS ou CAHIER DES CHARGES Conception de systèmes programmables II 32 Analyse orientée objets pour être certain qu'un programme fasse exactement ce que l'on veut, il faut d'abord dire exactement ce que l'on veut qu'il fasse Laboratoire d'Informatique Technique Analyse orientée objets Il faut minimiser le nombre des meta exigences ❑ 30 C'est une décision de conception effectuée par le client. ❑ Conception de systèmes programmables II Une meta-exigence est l'indication de la manière d'accomplir un comportement particulier du système qui est fourni et exigé par le client. Il peut, par exemple, spécifier l'algorithme de cryptage META-EXIGENCES ❑ Laboratoire d'Informatique Technique ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ spécifications standardisées spécifications semi-formelles spécifications formelles ❑ ❑ ❑ Analyse orientée objets spécifications informelles ❑ 35 n'existent pas FORMES DES SPECIFICATIONS Analyse orientée objets ❑ Conception de systèmes programmables II Laboratoire d'Informatique Technique 33 une description précise et concise du probléme l'ordinateur cible (matériel, système d'exploitation) les fonctions du logiciel les caractéristiques d'utilisation (performances, contraintes, qualité) ce qu'il ne faut pas faire l'interface utilisateur les extensions envisagées un glossaire des termes utilisé coûts et délais CONTENU DU CAHIER DES CHARGES Conception de systèmes programmables II Laboratoire d'Informatique Technique complètes et cohérentes précises et vérifiables structurées et homogènes modifiables si en langage naturel, au présent ✔ ✔ ✔ ✔ ✔ 34 Analyse orientée objets 36 ❑ Analyse orientée objets méthodes ✓ SADT (fonctions) ✓ OORA (objets) ✓ Statemate (temps réel) ✓ Buhr (tâches) ✓ formelles (VDM, ...) ✓ Pamela, ER (données) ✓ ... langages ✓ réseaux de Petri ✓ GRAFCET ✓ français ✓ State charts ✓ VDM ✓ Z ✓ ... METHODES ET LANGAGES SPECIFICATIONS Conception de systèmes programmables II ❑ Laboratoire d'Informatique Technique Conception de systèmes programmables II adaptées aux lecteurs ✔ mais d'abord qu'elles existent conformes aux besoins QUALITES DES SPECIFICATIONS ✔ Laboratoire d'Informatique Technique 39 Analyse orientée objets Conception ✓ Object Oriented Design (OOD) - Conception de systèmes programmables II Analyse ✓ Object Oriented Requirement Analysis (OORA) METHODES ORIENTEES SUR LES OBJETS - Laboratoire d'Informatique Technique Analyse orientée objets Extension au temps réel ✓ SART - 37 Conception ✓ Structured Design - Conception de systèmes programmables II Analyse ✓ Structured Analysis, SADT, PSL, ... METHODES DITES STRUCTURES - Laboratoire d'Informatique Technique 40 Analyse orientée objets Inconvénients ✓ nécessitent de l'expérience ✓ peu d'outils les supportent ✓ moins connues ❑ Conception de systèmes programmables II Avantages ✓ moins de couplage ✓ meilleure structuration ✓ supportent la réutilisation de logiciels ✓ passage facile de l'analyse à la conception ✓ supportées par les systèmes d'exploitation METHODES ORIENTEES SUR LES OBJETS Analyse orientée objets ❑ Laboratoire d'Informatique Technique 38 Inconvénients ✓ ne font pas usage de tous les principes du génie logiciel ✓ nécessitent beaucoup de flair et d'expérience ✓ pas de support pour la réutilisation ✓ passage de l'analyse à la conception difficile ❑ Conception de systèmes programmables II Avantages ✓ faciles à comprendre ✓ supportées par des outils (CASE) METHODES DITES STRUCTUREES ❑ Laboratoire d'Informatique Technique METHODES FORMELLES Analyse orientée objets Analyse orientée objets 4. basées sur des spéc. mathématiques bien plus faciles à comprendre que des programmes 4. nécessitent des mathématiciens ultra qualifiés Conception de systèmes programmables II 43 Analyse orientée objets 7. ne sont pas utilisées à large échelle pour des logiciels réels 6. sont inacceptables pour les clients Conception de systèmes programmables II 44 Analyse orientée objets 7. utilisées sur des vrais projets dans l'industrie 6. peuvent aider le client à comprendre ce qu'il achète 5. peuvent réduire les coûts de développement 3. utiles pour n'importe quel type d'application 3. ne sont utiles que pour les logiciels dont la sécurité est critique 5. accroissent les coûts de développement 2. fonctionnent parce qu'elles obligent à réfléchir attentivement aux spécifications 1. très utiles pour trouver les erreurs très tôt 7 VERITES CONCERNANT LES METHODES FORMELLES Laboratoire d'Informatique Technique 42 Inconvénients ✓ plus difficiles à comprendre ✓ pratiquement pas de support d'outils ❑ Conception de systèmes programmables II Avantages ✓ permettent de prouver la conformité du logiciel aux spécifications ✓ permettent de révéler contradictions, ambiguïtés et manques ✓ permettent parfois de se passer de la conception et du codage METHODES FORMELLES ❑ Laboratoire d'Informatique Technique 2. ne concernent que la preuve du logiciel 1. permettent de garantir que le logiciel est parfait 7 MYTHES CONCERNANT LES METHODES FORMELLES Laboratoire d'Informatique Technique 41 des directives d'utilisation ✓ Conception de systèmes programmables II une base mathématique stricte ✓ Une telle méthode se caractérise par Laboratoire d'Informatique Technique LES LANGAGES DE PROGRAMMATION Analyse orientée objets Conception de systèmes programmables II 47 Analyse orientée objets 6. représentation graphique pour le développement OO 6.1 représentations statiques 6.2 représentations dynamiques Conception de systèmes programmables II 48 Analyse orientée objets 8. implantation de chaque élément 8.1 raffinement par étape de l'interface des objets et classes interfaces 8.2 raffinement par étape de l'interface des autres objets et classes 8.3 application récursive du processus de développement orienté objets CONCEPTION DE LOGICIELS OO (fin) 46 5. décision sur l'implantation des objets et classes 5.1 objets et classes identifiés durant l'analyse 5.2 objets (classes) identifiés durant la conception Laboratoire d'Informatique Technique Conception de systèmes programmables II 3.3.1 décomposition en opérations primitives 3.3.2 découplage des objets et classes 3. Identif. des opérations requises et subies par les OCI 3.1 identification des opérations d'intérêt (OI) 3.2 association des attributs avec les OI 3.3 traitement des objets composites 7. Etablissement de l'interface pour chaque élément 7.1 objets et classes 7.2 systèmes d'objets 7.3 sous-systèmes CONCEPTION DE LOGICIELS OO (suite) CONCEPTION DE LOGICIELS ORIENTES OBJETS 2. Identification des objets et classes d'intérêt (OCI) 2.1 développement d'une stratégie informelle 2.2 Identification des objets et classes d'intérêt 2.3 Association des attributs avec les OCI Laboratoire d'Informatique Technique 4. création des spécifications de classes et objets pour les objets de conception 4.1 mise ensemble des objets, classes et opérations 4.2 examen de la complétude des objets et classes Laboratoire d'Informatique Technique Analyse orientée objets avoir une pérennité suffisante ❑ 45 permettre une gestion de projet efficace ✓ suffisamment expressif ✓ suffisamment rigide pour éviter le style hacker ✓ être bien supporté par des outils de développement (compilateurs, éditeurs syntaxiques, dévermineurs symboliques ❑ Conception de systèmes programmables II supporter les concepts du génie logiciel ❑ le choix d'un langage n'est pas sans effet sur le projet. Un langage doit: Laboratoire d'Informatique Technique