Attention: nouvelle version disponible

Cette page est conservee en raison de l'existence de liens externes anciens.
La page web sur laquelle se trouvent mes supports de cours les plus recents et leurs descriptifs se trouve sur un nouveau site: cours laurent henocque.

Autres liens

Vous etes peut etre interesses par laurent sur free, laurent a l'esil, laurent au lsis, le groupe de recherche en configuration, laurent sur flickr, laurent sur le 'flickr viewer & tool' darckr.

Mes cours

Cette page présente les différents cours que je dispense. Certains polycopiés y sont accessibles, tous le seront progressivement. L'esprit général de l'enseignement du génie logiciel à l'école est que les aspects descriptifs (conception, puis analyse, spécification) sont acquis après que les aspects techniques de l'activité du programmeur soient connus. Pour cela, les étudiants réalisent des projets difficiles, maintenus et améliorés d'année en année, afin d'être dégrossis aux problèmes posés par l'informatique " industrielle ". L'année 1 est celle du programmeur de base (C, application à X Window), l'année 2 est celle du concepteur (contrôle qualité, conception orientée objet, conception des interfaces homme machine), l'annee 3 est celle de l'analyste et du chef de projet.

L'option logiciel permet d'aborder avec un grand détail les notions abordées en tronc commun. En particulier, les normes " vraies " (ISO, ANSI, IEEE, AFNOR) et les normes de fait les plus utiles sont présentées avec soin.

Dernière mise à jour le 15/2/99


Les cours de première année

  • GL02TC/CQD Contrôle qualité et méthodes de développement - 20 heures

  • Les cours de deuxième année


    Les cours de troisième année

    Tronc commun

    Option

    GL02TC/CQD
    Contrôle qualité et méthodes de développement

    Présentation

    Ce cours permet à l'étudiant de maîtriser son activité individuelle de programmeur. A ce titre, il constitue la pierre de base de tous les enseignements de génie logiciel. Il en constitue d'ailleurs un prérequis.

    Contenu

    Les concepts abordés sont notamment :

    Prérequis

    Compétence avérée en développement avec des languages comme C ou Pascal. Connaissance du language shell " sh " sous Unix. La connaissance de C++ est utile, car le language sert aux exemples d'application dans le cours.

    Objectifs pédagogiques

    Après ce cours, l'étudiant possède des bases solides pour organiser son activité de programmeur. Les concepts abordés sont totalement détachés de la programmation orientée objet, et peuvent être utilisés avec tout language de programmation.

    Organisation

    Ce cours est dispensé en tronc commun aux élèves de deuxième année de l'école. Volume horaire : 20 heures de cours et travaux dirigés. Notation : un examen sans documents en fin de module, et contrôle continu lors des td.

    Références

    Bertrand Meyer : Object Oriented Software Construction : Prentice Hall

    Le polycopié

    GL02TC/COO
    Conception Orientée Objet

    Présentation

    Ce cours apporte les notions fondamentales de la programmation orientée objet, et apprend à structurer les classes selon différents grands principes : notion de modèle, de modularité, métaphore de la machine. Un accent particulier est porté sur la conception des interfaces de programmation, et sur l'organisation des classes suivant les "design patterns " connus.

    Le cours s'appuie sur C++ ou JAVA le pour les travaux dirigés et les travaux pratiques.

    Prérequis

    Savoir programmer en C ou Pascal.

    Objectifs pédagogiques

    Savoir dériver une conception objet bien organisée, compréhensible, pouvant évoluer, utilisable et réutilisable, à partir des spécifications d'un logiciel.

    Organisation

    Ce cours est dispensé en tronc commun aux élèves de deuxième année de l'école. Volume horaire : 20 heures de cours et travaux dirigés. Notation : un examen sans documents en fin de module, et contrôle continu lors des td.

    Références

    Object Oriented Software Construction, par Bertrand Meyer, Prentice Hall (existe aussi en français)

    Object Oriented Modelling Technique, James Rumbaugh

    UML11, copie miroir du draft de la spécification de UML11

    Design Patterns : Elements of Reusable Object Oriented Software, par Erich Gamma et Al., Addison Westley professional computing series (existe aussi en français)

    Object Oriented Analysis and Design with applications, par Grady Booch, Benjamin Cunnings Publishing Company

    Object Oriented Analysis, par Coad et Yourdon, Yourdon Press Computing Series

    Programmation Java, par Macary et Nicolas, Eyrolles

    C++, par Bjarne Stroustrup, Addison Wesley

    Langage C++, par Charbonnel, Masson

    Vers Ada 95 par l'exemple, par Fayard et Rousseau, De Boeck Université

    Un polycopié pas encore disponible ici.

    GL02TC/
    C++

    Présentation

    Ce cours présente le langage C++ en insistant sur l'ingénierie du C++ dans l'industrie du logiciel. La couverture du langage est complète et présente les derniers développements de la norme ANSI: STL, nouveaux mots clef du langage.

    Prérequis

    Le module GL02TC/COO.

    Organisation

    Ce cours de tronc commun de 40 heures est noté par contrôle continu lors des séances de td, par un projet réalisé pendant les tp du cours et par examen. Tous les projets de l'école qui le permettent sont réalisés en Java ou en C++ si c'est réaliste. Le projet global de génie logiciel de deuxième année également. Par ailleurs les étudiants apprennent à utilisaer des bibliothèques C++ commerciales (Ilog Views par exemple).

    Références

    C++, par Bjarne Stroustrup, Addison Wesley

    Langage C++, par Jacquelin Charbonnel, Masson

    Un manuel de référence résumé assez détaillé : le poly C++

    GL02LO/IHM
    Conception des interfaces homme machine

    Présentation

    Ce cours présente les aspects techniques fondamentaux de la conception et de la réalisation des interfaces homme machine. On y apprend à structurer une application qui en comporte selon des principes d'organisation (l'utilisateur parfait notamment), de modélisation (organisation de l'interface autour de la notion d'états ou de contextes, en utilisant les diagrammes d'états de Unified Modelling Language) et d'ergonomie.

    Le cours utilise pour les travaux dirigés et travaux pratiques la bibliothèque Ilog Views.

    Contenu

    Prérequis

    Les modules GL02TC/CQD et GL02TC/COO.

    Objectifs pédagogiques

    Savoir concevoir une interface homme machine couplée de façon harmonieuse aux codes des algorithmes, savoir en organiser et en contrôler la dynamique interne, savoir organiser la conception et le développement d'une interface importante (plusieurs centaines d'écrans). Savoir produire un document de spécification d'IHM.

    Organisation

    Ce cours est dispensé en Option logiciel aux élèves de deuxième année de l'école. Volume horaire : 20 heures de cours et travaux dirigés. Notation : un examen sans documents en fin de module, et contrôle continu lors des td.

    Références

    Ilog Views, manuels de référence et d'utilisation

    OMT, UML10, UML11, copie miroir de la spécification de UML11 (10/1998)

    Support de cours

    Un polycopié non encore disponible ici.

    GL03TC/CDC
    Analyse, cahier des charges fonctionnel

    Présentation

    Ce cours aborde les phases les plus en amont du développement : définition des besoins, spécification des besoins, rédaction du cahier des charges. On étudie en détail un exemple de modèle de cahier des charges industriel, et la norme du cahier des charges fonctionnel, en connexion avec l'analyse de la valeur. Un accent particulier est porté sur les méthodes d'expression du besoin.

    Le cours présente également deux méthodes de créativité utilises en phase amont du développement : la méthode CORE et l'Analyse de la Valeur.

    Les modèles connus de cycles de vie logiciel sont également présentés dans ce cours : cascade, v, prototypage, spirale et son évolution récente : le développement rapide (RAD).

    Prérequis

    Les modules GL02TC/CQD et GL02TC/COO.

    Objectifs pédagogiques

    L'étudiant doit à l'issue du cours être capable de rédiger un cahier des charges et d'avoir une vision réaliste de la place et de l'organisation du projet dans le temps. Les aspects élémentaires de la gestion de projet (métriques, procédés) ne sont cependant pas couverts par ce cours.

    Organisation

    Ce cours de tronc commun dure 20 heures : 10 heures de cours, 10 heures de td.

    Références

    Le génie logiciel, par Sommerville, Addison Wesley

    Software Engineering, IEEE standards collection

    les normes ISO :

    nf en iso 9001: Modèle pour l'assurance de la qualité en conception, développement, production, installation et prestations associées

    nf en iso 9000-3: Normes pour la gestion de la qualité et l'assurance de la qualité : applicationde l'iso 9001 au développement, à la maintenance et à la mise à disposition du logiciel

    les normes AFNOR:

    nfx 50-150: Analyse de la valeur, analyse fonctionnelle : vocabulaire

    nfx 50-151: Guide pour l'élaboration du cahier des charges fonctionnel

    nfx 50-152: Analyse de la valeur : caractéristiques fondamentales

    nfx 50-153: Analyse de la valeur : recommandations pour sa mise en oeuvre

    Support de cours

    Un polycopié non disponible ici pour l'instant.

    GL03TC/IGP
    Introduction à la gestion de projet

    Présentation

    Ce cours aborde de façon générale les aspects les plus externes de la gestion des projets et des hommes. L'accent porte spécialement sur les aspects humains : communication, négotiation, organisation du travail, et aborde les aspects techniques du suivi des projets : suivi et respect des plannings, obtention de la traçabilité, organisation des tests unitaires, éléments de gestion de configuration, etc...

    Une introduction à l'assurance qualité est faite par la présentation des normes ISO9000-* et la pratique de la réalisation de plans qualité.

    Prérequis

    Les modules GL02TC/CQD et GL02TC/COO.

    Objectifs pédagogiques

    L'étudiant doit comprendre la place qu'il occupe dans une équipe organisée, et être capable de structurer l'activité d'une petite équipe en évitant les écueils d'un exercice mal compris de l'autorité.

    Organisation

    Ce cours de tronc commun dure 20 heures, 10 heures de cours plus 10 heures de travaux dirigés.

    Références

    Managing the Software Project, Humphrey, Addison Wesley

    Maitrisez votre gestion de configuration logiciel, une étape pour la certification Iso 9000, par Dominique Jacquin, Masson

    Software Reliability Handbook, Rook, Elsevier

    Le génie logiciel, Sommerville, Addison Wesley

    Software Engineering, IEEE standards collection

    CMM, par le software engineering institute

    les normes ISO :

    nf en iso 9001: Modèle pour l'assurance de la qualité en conception, développement, production, installation et prestations associées

    nf en iso 9000-3: Normes pour la gestion de la qualité et l'assurance de la qualité : applicationde l'iso 9001 au développement, à la maintenance et à la mise à disposition du logiciel

    Support de cours

    Introduction à la gestion de projet.

    GL03LO/SFZB
    Spécification formelle : les langages Z et B

    Présentation

    Ce cours présente le cadre général des méthodes de spécification formelle, et décrit deux langages à l'utilité industrielle reconnue : Z et B. L'étudiant apprend à utiliser ces langages pour produire la spécification du logiciel, et à dériver progressivement la conception. On apprend à reconnaître et à satisfaire les obligations de preuve. L'outil atelier B sera utilisé si possible dans le cadre des TD et TP, ainsi que le vérificateur de type ZTC du domaine public..

    Prérequis

    Les module GL03TC/CDC et GL02TC/COO.

    Objectifs pédagogiques

    Permettre à l'étudiant d'être immédiatement opérationnel dans un contexte industriel qui utilise Z ou B, ou bien de suggérer l'utilisation de l'une de ces méthodes dans une situation qui lui paraîtrait appropriée.

    Organisation

    Le cours dure 20 heures dont 6 heures de cours et 14 heures d'atelier (td).

    Références

    The B Book, par J.R.Abrial, Cambridge University Press

    Z an introduction to formal methods, par Antoni Diller, Wiley

    The Z Notation, a reference manual, Prentice Hall International Series in Computer Science

    Support de cours

    Non encore disponible ici.

    GL03LO/AOO
    Modélisation et Analyse Orientée Objet,

    Unified Modelling Language

    Présentation

    Ce cours d'Option présente Unified Modelling de Rational, qui dans la lignée de OMT, OOA et la méthode des Use Case est promise à un bel avenir industriel. La pratique de la méthode est encouragée pour tous les projets et les stages de troisième année en Option.

    Prérequis

    Les modules GL03TC/CDC et GL02TC/COO.

    Objectifs pédagogiques

    Etre opérationnel sans formation.

    Organisation

    Ce cours d'Option logiciel de 20 heures consiste en 6 heures de cours et 14 heures d'atelier (td).

    Support de cours

    Le poly.

    Certains documents publics du site de Rational sont en miroir ici :

    GL03LO/CMM
    Gestion des processus de développement

    le modèle d'évolution des capacités

    Présentation

    Après une présentation de la problématique de générale de la gestion des processus de développement, le cours présente le modèle d'évolution des capacités du SEI (Capacity Maturity Model).

    Par ailleurs, ce cours situe le contexte industriel de la gestion électronique de documents (les métiers de l'entreprise de production : études, méthodes, et le "reverse engineering " notamment), et les outils apportant des solutions techniques aux différents problèmes posés : gestion de configuration, nomenclatures etc... L'outil utilisé pour les TD et TP est l'applicatif Métaphase.

    Prérequis

    Le module GL03TC/CDC.

    Objectifs pédagogiques

    L'étudiant doit comprendre à l'issue du cours l'organisation générale du modèle d'évolution des capacités, et structurer ainsi sa compréhension des différents métiers de l'organisation productrice de logiciel. Il doit être capable d'accompagner ou de susciter l'évolution de la société vers des niveaux croissants de maturité, que cela soit où non fait en parallèle avec la normalisation ISO d'assurance qualité.

    Organisation

    Ce cours d'Option de vingt heures est noté par examen sans documents.

    Support de cours

    La norme à diffusion autorisée plus un polycopié.

    Certains documents publics du Software Engineering Institute sont en miroir sur ce site:


    Le projet LSD (Luminy Software Distribution)

    Ce projet consiste en un ensemble à peu près cohérent d'outils pour le génie logiciel réalisés par les étudiants eux mêmes, durant la deuxième année. Les projets utilisent des bibliothèques communes, et sont maintenus et améliorés d'année en année.

    La page d'accueil de LSD

    responsable : Taibi

    La bibliothèque doutils de base : listes, tableaux, tables hashées etc...

    responsable : Marton

    Un générateur de compilateurs

    responsable : Devulder

    Un générateur de compilateurs qui backtrackent

    responsable : Doco

    Des utilitaires de gestion despace de projet, et la responsabilité de contrôler que tout se fait correctement

    responsable : Doco

    responsable : Capponne

    Un outil de mise en forme de sources

    responsable : Molina

    Un programme de vérification statique des sources

    responsable : Battini

    Un makefile qui génère automatiquement des statistiques de compilation

    responsable : Badar

    Une bibliothèque qui permet denvoyer automatiquement des statistiques dutilisation des programmes au concepteur

    responsable : Moro

    Un outil graphique de spécificationn de modèles OMT

    responsable : Cohen

    Un générateur de sources C++ a partir du langage OML

    responsable : Slim

    Des classes permettant lexécution des programmes OML

    responsable : Baratchar

    Un générateur de Java a partir de C++

    responsable : Signoret

    Une base de données texte indexé (type search engine)

    responsable : Batailler

    Visualiser les données, un rêve

    responsable : Bardiot

    Un extracteur de spécifications a partir de sources C++ : génère du source octo et du html

    responsable : Alaoui

    Un programme qui génère automatiquement des fonction membre de lecture / ecriture dinstances dans des fichiers ascii

    responsable : Gouvernelle

    Un programme qui génère automatiquement des fonctions membres de browsing dinstances

    responsable : Attard

    Un programme qui génére automatiquement des programmes de test a partir des sources

    responsable : Toiron

    Un programme qui insère du profiling dans les sources

    responsable : Gegetieh

    Pour visualiser des graphes de dépendance fonctionnelle des programmes

    responsable : Zino

    Pour parler a distance à des objets

    responsable : Teglia

    Pour lancer des programmes à distance

    responsable : Giordano

    Pour traduire des fichiers BD (file force) vers html

    responsable : Court

    Des sockets cryptés

    responsable : Ransan

    Une interface de gestion de projet

    responsable : Giordano

    Un éditeur de html

    responsable : Ait

    Un outil de visualisation de différences entre fichiers

    responsable : Gras

    Un browser de fichiers en 3D

    responsables : Gauvrit et Minard

    responsable : Bonnafoux

    Un programme pour tester la bonne syntaxe de spécifications Z

    responsable : Dubois

    générer du html navigable a partir de sources C++

    responsable : Pellegrin

    Un autre algo de cryptage (DES), sur la même interface de programmation

    responsable : Brouchier

    Un outil de communications par broadcast avec abonnement

    responsable : Guidault

    Comme son nom lindique, couplé avec config

    responsable : Bourbier

    Comme SCCS, mais permettant en plus darchiver des fiches correspondant à des documents sur étagère

    responsable :

    responsable : Morell

    responsable : Hugon

    En collaboration avec WAM, un programme pour décrire des processus et les dérouler.

    responsable : Kris

    Une interface client sur le serveur de processus (voir plus bas)

    responsable : Baruchello

    responsable : Aubion

    responsable : Barberio

    responsable : Morand