Cours gnie logiciel mahaamamigmail com 2009 2010 Prrequis





























































- Slides: 61
Cours génie logiciel mahaamami@gmail. com 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 15/04/2010 Cours génie logiciel 2
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 3
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 4
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 5
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 6
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 7
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 8
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 9
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 10
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 11
Domaines d’application du logiciel • Système • Embarqué (Embedded) – Compilateurs (A-0 System) – Editeurs – Gestion de fichiers • Temps réels (Real-time) – Programme FPGA – Auto-contrôle • Scientifique – Simulation – Conception assisté par ordinateur – Calcul numérique intensif – Contrôle de machine • Affaires (Data processing) – SGBD (Oracle) – ERP (SAP) 15/04/2010 • Bureautique • Intelligence artificielle – Système expert Cours génie logiciel 12
Crise du logiciel (1/4) Multi-usagers Temps-Réel Base de données Progiciel Distribution limitée Logiciel personnalisé Systèmes distribués Applications embarquées Systèmes personnels Orientation objet Systèmes experts Quatrième époque Troisième époque Deuxième époque Première époque 1950 15/04/2010 1960 1970 Cours génie logiciel 1980 1990 13
Crise du logiciel (2/4) 15/04/2010 Cours génie logiciel 14
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 15
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 16
Crise du logiciel (4/4) 3% 19% 2% 47% utilisé après modif. utilisé, modif. Abandonné utilisé avec succès payé, non livré 29% livré, utilisé sans succès Rapports au congrès américains sur les logiciels 15/04/2010 Cours génie logiciel 17
Solution En octobre 1968 lors d’une conférence de l’OTAN à Garmisch-Partenkirchen en Allemagne Procédures de gestion de la qualité Méthodes formelles et semiformelles Méthodes de conception Outils CASE Modèles du cycle de vie 15/04/2010 Génie logiciel Cours génie logiciel Etc. 18
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 19
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 20
Définition du génie logiciel (2/3) Parallèle avec le génie civil Plan Outils 15/04/2010 Cours génie logiciel 21
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 Coût Délai Règle CQFD 15/04/2010 Qualité Cours génie logiciel Fonctionnalité 22
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 23
Vue globale Gestion d’acquisition * Client Gestion de projet Besoins * * Utilisateur Gestionnaire Acceptation * Développeur * Stakeholders 15/04/2010 Cours génie logiciel Génie logiciel 24
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 25
Processus de gestion Estimation, planification, suivi, … Processus qualité Documentation Processus de production Analyse Conception Réalisation Cycle de vie 15/04/2010 Exploitation Cours génie logiciel 26
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 Cahier des charges • Estimation des coûts – Délais – Budget – Effort 15/04/2010 Cours génie logiciel 27
Processus de production : Cycle de vie du logiciel • Enchaînement des activités de développement du logiciel Analyse Conception Codage Test Exploitation et Maintenance Gestion de projet Spécification Assurance qualité Documentation Validation et vérification 28
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 29
Modèle de cycle de vie : Le modèle en cascade Avantages J Découpage des taches simple et intuitive J Responsabilité humaine facile à associer J Production de la documentation J Maintenance facile Inconvénients L Risques d’erreurs L Difficulté d’avoir tous les besoins du client 15/04/2010 Cours génie logiciel 30
Modèle de cycle de vie : Le modèle en V Temps Préparation / Validation Etude préliminaire Maintenance Préparation / Validation Tests d’acceptation Analyse Préparation / Vérification Conception architecturale Préparation / Vérification Conception détaillée Tests unitaires Codage 15/04/2010 Tests d’intégration Cours génie logiciel Abstraction 31
Modèle de cycle de vie : Le modèle en V Avantages J Réaliser les propriétés du logiciel J Meilleur préparation aux tests J Contrôle de qualité sur chaque phase Inconvénients L Difficile à appliquer rigoureusement L Validation des étapes adjacentes est mal préparée 15/04/2010 Cours génie logiciel 32
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émentation Itération 15/04/2010 Livraison du version i du logiciel Cours génie logiciel 33
Modèle de cycle de vie : Le modèle incrémental Avantages J Appliquer pour un logiciel de grande taille J Réduire les délais de livraison Inconvénients L Maintenance exhaustive L Risques d’interruption de développement 15/04/2010 Cours génie logiciel 34
Modèle de cycle de vie : Le modèle de prototypage 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 15/04/2010 Cours génie logiciel 35
Modèle de cycle de vie : Le modèle de prototypage Avantages J Se concentrer sur les points critiques J Un modèle évolutif J Simplifier l’élaboration des besoins J Aider à l’élaboration de l’interface H/M Inconvénients L Problème de gestion de projet 15/04/2010 Cours génie logiciel 36
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 37
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 Exigences fonctionnelles et non fonctionnelles Phase d’analyse des besoins Concepteur Utilisateur final 15/04/2010 Cours génie logiciel 38
Définition et types de spécification (2/2) – Spécification d’une architecture du système Architecture en modules Phase de conception générale Concepteur Programmeur – Spécification technique d’un module Architecture du module Phase de conception détaillée Concepteur 15/04/2010 Cours génie logiciel Programmeur 39
Styles de spécification Spécification informelle (Langue naturelle) Formalité Spécification semi – formelle (Modèles graphiques) Spécification formelle (Langage Z) Caractère Opérationnel (Description du comportement désiré) Déclaratif (Description des propriétés désirées) 15/04/2010 Cours génie logiciel 40
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 Ø Exemple 15/04/2010 Cours génie logiciel 41
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 Entité Attributs Relation Attributs Ø Exemple Etudiant 15/04/2010 ID Nom Adresse Est inscrit Filière ID Libellé Cours génie logiciel 42
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 Cours génie logiciel 43
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 44
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 45
Styles de spécification : Langage Z 5. Description des opérations 15/04/2010 Cours génie logiciel 46
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 47
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 48
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 Ø Exemple : Gestion de bibliothèques Système Fonction 1 Sous fonction 11 15/04/2010 Sous fonction 12 Gestion des ouvrages Fonction 2 Sous fonction 21 Sous fonction 22 Gestion d’acquisition Cours génie logiciel Gestion de réparation Gestion de prêts Gestion des emprunts Gestion des réservations 49
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 50
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) Ø Exemple : Gestion de bibliothèque Réservation 1. Modifier état 15/04/2010 Emprunt 2. Modifier état Ouvrage Cours génie logiciel 51
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 52
Exercice (2/3) 1. Correction : DFD 15/04/2010 Cours génie logiciel 53
Exercice (3/3) 2. Correction : Diagramme de structure 54
Chapitre 6 : Processus qualité • Section 1 : Définitions • Section 2 : La documentation 15/04/2010 Cours génie logiciel 55
Définitions Qualité 15/04/2010 Validité Réaliser exactement les tâches définies dans la spécification Fiabilité Assurer de manière continue le service attendu Robustesse Fonctionner même dans des conditions anormales Extensibilité Facilité d'adaptation du logiciel aux changements de spécification Réutilisabilité Etre réutilisé en tout ou partie Efficacité Bien utiliser les ressources matérielles Cours génie logiciel 56
Assurance qualité Planification qualité Contrôle qualité • 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 15/04/2010 Cours génie logiciel 57
La documentation • Rapport d’analyse Etude préliminaire 15/04/2010 Analyse des besoins • Cahier des charges • Plan qualité • Dossier d’analyse • Plan de validation Analyse du système Cours génie logiciel Conception • Dossier de conception • Plan de test par modules • Dossier de programmation Programmation et tests unitaires 58 …
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 Editeur de texte et de diagrammes Codage Test Compilateur Générateurs d'interfaces Debuggers Outils de génération de tests Exploitation et Maintenance Logiciel de gestion de configuration 59
Complexité d’un logiciel 45 40 Probabilité d’échec 35 30 25 20 15 10 5 0 15/04/2010 160 640 1300 2600 5100 Taille du logiciel (mesurée en points de fonction) Cours génie logiciel 60
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 Cours génie logiciel 61