cours génie logiciel
DESCRIPTION
Cours génie logiciel. élaboré par Amami Maha. [email protected]. 2009 - 2010. Pré-requis. Systèmes d’information Systèmes informatiques Conception et programmation orientée objet Réseaux informatiques Base de données Gestion de production. Objectifs du cours. - PowerPoint PPT PresentationTRANSCRIPT
Cours génie logiciel
ÉLABORÉ PAR AMAMI MAHA
2009 - 2010
Cours génie logiciel 2
Pré-requis
• Systèmes d’information• Systèmes informatiques• Conception et programmation orientée objet• Réseaux informatiques• Base de données• Gestion de production
15/04/2010
Cours génie logiciel 3
Objectifs du cours
• Etre capable de définir les principes et les
techniques du génie logiciel
• Comprendre la valeur ajoutée de génie
logiciel
15/04/2010
Cours génie logiciel 4
Références
• Beugnard, A. (1998). Introduction au génie logiciel. ENST Bretagne.
• Di gallo, F. (2001). Cours de génie logiciel. CNAM Bordeaux.
• Lonchamp, L. (2003). Cours génie logiciel. CNAM – Nancy.
• Notes de cours de Mme Latifa Rabii
15/04/2010
Cours génie logiciel 5
PLAN
• Chapitre 1 : Introduction• Chapitre 2 : Définitions et principes• Chapitre 3 : Modélisation des processus• Chapitre 4 : Techniques de spécification• Chapitre 5 : Techniques de conception• Chapitre 6 : Processus qualité
15/04/2010
Cours génie logiciel 6
Chapitre 1 : Introduction
• Section 1 : Rappels• Section 2 : Définition d’un logiciel• Section 3 : Domaines d’application du logiciel• Section 4 : Crise du logiciel• Section 5 : Solution
15/04/2010
Cours génie logiciel 7
Rappels
• Un système d’information : est l’ensemble des éléments participants à la gestion, au stockage, au traitement, au transport et à la diffusion de l’information au sein de l’organisation
• Un système informatique : est l’ensemble des équipements destinés au traitement automatique de l’information permettant d’acquérir, de stocker, de traiter et de communiquer des données
15/04/2010
Cours génie logiciel 8
Définition d’un logiciel (1/3)
• Un logiciel est un système d’information automatisé
• Un système d’information automatisé est l’ensemble des moyens et des méthodes qui se rapporte au traitement automatisé des données. Il constitue la partie logicielle du système informatique
15/04/2010
Cours génie logiciel 9
Définition d’un logiciel (2/3)
Système d’information
Système informatique
Système d’information
automatisé (logiciel)
15/04/2010
Cours génie logiciel 10
Définition d’un logiciel (3/3)
• Un logiciel est un produit qui couvre un ensemble organisé de :– Programmes– Procédés– Documentation – Services
15/04/2010
Cours génie logiciel 11
Caractéristiques du logiciel
• Un objet immatériel• Ne s’use pas• Le logiciel est facile à reproduire• Ses fonctionnalités sont difficiles à figer au
départ et souvent remises en cause• La plupart des logiciels sont personnalisés
15/04/2010
Cours génie logiciel 12
Domaines d’application du logiciel
• Système– Compilateurs (A-0 System) – Editeurs– Gestion de fichiers
• Temps réels (Real-time)– Contrôle de machine
• Affaires (Data processing)– SGBD (Oracle)– ERP (SAP)
• Embarqué (Embedded)– Programme FPGA– Auto-contrôle
• Scientifique– Simulation– Conception assisté par
ordinateur– Calcul numérique intensif
• Bureautique• Intelligence artificielle– Système expert
15/04/2010
Cours génie logiciel 13
Crise du logiciel (1/4)
1950 19701960 1980 1990
Distribution limitéeLogiciel personnalisé
Multi-usagersTemps-RéelBase de donnéesProgiciel
Systèmes distribuésApplications embarquées
Systèmes personnelsOrientation objetSystèmes experts
Première époque
Troisième époque
Quatrième époque
Deuxième époque
15/04/2010
Cours génie logiciel 14
Crise du logiciel (2/4)
15/04/2010
Cours génie logiciel 15
Exemples d’échec de logiciel
• Perte de la première sonde Mariner vers Venus suite à une erreur de programmation dans un programme Fortran
• Abandon du projet d’informatisation de la bourse londonienne après 4 ans de travail et 100 M£ de pertes
• Retard (2 ans) du premier vol de l’Eurofighter Causes
15/04/2010
Cours génie logiciel 16
Crise du logiciel (3/4)
• Difficulté de maîtrise des coûts (200 millions de dollars pour fabriquer OS-360)
• Difficulté de maîtrise des délais de réalisation (2 ans de retard pour les premiers compilateurs PL/1, Algol 68, ADA)
15/04/2010
Cours génie logiciel 17
Crise du logiciel (4/4)
3%
19%
2%
29%
47%
utiliséaprèsmodif.
utilisé,modif.Abandonné
utilisé avecsuccès
payé, nonlivré
livré, utilisé sanssuccès
15/04/2010
Rapports au congrès américains sur les logiciels
Cours génie logiciel 18
Solution
Génie logiciel
Modèles du cycle de vie
Outils CASE
Procédures de gestion de la
qualité
Méthodes formelles et semi-
formellesMéthodes de conception
Etc.
15/04/2010
En octobre 1968 lors d’une conférence de l’OTAN à Garmisch-Partenkirchen en Allemagne
Cours génie logiciel 19
Chapitre 2 : Définition et principes
• Section 1 : Définition du génie logiciel• Section 2 : Vue globale• Section 3 : Principes du génie logiciel
15/04/2010
Cours génie logiciel 20
Définition du génie logiciel (1/3)
Génie mécanique Génie électrique
Génie civil Génie logiciel
15/04/2010
Cours génie logiciel 21
Définition du génie logiciel (2/3)
15/04/2010
Parallèle avec le génie civil
OutilsPlan
Cours génie logiciel 22
Définition du génie logiciel (3/3)
• Ensemble de moyens mis en œuvre pour la construction de logiciels
• Le processus visant la résolution de problèmes posés par un client par le développement et l’évolution de systèmes logiciels de grande taille et de haute qualité en respectant les contraintes de coûts et de temps
Règle CQFD
Coût
Qualité
Délai
Fonctionnalité15/04/2010
Cours génie logiciel 23
Principes du génie logiciel
• Rigueur• Séparation de problèmes en sous problèmes• Modularité• Généricité• Construction incrémentale• Application du changement
15/04/2010
Cours génie logiciel 24
Vue globale
Utilisateur
*
Besoins
Acceptation
* Stakeholders
Gestionnaire*
Client
Développeur
*
*
Gestion d’acquisition
Gestion de projet
Génie logiciel15/04/2010
Cours génie logiciel 25
Chapitre 3 : Modélisation des processus
• Section 1 : Processus de gestion• Section 2 : Processus de production• Section 3 : Modèles de cycle de vie
15/04/2010
Cours génie logiciel 26
Processus de gestionEstimation, planification, suivi, …
Processus qualitéDocumentation
Processus de production
ConceptionRéalisation
Analyse
Exploitation Cycle de vie
15/04/2010
Cours génie logiciel 27
Processus de gestion• Organisation du projet
– WBS (Work breakdown Structure)– PBS (Product breakdown Structure)– OBS (Organisation breakdown Structure)
• Planification du projet– Ordonnancer les taches (Pert, Gantt …)– Suivre– Réviser
• Estimation des coûts– Délais– Budget– Effort
15/04/2010
Cahier des charges
Processus de production : Cycle de vie du logiciel
• Enchaînement des activités de développement du logiciel
28
Analyse Conception Codage TestExploitation
et Maintenance
Gestion de projet
Assurance qualité
Documentation
Spécification
Validation et vérification
Cours génie logiciel 29
Modèle de cycle de vie : Le modèle en cascade
Etude préliminaire
Analyse
Conception du système
Conception détaillée
Programmation et tests unitaires
Intégration et tests d’intégration
Installation
Exploitation et maintenance
15/04/2010
Cours génie logiciel 30
Modèle de cycle de vie : Le modèle en cascade
Avantages Découpage des taches simple et intuitive Responsabilité humaine facile à associer Production de la documentation Maintenance facileInconvénients Risques d’erreurs Difficulté d’avoir tous les besoins du client15/04/2010
Cours génie logiciel 31
Modèle de cycle de vie : Le modèle en V
Etude préliminaire
Analyse
Conception architecturale
Conception détaillée
Codage
Tests unitaires
Tests d’intégration
Tests d’acceptation
Maintenance
Préparation / Validation
Préparation / Vérification
Temps
Abstraction
Préparation / Vérification
Préparation / Validation
15/04/2010
Cours génie logiciel 32
Modèle de cycle de vie : Le modèle en V
Avantages Réaliser les propriétés du logiciel Meilleur préparation aux tests Contrôle de qualité sur chaque phaseInconvénients Difficile à appliquer rigoureusement Validation des étapes adjacentes est mal
préparée
15/04/2010
Cours génie logiciel 33
Modèle de cycle de vie : Le modèle incrémental
Etude de faisabilité
Conception architecturale
Conception détaillée
Codage et intégration
ImplémentationItération
Livraison du version i du logiciel
15/04/2010
Cours génie logiciel 34
Modèle de cycle de vie : Le modèle incrémental
Avantages Appliquer pour un logiciel de grande taille Réduire les délais de livraisonInconvénients Maintenance exhaustive Risques d’interruption de développement
15/04/2010
Cours génie logiciel 35
Modèle de cycle de vie : Le modèle de prototypage
15/04/2010
Analyse et spécification des besoins
Conception et réalisation
Evaluation du prototypage
Révision et modification du prototype
Documenter et compléter la définition des besoins
Cours génie logiciel 36
Modèle de cycle de vie : Le modèle de prototypage
Avantages Se concentrer sur les points critiques Un modèle évolutif Simplifier l’élaboration des besoins Aider à l’élaboration de l’interface H/MInconvénients Problème de gestion de projet
15/04/2010
Cours génie logiciel 37
Chapitre 4 : Techniques de spécification
• Section 1 : Définition et types de spécification• Section 2 : Styles de spécification
15/04/2010
Cours génie logiciel 38
Définition et types de spécification (1/2)
• La spécification décrit les caractéristiques attendues (le quoi) d’une implantation (le comment)
• On distingue 3 types de spécification :– Spécification des besoins
Utilisateur final Concepteur
Exigences fonctionnelles et non fonctionnelles
Phase d’analyse des besoins
15/04/2010
Cours génie logiciel 39
Définition et types de spécification (2/2)
– Spécification d’une architecture du système
– Spécification technique d’un moduleConcepteur Programmeur
Architecture en modules
Phase de conception générale
Concepteur
Architecture du module
Phase de conception détaillée
Programmeur15/04/2010
Cours génie logiciel 40
Styles de spécification
Formalité
Spécification informelle (Langue naturelle)
Opérationnel (Description du comportement désiré)
Spécification formelle (Langage Z)
Spécification semi – formelle (Modèles graphiques)
Déclaratif (Description des propriétés désirées)
Caractère
15/04/2010
Cours génie logiciel 41
Styles de spécification : DFD
• Une technique semi-formelle et opérationnelle
• La représentation graphique distingue : Les fonctions par Les données stockées Les flux par Les entités externes par
15/04/2010
Exemple
Cours génie logiciel 42
Styles de spécification : Schéma Entité Relation
• Une technique semi formelle et déclarative• Les concepts du modèle de base sont :– Les entités– Les relations– Les attributs
Exemple
Entité
Attributs
RelationAttributs
Etudiant Est inscrit
IDNomAdresse
IDLibellé
Filière
15/04/2010
Cours génie logiciel 43
Styles de spécification : Langage Z
• Un langage formel qui utilise – Les notions ensemblistes, le calcul des
propositions…– Les relations et les fonctions– Les suites
15/04/2010
44
Styles de spécification : Langage Z
Exemple : Enregistrement des passagers à bord d’un avion
1. Déclaration des variables– [PERSONNE] : Ensemble des personnes
identifiées de manière unique– Capacité : N Capacité de l’avion
2. Définition de l’état du système
15/04/2010
Cours génie logiciel 45
Styles de spécification : Langage Z
3. Description de l’état initial
4. Description de l’évolution du système
15/04/2010
Cours génie logiciel 46
Styles de spécification : Langage Z
5. Description des opérations
15/04/2010
Cours génie logiciel 47
Chapitre 5 : Techniques de conception
• Section 1 : Définition et approches• Section 2 : Approche fonctionnelle• Section 3 : Approche à objet• Section 4 : Exercice
15/04/2010
Cours génie logiciel 48
Définition et approches
• La conception propose une solution au problème spécifié lors de l’analyse– Une architecture de l’application (logicielle et
physique)– Une description détaillée des modules
• On distingue deux approches de conception– L’approche fonctionnelle– L’approche à objets
15/04/2010
Cours génie logiciel 49
Définition et approches : Approche fonctionnelle
• Dans l’approche fonctionnelle– Un module est un sous-système– La relation de base est la relation de
décomposition
Système
Fonction 1
Sous fonction 11
Sous fonction 12
Fonction 2
Sous fonction 21
Sous fonction 22
Gestion de bibliothèques
Gestion des ouvrages
Gestion d’acquisition
Gestion de réparation
Gestion de prêts
Gestion des emprunts
Gestion des réservations
Exemple : Gestion de bibliothèque
15/04/2010
Cours génie logiciel 50
Approche fonctionnelle : Les diagrammes de structure
• Une organisation hiérarchique et fonctionnelle des systèmes
• La représentation graphique distingue : – Les modules par– La relation d’appel entre modules par – Les flux de données par
15/04/2010
Cours génie logiciel 51
Définition et approches : Approche à objets
• Dans l’approche à objets– Les modules sont les objets concrets ou abstraits
du domaine de l'application– La relation de base est la relation d'utilisation (par
appel de service)
Réservation
Ouvrage
Emprunt
1. Modifier état 2. Modifier état
Exemple : Gestion de bibliothèque
15/04/2010
Cours génie logiciel 52
Exercice (1/3)
• Soit un vérificateur d’orthographe qui cherche chaque mot d’un document dans un dictionnaire. Les mots trouvés sont considérés comme corrects. Les mots non trouvés apparaissent à l’écran et l’utilisateur prend une décision : soit ils sont corrects et sont ajoutés au dictionnaire, soit ils sont incorrects et ajoutés avec la correction à un fichier des mots à corriger.
1. DFD ?2. Diagramme de structure ?
15/04/2010
Cours génie logiciel 53
Exercice (2/3)
1. Correction : DFD
15/04/2010
54
Exercice (3/3)
2. Correction : Diagramme de structure
Cours génie logiciel 55
Chapitre 6 : Processus qualité
• Section 1 : Définitions• Section 2 : La documentation
15/04/2010
Cours génie logiciel 56
Définitions
QualitéValidité Réaliser exactement les tâches
définies dans la spécificationFiabilité Assurer de manière continue
le service attenduRobustesse Fonctionner même dans des
conditions anormalesExtensibilité Facilité d'adaptation du
logiciel aux changements despécification
Réutilisabilité Etre réutilisé en tout ou partie
Efficacité Bien utiliser les ressources matérielles
15/04/2010
Cours génie logiciel 57
• Assurance qualité : concerne la définition de la manière dont l’entreprise comptait atteindre la qualité
• Planification qualité : sélection de procédures et standards appropriées pour un projet bien déterminé
• Contrôle qualité : implique l'observation du processus de développement pour assurer que les procédures d'assurance qualité ont été suivies
Assurance qualité
Planification qualité
Contrôle qualité
15/04/2010
Cours génie logiciel 58
La documentation
• Rapport d’analyse
Etude préliminaire
• Cahier des charges• Plan qualité
Analyse des besoins
• Dossier de programmation
Programmation et tests unitaires
…
15/04/2010
59
Annexe : Atelier de génie logiciel (CASE)
• Un logiciel (Outils) aidant à la réalisation de logiciels
• Il est basé sur des méthodologies qui formalisent le processus logiciel
• Il contribue à l'amélioration de la productivité et de la qualité du logiciel
Analyse
Conception
Codag
e
Test
Exploitation
et Maintenance
Editeur de texte et de
diagrammes
Editeur de texte et de
diagrammes
DebuggersOutils de
génération de tests
CompilateurGénérateurs d'interfaces
Logiciel de gestion de
configuration
Cours génie logiciel 60
Complexité d’un logiciel
160 640 1300 2600 51000
5
10
15
20
25
30
35
40
45
15/04/2010
Prob
abili
té d
’éch
ec
Taille du logiciel (mesurée en points de fonction)
Cours génie logiciel 61
Thèmes de recherche
• Les techniques de vérification du logiciel• Le cycle de vie des systèmes critiques• La documentation • La qualité du logiciel• Audit et sécurité du logiciel
15/04/2010