Cours génie logiciel élaboré par Amami Maha

Slides:



Advertisements
Présentations similaires
Analyse et définition des besoins
Advertisements

Conférence « Compétences Informatiques » 10 avril 2006
LA QUALITE LOGICIELLE Plan du cours La modélisation d’activité 1 h ½
Les Systèmes d’Information Financière Atelier conjoint ACBF / Banque Mondiale / AFRITAC de l’Ouest Gérer l’application dans le temps, sur les plans fonctionnel,
Analyse et Programmation Orientées Objets
Eléments de Génie Logiciel
M1 MASTER GESTION Séance 3 Pilotage coûts- délais
La Gestion de la Configuration
Manuel Qualité, Structure et Contenus – optionnel
LA GESTION DE PROJETS APPLIQUÉE AU SECTEUR DE LA TRADUCTION
Validation des Systèmes Informatisés Industriels
Stratégie de formation
Démarche de Projet D’après la norme X50-106, un projet est une démarche spécifique qui permet de structurer méthodiquement et progressivement une réalité.
Les démarches de développement
Les démarches de développement
1 B Système Enjeux et principes Cours DESS Nantes 04 Décembre 2002 Didier ESSAME.
Système de gestion de bases de données. Modélisation des traitements
Les Ateliers de Génie Logiciel
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
MRP, MRP II, ERP : Finalités et particularités de chacun.
MIAGE MASTER 1 Cours de gestion de projet
Cycle de vie dun logiciel Origine des erreurs La spécification 50% 40% 10% Le design Le codage.
Introduction au Génie Logiciel
le profil UML en temps réel MARTE
Vuibert Systèmes dinformation et management des organisations 6 e édition R. Reix – B. Fallery – M. Kalika – F. Rowe Chapitre 1 : La notion de système.
Initiation à la conception de systèmes d'information
Vuibert Systèmes dinformation et management des organisations 6 e édition R. Reix – B. Fallery – M. Kalika – F. Rowe Chapitre 2 : Les applications fonctionnelles.
Feature Driven Development (FDD)
DeltaPROD Suivi des interventions Gestion de configuration
Modèle, Méthode et Conception
Supply Chain Management
Département de génie logiciel et des TI Université du Québec École de technologie supérieure Systèmes dinformation dans les entreprises Systèmes dinformation.
SYSTEMES D’INFORMATION
Vuibert Systèmes dinformation et management des organisations 6 e édition R. Reix – B. Fallery – M. Kalika – F. Rowe Chapitre 7 : Les méthodes de conception.
Etude globale de système.
SCIENCES DE L ’INGENIEUR
IGL301 - Spécification et vérification des exgiences 1 Chapitre 1 Introduction (ref : Bray chapitre 1)
IGL301 - Spécification et vérification des exgiences 1 Chapitre 2 Le processus dingénierie des exigences (ref : Bray chapitre 2)
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Notions de Base Hiver 2002 Petko Valtchev.
La gestion par activités (ABM)
Conception des Réalisé par : Nassim TIGUENITINE.
Systèmes d’informations : Définition, Composantes, Rôles et Approches.
NORMALISATION DES LANGAGES DE PROGRAMMATION des Automates Programmables Industriels CEI
Démarche Qualité Logicielle
ANALYSE METHODE & OUTILS
Stratégie d’entreprise - Alstom Transport – Marco Férrogalini
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Supports de formation au SQ Unifié
Hatainville Les Moitiers d’Allonne – Tel : Website : stratic.online.com La démarche projet Mars 2001.
Institut Supérieur des Sciences Appliquées et de Technologie Sousse
GENIE LOGICIEL
2003 (revisé 2008)SEG Chapitre 11 Chapitre 1 “The Systems Engineering Context” Le contexte du génie de systèmes.
1 Emeric ROLLIN 1 Génie Logiciel GENIE LOGICIEL
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
© Petko ValtchevUniversité de Montréal Février IFT 2251 Génie Logiciel Conception Hiver 2002 Petko Valtchev.
Le système informatique et le système d’information
Les épreuves du BTS Systèmes photoniques
Introduction au Génie Logiciel
Initiation à la conception des systèmes d'informations
1 Emeric ROLLIN 1 Génie Logiciel GENIE LOGICIEL
Présentation AICHA REVEL INGENIEUR D’ÉTUDE STERIA DEPARTEMENT TRD
Année 2006 – 2007 ENSEA © Emeric Rollin
L’enseignement de spécialité SLAM
G.L modèle en CASCADE Plan Réalisé par : Selmane mohamed lamine
Les démarches de développement
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Le Processus Hiver 2002 Petko Valtchev.
Présentation de la méthode Merise
TECHNOLOGIE – Avril 2008 Projet de programme 4 e : Thème : Confort et domotique Equipement intérieur Equipement extérieur Electroménager Vidéo, photo Son.
19 avril Spécification d’un cadre d’ingénierie pour les réseaux d’organisations Laboratoire de recherche : OMSI à l’EMSE.
SIO Gestion de projets, applications SIO Hager Khechine, MBA, PhD. Séance 2 : Méthodes de découpage de projets.
Transcription de la présentation:

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 15/04/2010 Cours génie logiciel

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

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

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

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

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

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

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

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

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

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

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

Crise du logiciel (2/4) 15/04/2010 Cours génie logiciel

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

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

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

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

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

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

Définition du génie logiciel (2/3) Parallèle avec le génie civil Plan Outils 15/04/2010 Cours génie logiciel

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Styles de spécification : Langage Z Description des opérations 15/04/2010 Cours génie logiciel

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

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

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

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

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

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

Exercice (2/3) Correction : DFD 15/04/2010 Cours génie logiciel

Exercice (3/3) Correction : Diagramme de structure

Chapitre 6 : Processus qualité Section 1 : Définitions Section 2 : La documentation 15/04/2010 Cours génie logiciel

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

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

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

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

Complexité d’un logiciel Probabilité d’échec Taille du logiciel (mesurée en points de fonction) 15/04/2010 Cours génie logiciel

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