Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
Cours génie logiciel élaboré par Amami Maha mahaamami@gmail.com
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 Ses fonctionnalités sont difficiles à figer au départ et souvent remises en cause en cours de développement La plupart des logiciels sont personnalisés, plutôt que d'être assemblés à partir de composantes standards Le logiciel est facile à reproduire. Tout le coût se trouve dans son développement. Pour d’autres produits, la fabrication est souvent le processus le plus coûteux 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 Logiciel peut être sur mesure ou générique Les logiciels embarqués s’exécutent dans du matériel électronique isolé 15/04/2010 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 La croissance explosive de la vitesse des ordinateurs et la baisse de leurs coûts engendrent une demande pour des logiciels complexes et augmentent les attentes des usagers Première époque 1990 1950 1960 1970 1980 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) Rapports au congrès américains sur les logiciels 15/04/2010 Cours génie logiciel
18
Solution En octobre 1968 lors d’une conférence de l’OTAN à Garmisch-Partenkirchen en Allemagne Génie logiciel Modèles du cycle de vie Outils CASE Procédures de gestion de la qualité Méthodes formelles et semi-formelles Méthodes de conception Etc. 15/04/2010 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)
Parallèle avec le génie civil Plan Outils 15/04/2010 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é 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 Rigueur : c’est l’exactitude dans l’application des règles, Le niveau maximum de rigueur est la formalité, c’est à dire le cas où les descriptions et les validations s’appuient sur des notations et lois mathématiques. Séparation des problèmes en sous problèmes : séparation dans le temps, séparation des vues de système et une séparation en sous systèmes Modularité : Un système est modulaire s’il est composé de sous-systèmes plus simples l’évolution des langages de programmation en particulier les langages orientée objet vise à rendre plus facile une programmation modulaire appelé programmation par composant Abstraction : ne considérer que les aspects jugés importants d’un système à un moment donné La généricité : Le fait pour un objet de pouvoir être utilisé tel quel dans différents contextes ou même indépendamment de contexte Construction incrémentale : c’est le fait de réaliser l’objectif par des étapes successives Application du changement : prévoir et faciliter le changement du système en construisant le logiciel de façon modulaire et en gérant les configurations des modules 15/04/2010 Cours génie logiciel
24
Vue globale Gestion d’acquisition * Client Besoins Utilisateur *
Gestionnaire Gestion de projet Acceptation Développeur * * Stakeholders Génie logiciel 15/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 production
Processus de gestion Estimation, planification, suivi, … Processus qualité Documentation Processus de production Analyse Conception Réalisation Exploitation Cycle de vie 15/04/2010 Cours génie logiciel
27
Processus de gestion Organisation du projet Planification 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 15/04/2010 Cours génie logiciel
28
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 Analyse : opportunité fonctionnelle et faisabilité technique Conception : choix tactiques de réalisation et d’architecture Codage : réalisation informatique du détail des opérations Test : tests unitaires et d’intégration Spécification Assurance qualité Documentation Validation et vérification
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 facile Inconvénients Risques d’erreurs Difficulté d’avoir tous les besoins du client 15/04/2010 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 Après la préparation on parcours toutes les phases pour faire une validation Conception détaillée Tests unitaires Codage Abstraction 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 phase Inconvé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 Développement du futur logiciel par lot Implémentation Ité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 livraison Inconvé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
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
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 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 Exigences fonctionnelles et non fonctionnelles Phase d’analyse des besoins Concepteur Utilisateur final 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 module Architecture en modules Phase de conception générale Concepteur Programmeur Architecture du module Phase de conception détaillée Concepteur Programmeur 15/04/2010 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) 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 Exemple 15/04/2010 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é 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 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 15/04/2010
45
Styles de spécification : Langage Z
Description de l’état initial Description de l’évolution du système 15/04/2010 Cours génie logiciel
46
Styles de spécification : Langage Z
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 Exemple : Gestion de bibliothèque 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 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) Exemple : Gestion de bibliothèque Réservation Emprunt 2. Modifier état 1. Modifier état Ouvrage 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. DFD ? Diagramme de structure ? 15/04/2010 Cours génie logiciel
53
Exercice (2/3) Correction : DFD 15/04/2010 Cours génie logiciel
54
Exercice (3/3) Correction : Diagramme de structure
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é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 15/04/2010 Cours génie logiciel
57
Planification qualité
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 La gestion de qualité s’articule sur les trois activités suivantes : Assurance qualité Planification qualité Contrôle qualité 15/04/2010 Cours génie logiciel
58
Programmation et tests unitaires
La documentation Etude préliminaire Rapport d’analyse Analyse des besoins Cahier des charges Plan qualité Analyse du système Dossier d’analyse Plan de validation Conception Dossier de conception Plan de test par modules Programmation et tests unitaires Dossier de programmation … 15/04/2010 Cours génie logiciel
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 Codage Test Exploitation et Maintenance Editeur de texte et de diagrammes Editeur de texte et de diagrammes Compilateur Générateurs d'interfaces Debuggers Outils de génération de tests Logiciel de gestion de configuration
60
Complexité d’un logiciel
Probabilité d’échec Taille du logiciel (mesurée en points de fonction) 15/04/2010 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 Cours génie logiciel
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.