1. Introduction générale à la SPECIFICATION et à la CONCEPTION
Transcription
1. Introduction générale à la SPECIFICATION et à la CONCEPTION
1. Introduction générale à la SPECIFICATION et à la CONCEPTION de LOGICIELS Bernard ESPINASSE Professeur à l'Université d'Aix-Marseille Plan • Introduction • Présentation du cours Intro Générale - Génie Logiciel - Bernard ESPINASSE - © - 1 I ntroduction • le génie logiciel (G.L.) existe depuis bientôt 25 ans • le GL est né en Europe en octobre 1968, à Garmisch-Partenkirchen, sous le nom de soflware engineering, et sous le parrainage de l'OTAN • des constations que le logiciel : • n'était pas fiable, • était incroyablement difficile de réaliser dans des délais prévus • ne satisfaisaient pas leurs cahiers des charges Intro Générale - Génie Logiciel - Bernard ESPINASSE - © - 2 E rre urs cé lè bre s. . . • 1°sonde Mariner vers Vénus s'est perdue dans l'espace à cause d'une erreur dans un pgm Fortran. • 1971 : lors d'une expérience météorologique en France, 72 ballons contenant des instruments de mesure furent détruits tout d'un coup à cause d'un défaut dans le logiciel... • 1981 : un problème logiciel retarda de 2 jours le premier lancement orbital de la navette spatiale; la navette fut lancée sans que l'on ait localisé exactement la cause du problème • 1990 : dans nuit du 15-16 décembre 1990, les abonnés de ATT de la côte Est des Etats-Unis furent privés de tout appel longue distance à cause d'une réaction en chaîne dans le logiciel du réseau due à un changement de version de ce logiciel ... Intro Générale - Génie Logiciel - Bernard ESPINASSE - © - 3 P roje ts douloure ux . . . • 1960 : OS pour gamme IBM 360 : livré en retard, nécessitait plus de mémoire que prévu, prix de revient dépassait de beaucoup les estimations, premières versions avec erreurs... • 1970 : Compilateur PL1 chez Control Data : projet avorté • 1990 : EDF a dû renoncer à la mise en service du nouveau système de contrôle-commande de ses centrales de 1 400 mégawatts après plusieurs années d'efforts de développement • 1993 : SNCF a rencontré des difficultés importantes à la mise en service du système Socrate ... Intro Générale - Génie Logiciel - Bernard ESPINASSE - © - 4 Q ue stions un logiciel étant un produit manufacturé complexe, est-il raisonnable d'en attendre une qualité totale ? • pas de telles exigences dans les autres domaines technologiques (voitures tombent en panne, les circuits ont des défaillances, etc • on souhaiterait cependant avoir des estimations de cette qualité • la fiabilité et la sûreté de fonctionnement des logiciels, des améliorations spectaculaires ont été obtenues. des projets autres que de développement de logiciel prennent du retard et dépassent leur budget ? • Oui, mais dans le cas du logiciel ces dépassements en temps et en coût peuvent être énormes (jusqu'à 300, 400%). Intro Générale - Génie Logiciel - Bernard ESPINASSE - © - 5 L'invisibilité du logicie l: sa spé cifica tion • souvent le logiciel développé ne correspond pas à la demande. Comment exprimer ses spécifications ? Comment les soumettre au futur utilisateur et au futur réalisateur ? • ceci est du au fait qu'un logiciel, surtout en cours de développement, est invisible : • on ne peut l'observer qu'en l'utilisant et • observation souvent tardive et • insuffisante pour comprendre ce qui se passe F le xibilité du logicie l: un mythe • les modifications sont : • délicates à concevoir • peuvent avoir des conséquences difficiles à anticiper. • un changement mineur dans une partie d'un programme peut : • avoir un effet énorme sur le fonctionnement de celle-ci • affecter le fonctionnement d'autres parties du programme. Intro Générale - Génie Logiciel - Bernard ESPINASSE - © - 6 Le G é nie logicie l Définition du Génie Logiciel : l'art de spécifier, de concevoir, de réaliser, et de faire évoluer, avec des moyens et dans des délais raisonnables, des programmes, des documentations et des procédures de qualité en vue d'utiliser un ordinateur pour résoudre certains problèmes • le GL considère le logiciel comme un objet manufacturé complexe • le but du GL est de définir des techniques de "fabrication" justifiées soit par la théorie, soit par la pratique • depuis sa "naissance" le GL a permis de développer des logiciels : • plus fiables qu'il y a vingt ans, • plus facilement modifiables et • satisfont mieux leurs utilisateurs ceci en utilisant des méthodes , des Intro Générale - Génie Logiciel - Bernard ESPINASSE - © - modèles et des outils 7 E volution de s logicie ls • logiciels dans tous les domaines • on demande de plus en plus au logiciel : • changement continu • complexité croissante • évolution du programme • taille de plus en plus importante : • CERN : demi-million d'instructions pour une expérience de physique des particules • central téléphonique : le million d'instructions • SPATIAL: plus grand projet de GL jamais réalisé est l'ensemble du contrôle au sol et en vol de la navette spatiale : 50 millions d'instructions (plusieurs milliers d'hommes-années) ... • exigences de correction, de fiabilité, de permanence du service deviennent de plus en plus fortes -> un des plus grands défis scientifiques et technologiques actuels. Intro Générale - Génie Logiciel - Bernard ESPINASSE - © - 8 pa rtie 1 : Activité s & M odè le s de D é ve loppe me nt Séance 1 : Activités et Modèles de développement du logiciel • Les activités associées au développement du logiciel • Analyse des besoins • Spécification globale • Conceptions architecturale et détaillée • Programmation • Gestion de configurations et Intégration • Validation et vérification • Les principaux modèles de développement du logiciel • Modèle de la cascade • Modèle en V • Modèle en spirale • Modèles par incréments Intro Générale - Génie Logiciel - Bernard ESPINASSE - © - 9 pa rtie 2 : Le s O utils de spé cifica tion Séance 2 : Différents outils de spécification - Les énoncés informels - Les présentations formatées : • le dictionnaire de données • tables de décision • table état-transition - Les outils graphiques ou semi-formels (1) • les diagrammes de flot de données • les diagrammes de structures Séance 3 : Différents outils de spécification - Les outils graphiques ou semi-formels (2) • les diagrammes états-transition • les réseaux de Pétri et le Grafcet • l'entité-association de base et étendu Intro Générale - Génie Logiciel - Bernard ESPINASSE - © - 10 pa rtie 3 : Le s M é thode s fonctionne lle s e t systè mique s Séance 4 : Les grands types de méthodes d'analyse et de conception - Les méthodes fonctionnelles - Les méthodes systèmiques - Les méthodes orientées objet Séance 5 : Les méthodes fonctionnelles : SA/SD et SADT - Historique - Domaine d'application - Modèles et formalismes - Démarche préconisée Séance 6 : Les méthodes systèmiques : MERISE/2 - Historique - Domaine d'application - Modèles et formalismes - Démarche préconisée : classique & rapide Intro Générale - Génie Logiciel - Bernard ESPINASSE - © - 11 pa rtie 3 : Le s M é thode s O rie nté e s O bje t e t F orme lle s Séance 7 : Les méthodes objets : OMT - Intérêt de l'approche objet en génie logiciel - Historique - Domaine d'application - Modèles et formalisme - Démarche préconisée - Articulation MERISE/2 - OMT Séance 8 : Les méthodes formelles : Z - Historique - Domaine d'application - Modèles et formalisme Intro Générale - Génie Logiciel - Bernard ESPINASSE - © - 12 pa rtie 4 : M é thode s de T e st e t de P re uve e n G é nie logicie l Séance 9 : Méthodes de Test et de Preuve en génie logiciel • Méthodes de test de logiciel • Définition du test de logiciel • Classification des méthodes • Test statique • Test dynamique • Efficacité des tests • Méthodes de preuve de développement de logiciel • Définition des preuves en génie logiciel • Preuves de conception • Preuves de programme • Les preuves en pratique Intro Générale - Génie Logiciel - Bernard ESPINASSE - © - 13