Entreprise Nationale des Systèmes Informatiques

Slides:



Advertisements
Présentations similaires
ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
Advertisements

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
Licence pro MPCQ : Cours
Distance inter-locuteur
Eléments de Génie Logiciel
6 — Aperçu du processus unifié
M1 MASTER GESTION Séance 3 Pilotage coûts- délais
Processus d'expression du besoin
L'installation et la diffusion 1 LInstallation et la Diffusion.
La Recette La recette.
La Gestion de la Configuration
Enseigner la technologie
Les numéros
Chapitre 7 : démarche de conception, conduite de projet SI
Les démarches de développement
Thème « Modélisation comportementale des Systèmes critiques »
1 B Système Enjeux et principes Cours DESS Nantes 04 Décembre 2002 Didier ESSAME.
Les Ateliers de Génie Logiciel
S.T.S. S.I.O. 1ère année La gestion de projets
SERABEC Simulation sauvetage aérien avec un Hercule C130. Départ de St-Honoré le 4 octobre Durée de vol 3 heures. Premier vol en Hercule pour les.
La revue de projet.
1 5 octobre 2011 / paw Présentation du 7 octobre 2011.
PARTIE 3 : Le SYSTEME D’INFORMATION FUTUR
MIAGE MASTER 1 Cours de gestion de projet
Introduction au Génie Logiciel
le profil UML en temps réel MARTE
Parcours de formation SIN-7
BPM & BPMS.
Titre : Implémentation des éléments finis sous Matlab
1 Journée de regroupement des correspondants "Egalité et genre" - 21 novembre 2011 Rectorat de Rouen - SAIO - CD-HD Résultats scolaires, appréciations.
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
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.
Techniques de test Boulanger Jean-Louis.
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.
Année universitaire Réalisé par: Dr. Aymen Ayari Cours Réseaux étendus LATRI 3 1.
Conception des Réalisé par : Nassim TIGUENITINE.
Les étapes du cycle de développement du génie logiciel
1 INETOP
SEMINAIRE DE CONTACT novembre 2008 Outils de gestion de projet.
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
ANALYSE METHODE & OUTILS
Le management de l'IVVQ Processus techniques IVVQ
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
Vérification dans le cycle de vie GEF492A 2014 Référence: [HvV §14.2, 14.9] Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique et.
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.
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
GÉNIE LOGICIEL ET APPLICATION A LA QUALITE LOGICIEL
Sensibilisation aux projets logiciels
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Le Processus Hiver 2002 Petko Valtchev.
Conférence 2TUP Stéphane Barthon 03/12/
Document de spécification d’exigences Normes IEEE et 29148:2011
Présentation de la méthode Merise
PRÉSENTATION AGL LES TESTS LOGICIELS LES TEST LOGICIELS 1 Mickael BETTINELLI Brandon OZIOL Gaétan PHILIPPE Simon LUAIRE.
19 avril Spécification d’un cadre d’ingénierie pour les réseaux d’organisations Laboratoire de recherche : OMSI à l’EMSE.
Transcription de la présentation:

Entreprise Nationale des Systèmes Informatiques ENSI GÉNIE LOGICIEL Cession Ingénieur Programmeur 2011 Chargé du cours: Mr BOURBET.M

Définition du logiciel Un logiciel (software) est l’ensemble des programmes, des procédures et des documentations nécessaires au fonctionnement d’un système informatique BOURBET.M

Critères de qualité du logiciel Exactitude Aptitude d’un logiciel à fournir des résultats voulus dans les conditions normales d’utilisation. Robustesse Aptitude à bien réagir lorsque l’on s’écarte des conditions normales d’utilisation. Exemple : IP (Internet Protocol). Le succès d’Internet est du à la robustesse du protocole de communication utilisé. Un datagramme IP arrive à destination même si un réseau local est inaccessible. BOURBET.M

Critères de qualité du logiciel Extensibilité Facilité avec laquelle un programme pourra être adapté pour faire face à une évolution des besoins de l’utilisateur. Réutilisabilité Possibilité d’utiliser certaines parties du logiciel pour développer un autre logiciel répondants à d’autres besoins. Cette notion est souvent relié à l’orienté objet où une classe générale sera facilement réutilisable. BOURBET.M

Critères de qualité du logiciel Portabilité Facilité avec laquelle on peut exploiter un logiciel dans différentes implémentations. Exemple Windows 95 ou Linux. Efficience Temps d’exécution, taille mémoire… BOURBET.M

Caractéristiques du logiciel - 1 le logiciel est facile à reproduire Tout le coût se trouve dans le développement le logiciel est immatériel et invisible On ne peut l’observer qu’en l’utilisant La qualité n’est pas vraiment apparente Difficile d’estimer l’effort de développement développement difficile à automatiser Beaucoup de main-d’œuvre nécessaire … BOURBET.M BOURBET M

Caractéristiques du logiciel - 2 le logiciel ne s’use pas, mais il vieillit Détérioration suite aux changements : complexification indue duplication de code introduction d’erreurs Mal conçu au départ : inflexibilité manque de modularité documentation insuffisante Evolution du matériel BOURBET.M

Différentes catégories de logiciels sur-mesure : pour un client spécifique générique : vendu sur un marché BOURBET.M

Différents types de logiciels système d’information et d’aide à la décision logiciel temps-réel logiciel embarqué logiciel distribué BOURBET.M

Problématique historique du logiciel « D’une part le logiciel n’est pas fiable, d’autre part il est incroyablement difficile de réaliser dans les délais prévus des logiciels satisfaisant leur cahier des charges » BOURBET.M

Le logiciel n’est pas fiable … Quelques exemples célèbres : 1ère sonde Mariner vers Vénus navette spatiale ATT avion F16 bug de l’an 2000  perdue dans l’espace (erreur Fortran)  lancement retardé (problème logiciel)  appels longue distance suspendus (changement de version)  retourné à l’équateur (non prise en compte hémisphère sud) Tout système comporte des bugs … BOURBET.M

Délais et exigences non satisfaits … Quelques exemples célèbres : OS 360 d’IBM Aéroport de Denver (système de livraison des bagages) SNCF (système Socrate)  en retard, dépassement mémoire et prix, erreurs  1 an de retard  difficultés importantes BOURBET.M

Abandons … Quelques exemples célèbres : EDF (contrôle-commande centrales 1400 MWatts) bourse de Londres (projet d’informatisation) Etats-Unis (système de trafic aérien)  renonce après plusieurs années d’efforts  abandon : 4 années de travail + 100 ML perdus  abandon La non rencontre des exigences et les dépassements de délais sont fréquents : 300 à 400 % BOURBET.M

Naissance d’une nouvelle discipline Historique Problématique apparue dès les années 1960 Conférence parrainée par l’OTAN (1968) Naissance du « Génie Logiciel » (software engineering) BOURBET.M

Naissance d’une nouvelle discipline Objectif Démarche de développement ingénierique Principes, méthodes, outils Techniques de fabrication assurant : respect des exigences respect de la qualité respect des délais et des coûts BOURBET.M

Définition du « Génie Logiciel » Processus visant : la résolution de problèmes posés par un client par le développement systématique et l’évolution de systèmes logiciels de grande taille et de haute qualité en respectant les contraintes de coûts, de temps, et autres BOURBET.M

Résolution de problèmes posés par un client … identifier et comprendre le problème à résoudre solution utile résolvant un problème concret la solution peut être de ne rien développer ! BOURBET.M

Développement systématique et évolution … techniques maîtrisées, organisation, rigueur bonnes pratiques standardisées (IEEE, ISO) la plupart des projets consistent en une évolution BOURBET.M

Systèmes de grande taille et haute qualité … travail en équipe(s) bonne coordination essentielle principal défi : subdiviser et recomposer harmonieusement produit final : critères de qualités bien établis BOURBET.M

Respectant les contraintes … les ressources sont limitées (temps, argent, …) le bénéfice doit être supérieur aux coûts la productivité doit rester concurrentielle mauvaise estimation  échec BOURBET.M

Transition … Risques majeurs du développement de logiciels : ne pas remplir les exigences du client produire un logiciel non fiable dépasser les délais, les coûts et autres contraintes BOURBET.M

Méthodes du Génie Logiciel Méthodologies de développement BOURBET.M

Introduction Comme pour tout produit manufacturé complexe : on décompose la production en « phases » l’ensemble des phases constitue un « cycle de vie » les phases font apparaître des activités clés BOURBET.M

Activités du développement de logiciel Analyse des besoins Spécification Conception Programmation Intégration Vérification et validation BOURBET.M

Analyse des besoins But : Caractéristiques : déterminer ce que doit faire (et ne pas faire) le logiciel déterminer les ressources, les contraintes Caractéristiques : parler métier et non info entretiens, questionnaires observation de l’existant, étude de situations similaires Résultat : ensemble de documents rôle du système future utilisation aspects de l’environnement (parfois) un manuel d’utilisation préliminaire BOURBET.M

Spécification But : Données : établir une 1ère description du futur système consigner dans un document qui fait référence Données : résultats de l’analyse des besoins + faisabilité informatique Résultat : Spécification Technique de Besoin (STB) ce que fait le logiciel, mais pas comment Remarques : pas de choix d’implémentation (parfois) un manuel de référence préliminaire BOURBET.M

Conception But : Travail : 2 étapes : décrire comment le logiciel est construit décider comment utiliser la techno. pour répondre aux besoins Travail : enrichir la description de détails d’implémentation pour aboutir à une description très proche d’un programme 2 étapes : conception architecturale conception détaillée BOURBET.M

Conception architecturale But : décomposer le logiciel en composants mettre au point l’architecture du système définir les sous-systèmes et leurs interactions concevoir les interfaces entre composants Résultat : description de l’architecture globale du logiciel spécification des divers composants BOURBET.M

Conception détaillée But : élaborer les éléments internes de chaque sous-syst. Résultat : pour chaque composant, description des structures de données, algorithmes Remarque : si la conception est possible, la faisabilité est démontrée sinon, la spécification est remise en cause BOURBET.M

Programmation But : Résultat : Remarque : passer des structures de données et algorithmes à un ensemble de programmes Résultat : ensemble de programmes ensemble de bibliothèques / modules documentés (commentaires) Remarque : activité la mieux maîtrisée et outillée (parfois automatisée) BOURBET.M

Gestion de configurations et Intégration gérer les composants logiciels (programmes, bibliothèques, …) maîtriser leur évolution et leurs mises à jour Intégration : assembler les composants pour obtenir un système exécutable BOURBET.M

Vérification But : vérifier par rapport aux spécifications vérifier que les descriptions successives (et in fine le logiciel) satisfont la STB Moyens : revues de projet, tests test = chercher des erreurs dans un programme exécution sur un sous-ensemble fini de données 4 types de tests : test unitaire : composants isolés test d’intégration : composants assemblés test système : système installé sur site test d’acceptation : testé par l’utilisateur BOURBET.M

Validation But : vérifier par rapport aux utilisateurs Moyen : revues de projet BOURBET.M

Maintenance But : Remarque : corriger des défauts améliorer certaines caractéristiques suivre les évolutions (besoin, environnement) Remarque : peut remettre en cause les fonctions du système peut impliquer un re-développement (re-ingeneering) BOURBET.M

Maquettage / Prototypage But : préciser les besoins et les souhaits des utilisateurs développer rapidement une ébauche du système 2 types de maquettes : maquette exploratoire : spécification maquette expérimentale : conception BOURBET.M

Répartition des activités Actuellement, dans un projet logiciel bien conduit : 40 % Analyse, Spécification, Conception 20 % Programmation 40 % Intégration, Vérification, Validation BOURBET.M

Résumé analyse des besoins spécification (maquettage) descriptions conception  architecturale  détaillée descriptions de plus en plus précises = raffinements  Exécutable + Doc. programmation config. et intégration vérif. et validation maintenance BOURBET.M

Introduction Modèle de développement ?  enchaînements et interactions entre les activités But pour le projet : ne pas s’apercevoir des pbs qu’à la fin contrôler l’avancement des activités en cours vérifier / valider les résultats intermédiaires Objectif général : obtenir des processus de développement rationnels contrôlables reproductibles BOURBET.M

Modèles de développement logiciel modèle en cascade (fin des années 1960) modèle en V (années 1980) modèle en spirale (Boehm, 1988) BOURBET.M

Modèle en cascade BOURBET.M

Modèle en cascade principe : le développement se divise en étapes  une étape se termine à une certaine date  des docs ou prog sont produits à la fin de chaque étape  les résultats d’étapes sont soumis à revue  on passe à l’étape suivante ssi l’examen est satisfaisant  une étape ne remet en cause que la précédente commentaire :  modèle séduisant car simple  moyennement réaliste (trop séquentiel) BOURBET.M

Modèle en V BOURBET.M

Modèle en V  modèle plus élaboré et réaliste principe : les premières étapes préparent les dernières interprétation : 2 sortes de dépendances entre étapes  en V, enchaînement séquentiel (modèle en cascade)  de gauche à droite, les résultats des étapes de départ sont utilisés par les étapes d’arrivée commentaire :  avec la décomposition est écrite la recomposition  vérification objective des spécifications  modèle plus élaboré et réaliste  éprouvé pour de grands projets, le plus utilisé BOURBET.M

Modèle en spirale BOURBET.M

Modèle en spirale  effort important de mise en œuvre principe : développement itératif (prototypes) interprétation : chaque mini-cycle se déroule en 4 phases 1. Analyse des besoins, Spécification 2. Analyse des risques, Alternatives, Maquettage 3. Conception et Implémentation de la solution retenue 4. Vérification, Validation, Planification du cycle suivant commentaire :  nouveau : analyse de risques, maquettes, prototypage  modèle complet, complexe et général  effort important de mise en œuvre  utilisé pour projets innovants ou à risques BOURBET.M

Résumé modèles : enchaînements et interactions entre étapes passage d’une étape à la suivante :  documents, tests  vérifiés et validés 3 modèles : cascade, V, spirale (séquentiels et itératif) cascade : simple mais pas très réaliste spirale : nouvelles notions, très complet mais lourd V : assez réaliste, le plus éprouvé et utilisé BOURBET.M

Maturité du processus de développement notion définie par le SEI (Software Engineering Institute) Capacity Maturity Model (CMM) 5 niveaux de maturité :  Initial  Reproductible  Défini  Géré  Optimisé BOURBET.M

Niveaux de maturité BOURBET.M

Etude américaine (1991) Etude SEI Organisations américaines BOURBET.M

Etude américaine (1999) Etude SEI Organisations américaines BOURBET.M

Principes du Génie Logiciel Vers une assurance qualité … BOURBET.M

Différentes perceptions de la qualité … EXTERNE QUALITÉ INTERNE BOURBET.M

Facteurs de qualité - 1 Qualité externe : complétude fonctionnelle  réalise toutes les tâches attendues ergonomie / convivialité  facile d’utilisation  apprentissage aisé fiabilité / robustesse  tâches effectuées sans problème  fonctionne même dans des cas atypiques BOURBET.M

Facteurs de qualité - 2 Qualité interne : adaptabilité réutilisabilité  facile à modifier, à faire évoluer réutilisabilité  des parties peuvent être réutilisées facilement traçabilité / compréhension  le fonctionnement du logiciel est facile à comprendre efficacité / performance  bonne utilisation des ressources (mémoire, cpu, …) portabilité  capacité à marcher dans un autre contexte ou env. BOURBET.M

Comment agir sur la qualité logicielle ? La qualité est atteinte ou améliorée en appliquant certains principes : rigueur et formalisme séparation des préoccupations modularité généralité / abstraction incrémentalité anticipation des changements BOURBET.M

Rigueur et formalisme rigueur = précision, exactitude (confiance en la fiabilité) formalisme = le plus haut degré de rigueur (mathématiques) nécessaire pour les parties critiques (haut risque) peut être utilisé dans chaque phase spécification formelle vérification formelle (preuve) analyse de complexité d’algorithmes … BOURBET.M

Séparation des préoccupations - 1 principe : traiter séparément les ≠ aspects d’un problème  diviser pour régner résultat : réduit la quantité de complexité à contrôler BOURBET.M

Séparation des préoccupations - 2 différentes sortes de séparations : séparation de domaine domaine de problème : quoi résoudre ? domaine de solution : comment résoudre ? séparation de temps : phases du cycle de vie séparation de qualité maquettes, prototypes conception globale, détaillée vues séparées sur le logiciel : modélisation en UML cas d’utilisation, structure statique comportement dynamique, architecture séparation de responsabilités : org. en équipes projet BOURBET.M

Modularité principe : séparer le système en composants logiques  modules avantages : réduction de complexité les modules peuvent être conçus et construits séparément réutilisés système modifié en changeant un nombre limité de modules BOURBET.M

Généralité / Abstraction principe : généraliser un problème particulier le rendre réutilisable dans d’autres contextes exemple : logiciel générique vs logiciel sur mesure design : des solutions généralisées pour des problèmes typiques de conception BOURBET.M

Incrémentalité principe : exemple : développer le logiciel en une série d’incréments se rapprocher de la solution par raffinements successifs exemple : phase de conception cycle de vie en spirale BOURBET.M

Anticipation des changements le logiciel évolue constamment pour différentes raisons : réparation des erreurs détectées adaptation à de nouveaux environnements traitement de nouvelles exigences changements dans les exigences changement des formats de données changement d’exigences non-fonctionnelles avant de développer, poser les questions : quels changements, où ? comment les rendre plus faciles à appliquer ? BOURBET.M

Résumé pour l’atteindre, on adopte des principes la qualité du logiciel est fondamentale elle est aperçue différemment selon les points de vue : qualité externe : client, utilisateurs qualité interne : développeurs, gestionnaires pour l’atteindre, on adopte des principes participation des activités et modèles de développement l’utilisation de l’approche OO participe aussi beaucoup à remplir ces objectifs BOURBET.M

Résumé général logiciel ≠ programme problèmes :  pas fiable  dépassements (délais, coûts)  non conforme au cahier des charges génie logiciel :  démarche ingénierique  méthodes, principes, outils méthodes :  processus de développement  activités et modèles (cascade, V, spirale) principes : pour atteindre des objectifs de qualité outils : Ateliers de Génie Logiciel (AGL) BOURBET.M

Conclusion situation en progrès :  logiciel plus fiable  plus facilement modifiable  satisfait mieux les utilisateurs en contrepartie, les problèmes sont plus critiques,  centr. téléph., centrales nucléaires  avions, spatial, ferroviaire  banque, bourse, … plus complexes,  de plus en plus de fonctionnalités  systèmes distribués  mutations technologiques rapides et les exigences plus fortes (fiabilité, permanence du service) la maîtrise du logiciel reste un défi scientifique et technologique majeur BOURBET.M