1 / 61

Cours génie logiciel

Cours génie logiciel. élaboré par Amami Maha. 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. Objectifs du cours.

tola
Download Presentation

Cours génie logiciel

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Cours génie logiciel élaboré par Amami Maha mahaamami@gmail.com 2009 - 2010

  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 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 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 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é 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 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 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 Cours génie logiciel

  9. Définition d’un logiciel (2/3) 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 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 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 Cours génie logiciel

  13. Crise du logiciel (1/4) Systèmes personnels Orientation objet Systèmes experts Systèmes distribués Applications embarquées Multi-usagers Temps-Réel Base de données Progiciel Distribution limitée Logiciel personnalisé Quatrième époque Troisième époque Deuxième époque Première époque 1990 1950 1960 1970 1980 Cours génie logiciel

  14. Crise du logiciel (2/4) 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 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) Cours génie logiciel

  17. Crise du logiciel (4/4) Rapports au congrès américains sur les logiciels Cours génie logiciel

  18. Solution 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 Cours génie logiciel

  20. Définition du génie logiciel (1/3) Cours génie logiciel

  21. Définition du génie logiciel (2/3) Parallèle avec le génie civil Plan Outils 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 Coût Délai Règle CQFD Qualité Fonctionnalité 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 Cours génie logiciel

  24. Vue globale Gestion d’acquisition Utilisateur Client * Besoins * Gestionnaire * Gestion de projet Acceptation Développeur * * Stakeholders Génie logiciel 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 Cours génie logiciel

  26. Processus de gestion Estimation, planification, suivi, … Processus qualité Documentation Processus de production Analyse Conception Réalisation Exploitation Cycle de vie 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 Cahier des charges Cours génie logiciel

  28. Processus de production : Cycle de vie du logiciel • Enchaînement des activités de développement du logiciel Gestion de projet Spécification Assurance qualité Documentation Validation et vérification

  29. Modèle de cycle de vie : Le modèle en cascade 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 facile Inconvénients • Risques d’erreurs • Difficulté d’avoir tous les besoins du client Cours génie logiciel

  31. Modèle de cycle de vie : Le modèle en V Temps Préparation / Validation Etude préliminaire Maintenance Préparation / Validation Analyse Tests d’acceptation Préparation / Vérification Conception architecturale Tests d’intégration Préparation / Vérification Conception détaillée Tests unitaires Codage Abstraction 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 phase Inconvénients • Difficile à appliquer rigoureusement • Validation des étapes adjacentes est mal préparée 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émentation Itération Livraison du version i du logiciel 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 livraison Inconvénients • Maintenance exhaustive • Risques d’interruption de développement Cours génie logiciel

  35. Modèle de cycle de vie : Le modèle de prototypage 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/M Inconvénients • Problème de gestion de projet 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 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 Exigences fonctionnelles et non fonctionnelles Phase d’analyse des besoins Concepteur Utilisateur final 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 module Architecture en modules Phase de conception générale Concepteur Programmeur Architecture du module Phase de conception détaillée Concepteur Programmeur Cours génie logiciel

  40. Styles de spécification Spécification informelle (Langue naturelle) Formalité Spécification semi – formelle (Modèles graphiques) Spécification formelle (Langage Z) Opérationnel (Description du comportement désiré) Caractère Déclaratif (Description des propriétés désirées) 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 • 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é Relation Attributs Attributs Etudiant Filière Est inscrit ID Nom Adresse ID Libellé 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 Cours génie logiciel

  44. Styles de spécification : Langage Z • Exemple : Enregistrement des passagers à bord d’un avion • Déclaration des variables • [PERSONNE] : Ensemble des personnes identifiées de manière unique • Capacité : N Capacité de l’avion • Définition de l’état du système

  45. Styles de spécification : Langage Z • Description de l’état initial • Description de l’évolution du système Cours génie logiciel

  46. Styles de spécification : Langage Z • Description des opérations 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 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 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 • Exemple : Gestion de bibliothèque 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 Cours génie logiciel

More Related