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