Upload
ossama
View
716
Download
0
Embed Size (px)
Citation preview
Diplôme d’Université Génie Logiciel
P RO G R A M M ED E S É T U D E S
GÉN I EC I ELL OG I
G É N I E L O G I C I E L
D
D
I P L Ô M E
’ UNI VERSI TÉ
SOMMAIRE
PRÉSENTATION GÉNÉRALE 1Coordinateur pédagogique: ..............................................................................................1
PROGRAMME DES ÉTUDES 1
ADMISSION 2Renseignements.................................................................................................................2
MATIÈRES ENSEIGNÉES 2FUTE3 / TLC : Théorie des langages et compilation 3FUTE3 / PI : Programmation impérative 4FUTE3 / PO : Programmation objet 5FUTE3 / SYS : Systèmes d’exploitation 6FUTE3 / METH : Méthodologie de développement de logiciel 7FUTE3 / UNIC : Pratique du système Unix 8FUTE3 / C : Programmation en C 9FUTE3 / RES : Réseaux 10FUTE3 / ALG : Algorithmique des graphes (option) 11FUTE3 / PPR : Programmation parallèle et répartie (option) 12FUTE3 / PTR : Programmation temps réel (option) 13
PRÉSENTATIONGÉNÉRALE
PRÉSENTATION GÉNÉRALE
Le Diplômed'UniversitéGénieLogicieestundiplômedesecondcycle.Ouvertuniquementen formationcontinue,il s'adresseà desstagiairestitulaires d'un DUT ou BTS scientifique, ou possédantun niveauéquivalentavecuneexpérienceprofessionnelle.Il répondà un besoinde formationdanscertainsmétiers,tels ceux liés à l'électroniqueparexemple,où l'informatiqueestde plus en plus présente.Il donneparailleurs la possibilitéà desinformaticiensprofessionnelsde mettreàjour leurs connaissances.
Il estconstituéd'untronccommundehuit modulesetd'uneoption,pourunvolumehoraireglobalde580h,avecunepossibilitédevalidationdesacquispouvantautoriserunedispenseconcernantcertainsmodules.Laformation complètedure un an, avec des périodesd'alternanceenentreprisepour lessalariés.La capitalisationdesmodulesestpossible,permettant d'acquérir le Certificat sur plus d'un an.
Les stagiairesayant suivi la formation pourront s'intégrerdansdeséquipes de conception, de développementet de maintenancedelogicielscomplexes.Le contenude la formationseveutsuffisammentfondamentalpourquelesdiplôméspuissentévoluerà long termedansle métierd'ingénieurdu logiciel en s'adaptantà l'évolution trèsrapidedestechnologiesdanscedomaine.Unepoursuited'étudeestparailleursenvisageable, par exemple en DESS Isa.
Coordinateur pédagogique:
Raoul Vorc'h, Maître de conférences Ifsic
PROGRAMME DES ÉTUDES
Si lesméthodesdeconceptionetdeprogrammationobjetprennentunepart importantedansla formation,celle-cicouvreparailleursun largespectredessavoirsnécessairesà un informaticienpour concevoiretréaliser des logiciels: systèmesd'exploitation, réseaux,théorie deslangageset compilationetc.Un moduledeprogrammationimpérativepermet aux débutantsen programmationd'acquérir les méthodesfondamentalesd'écrituredesalgorithmes.Enfin, un moduleoptionnel
2
ADMISSION
permetunespécialisation: programmationtempsréel,programmationparallèle et répartie etc.
ADMISSION
L'admission s'effectue sur dossier et entretien.
Diplômesrequis: DUT ouBTSscientifique,ouniveauéquivalentavecune expérience professionnelle.
Renseignements
Service d'Éducation Permanente4, rue Kléber35000 Rennes.Tel. 02 99 84 39 63http://www.univ-rennes1.fr/sep/
MATIÈRES ENSEIGNÉES
Lesdifférentesmatièressontdécritesdanslespagessuivantes: nepagepar matièrequi comprendune présentation,un plan, le sigle de lamatière et le nombre d'heures d'enseignement.
3
MATIÈRESENSEIGNÉES
FUTE3 / TLC : Cours: 40 heures; TP: 30 heures.
FUTE3 / TLC : Théorie des langages et compilationFUTE3 / TLC : Cours : 40 heures; TP : 30 heures.Diplôme d’Université Génie LogicielThéorie des langages et compilationLe cours comportedeux volets: (1) une initiation à la théorie deslangages,grammairesetautomates,langagesréguliers(ourationnels)etnon-contextuels(algébriques)et (2) un enseignementde compilation,analysesyntaxiqueLL(1), pointsde génération,schémasd’exécutionfondamentaux.
D’un pointdevuepratique,onparticipeàl’écritured’un compilateurenajoutant des fonctionnalités à un compilateur existant. Laprogrammationest faite en Eiffel et l’un des intérêtsdes exercicesproposésrésidedansl’étude de la structurationd’un logiciel de tailleconséquente.
PLAN
1. Introduction à la théorie des langages et à la compilation• structure d’un compilateur, outils pour la construction de compilateurs;• vocabulaires, mots et langages.
2. Automates à nombre fini d’états et langages rationnels• langages reconnaissableset automates finis, déterministesou non,
minimisation, équivalences, lemme de l’étoile;• langages et expressions rationnels;• programmation par automate; applications à l’analyse lexicale.
3. Grammaires et classes de langages• grammaires et dérivations; classification de Chomsky.
4. Langages algébriques• grammaires non-contextuelles et arbres syntaxiques;• formes normales, automates à pile, équivalences, lemme d’itération.
5. Analyse syntaxique descendante LL(1) et automates procéduraux• ensembles premiers et suivants, analyse LL(1);• utilisation de la pile de récursivité;• autres techniques; générateurs d’analyseurs syntaxiques.
6. Analyse sémantique et génération• contrôles statiques de types;• production de code à l’aide de points de génération.
7. Quelques schémas d’exécution fondamentaux
4
MATIÈRESENSEIGNÉES
FUTE3 / PI : Cours: 50 heures; TP: 30 heures.
FUTE3 / PI : Programmation impérativeFUTE3 / PI : Cours : 50 heures; TP : 30 heures.Diplôme d’Université Génie LogicielProgrammation impérativeCemoduleestuneintroductionàl’algorithmiqueetàla programmationimpérative, avec application aux structures de donnéesles plusclassiques.La premièrepartie s’adresseà des personnesayant unepratiquede l’informatique, mais pouvantn’avoir jamaisprogrammé.Les premiersexemplessontdonnésdansun Langagede Descriptiond’Algorithmes. Les exemplessuivantset les travaux pratiquessonteffectués en Eiffel.
PLAN
1. Algorithmique et programmation de base• types simples: entiers, booléens, avec leurs opérateurs;• nommage; affectation; séquentialité; entrées-sorties;• conditionnelle;• sous-programmes;• itération;• objets généraux(en Eiffel) : création, affectation, propriétés,notation
pointée;• tableaux.
2. Programmation et structures de données• les autres types simples: réels, caractères;• les types généraux« utilisateur » (exempled’un type DATE) ; classe,
création,initialisation,propriétés,accès,protection,préetpost-conditions;• retour sur l’itération (invariant, terminaison);• tableaux (approfondissement): ensemble d’objets; tableau trié
(dichotomie); évaluation des coûts; méthodes de tri;• adressage dispersé;• structureschaînées: cellules,listes; utilisation itérative; programmation
récursive des listes;• arbres: binaires de recherche; "en tas" (le heapsort); arbres N-aires.
5
MATIÈRESENSEIGNÉES
FUTE3 / PO : Cours: 40 heures; TP: 40 heures.
FUTE3 / PO : Programmation objetFUTE3 / PO : Cours: 40 heures; TP : 40 heures.Diplôme d’Université Génie LogicielProgrammation objetCe moduleconstitueuneprésentationcomplètede la programmationparobjets.Lesconceptsfondamentauxdecetteprogrammationy sontprésentés: classes, généricité, héritage ainsi que les aspectsdynamiques: objets, polymorphisme, liaison dynamique. Cetteprésentations’appuiesurl’étudedetroislangages: Eiffel, C++,etJava.
Les Travaux Pratiquess’appuient sur l’EDI EiffelBench, sur lesbibliothèquesC++ et sur lesoutils dedéveloppementJavadisponiblesà l’Ifsic.
PLAN
1. Les principes de base de la programmation objet• classes, attributs et méthodes; objets, champs et messages;• gestion des objets: création, modification, destruction; gestion de la
mémoire: pile, tas;• outils pour la qualité: assertions, exceptions.
2. Les concepts avancés (outils pour la réutilisabilité)• généricité;• héritage simple; liaison dynamique, polymorphisme; surcharge;• classes abstraites et interfaces;• héritage multiple et répété.
3. Misesenoeuvre: étudecomparativedeslangagesEiffel, C++,Java• environnements de programmation;• directives de compilation;• organisation des classes.
6
MATIÈRESENSEIGNÉES
FUTE3 / SYS : Cours: 70 heures.
FUTE3 / SYS : Systèmes d’exploitationFUTE3 / SYS : Cours: 70 heures.Diplôme d’Université Génie LogicielSystèmes d’exploitationCe cours présentela structure et le fonctionnementdes systèmesd’exploitationmulti-usagersmultiprogrammés: notiondeprocessusetde ressource, allocation de ressources(processeur,mémoire,...),gestion de processus,coopérationet compétition entre processus,systèmes d’entrées/sorties, systèmes de gestion de fichiers.
PLAN
1. Aspects liés au matériel• architecture d’un ordinateur;• langage d’assemblage;• sous-programmes;• mécanismes d’adressage et accès aux objets en mémoire;• entrées-sorties: coupleurs et périphériques, E/S physiques.
2. Systèmes d’exploitation• rôle d’un système d’exploitation, notions de processus et de ressources;• allocationderessources: allocationdeprocesseursetdemémoire,mémoire
virtuelle paginée, interblocage;• coopérationentreprocessus: exclusionmutuelle,sectioncritique,outilsde
synchronisation;• problème de synchronisation dans les systèmes de gestion des E/S;• système de gestion de fichiers;• désignationdesobjetsdansun programme: modèlepour la désignationet
la liaison, partage d’objet, édition de liens dynamique.
7
MATIÈRESENSEIGNÉES
FUTE3 / METH : Cours: 50 heures; TP: 40 heures.
FUTE3 / METH : Méthodologie de développement de logicielFUTE3 / METH : Cours : 50 heures; TP : 40 heures.Diplôme d’Université Génie LogicielMéthodologie de développement de logicielLe module donnedes techniquesde développementde logiciels degrandetaille (de quelquesmilliers à quelquescentainesdemilliers delignesdecodesource).Il portesurdestechniquesd’analyseparobjets(méthodes OMT, notation UML), de conception (patrons deconception), de gestion de qualité (politique de test, gestion dedocumentation)et de gestionde cycle de vie (versions,extensions,politique de gestion).
La premièrephasedu moduledonneles techniquesélémentairesdeconceptionparobjetset fait suiteaumoduledeprogrammationobjet;elle permetd’améliorerl’efficacité desstagiaireslors deleur projetenentreprise.La secondephasecontientdescours,TD etTPincluanttousles aspectsimportantsdestechniquesde développementde logiciel :définition de projet, analyse,conception,mise en oeuvre et test,maintenance.Un projetdedéveloppementcompletd’un logiciel sous-tend l’ensemble des enseignements.
PLAN
1. Sensibilisation aux problèmes; méthodes de micro-développement• sensibilisationaux problèmesgénérauxde l’ingénierie du logiciel : taille,
coût, évolutivité, qualité;• processusde macro-développement: méthodes, analyse, conception,
construction, test, maintenance;• introduction à la notation UML;• processus de micro-développement: modularité (méthode CRC),
documentation,tests (contrats de service, non-régression),gestion deversions;
• mini-projet d’application du processus de micro-développement:conception, développement, tests et documentation.
2. Méthodes et outils pour le macro-développement• processus de macro-développement, gestion de projet, cycle de vie;• la notation UML (CM);• les patrons de conception à objets (design patterns);• développementd’une application: analyse,conception,constructionet
tests, recette, maintenance corrective et évolutive;• pratiquedesoutils (éditeurs,AGL, gestionnairede configuration)sur un
exemple concret.
8
MATIÈRESENSEIGNÉES
FUTE3 / UNIC : Cours: 15 heures; TP: 15 heures.
FUTE3 / UNIC : Pratique du système UnixFUTE3 / UNIC : Cours : 15 heures; TP : 15 heures.Diplôme d’Université Génie LogicielPratique du système UnixLe coursprésenteles conceptsde basedu système,son systèmedefichiers,le fonctionnementdescommandesessentielles,tout enfaisantressortirlespiégeset difficultés. Commela conceptiondu systèmeseréfléchitdansle langagedecommandes,le « shell», il estimportantdebien maîtriser les mécanismesliés aux processuspour en tirer lemeilleur parti. Ici, le fossé avec Windows est énorme.
PLAN
1. Introduction• vue générale sur Unix; forme des commandes, la commande man; ;• présentation de X-Windows; Netscape; la messagerie.
2. Le système de fichiers• hiérarchie de fichiers, déplacements dans la hiérarchie; ;• protections, droits d’accès, copie, renommage, liens, affichage,.
3. Les shells• le Bourne-Shell, le C-Shell et les autres; ;• variables, environnement; redirections; instructions;• sous-programmes (script), fichiers de démarrage; .
4. Les outils de recherche: grep, whereis, find,
5. Les processus• création et composition, représentation, visualisation des processus; ;• synchronisation, filiation, mort des processus;• processus et redirection, processus périodiques, processus différés.
6. Les éditeurs• l’éditeurs de texte emacs; expressions régulières; ;• éditeurs de texte en mode série, sed et ed; écriture de filtres Shell.
7. Traitement sur les textes• outils pour trier, couper, joindre, calculer; l’outil awk.
8. Compilation, exécution et édition de liens
9. Divers• gestion des sources: le SCCS; le configurateur: make.
9
MATIÈRESENSEIGNÉES
FUTE3 / C : Cours: 15 heures; TP: 15 heures.
FUTE3 / C : Programmation en CFUTE3 / C : Cours : 15 heures; TP : 15 heures.Diplôme d’Université Génie LogicielProgrammation en CL’objectif dustageestdeprésenterl’ensembledesélémentsdulangageet de donnerdes notions de conceptionstructuréeet de modularitéappliquées au langage C à l’aide d’exemples détaillés.
La présentationdesélémentsdu langageestaccompagnéed’exemplessimples.Lesoutilsdeconceptionsontintroduitsenpartantd’exemplesdétaillés pas à pas.
Des séancesde travauxpratiquessur machinepermettentde mettredirectement en pratique les notions et les exemples étudiés en cours.
PLAN
1. Éléments de programmation structurée• décomposition descendante;• découpage en fonctions;• étude d’un exemple de décomposition (à suivre).
2. Les outils de base du langage C• les types prédéfinis;• les opérateurs et les expressions;• les structures de contrôle.
3. Structuration des programmes• les fonctions, les paramètres;• les classes d’allocation;• la compilation séparée.
4. Structuration des données• les tableaux;• les types structurés;• les types synonymes et énumérés.
5. Éléments avancés• les pointeurs;• les fichiers;• l’allocation dynamique;• les tableaux de pointeurs.
6. Notion de composant logiciel• présentation du concept de réutilisabilité à partir d’un exemple.
10
MATIÈRESENSEIGNÉES
FUTE3 / RES : Cours: 70 heures; TP: 20 heures.
FUTE3 / RES : RéseauxFUTE3 / RES : Cours: 70 heures; TP : 20 heures.Diplôme d’Université Génie LogicielRéseauxCecoursintroduit lesnotionsfondamentaleset les techniquesdebasenécessairesà la compréhensiondesdifférentsmécanismesintervenantdans les réseaux informatiques.
La premièreparties’appuiesurle modèlederéférenceOSI : techniquesdetransmissiondu signalprenantencomptelescontraintesphysiquesliées aux différents types de supports; mécanismesde basemis enoeuvrepourassurerla transmissiondedonnéesnumériques; protocolesde plus hauts niveaux.
La deuxièmepartie,parle biaisdela présentationdenouvellesfamillesprotocolaires,montrelesconceptset lesmécanismespropresà assurerla transmissiondedonnées.De nombreusesvariantesdesmécanismesdebasevont êtredifféremmentabordéespourendécouvrirlesressortsprofonds.Nousétudieronslesréseauxlocaux,Internet,l’administrationdu réseau, et quelques réseaux à haut débit.
PLAN
1. Introduction aux réseaux informatiques
2. Transmission du signal (couche Physique du modèle OSI)
3. Transmission de trames (couche Liaison de données)
4. Transmission de paquets (couche Réseau)
5. RNIS (Réseau Numérique à Intégration de Services)
6. La couche Transport et les couches hautes de l’OSI
7. Réseaux locaux
8. Interconnexion de réseaux locaux
9. Internet: IP
10.Protocoles de transport: TCP et UDP
11.Routage et résolution d’adresse
12.L’administration du réseau
13.Réseaux à haut débit: FDDI, Frame relay, ATM
11
MATIÈRESENSEIGNÉES
FUTE3 / ALG : Cours: 20 heures; TP: 20 heures.
FUTE3 / ALG : Algorithmique des graphes (option)FUTE3 / ALG : Cours : 20 heures; TP : 20 heures.Diplôme d’Université Génie LogicielAlgorithmique des graphes (option)Le but de ce moduleestdouble: d’une part, il constitueun apportdeconnaissancesalgorithmiquesbaséessur un modèle fréquemmentrencontréen informatiqueet réseaux; d’autrepart, la miseen oeuvredes algorithmes permet d’appliquer l’approche objet de laprogrammation vue par ailleurs.
PLAN
1. Le type « Graphe » et ses représentations
2. Typologie de problèmes: existence, énumération, structure,optimum
3. Existence de chemins• fermeture transitive, algorithme de Roy-Warshall;• méthodes d’exploration de la descendance d’un sommet.
4. Problèmesdecircuit et deconnexité: algorithmesdeMarimont,deFoulkes
5. Chemins de valeur optimale• algorithmes de Bellmann-Kalaba; algorithme ordinal;• algorithme de Warshall généralisé.
6. Application aux problèmes d’ordonnancement: modélisationpotentiel-tâches
12
MATIÈRESENSEIGNÉES
FUTE3 / PPR : Cours: 20 heures; TP: 10 heures.
FUTE3 / PPR : Programmation parallèle et répartie (option)FUTE3 / PPR : Cours: 20 heures; TP : 10 heures.Diplôme d’Université Génie LogicielProgrammation parallèle et répartie (option)Le but de ce coursestd’introduire, d’une part, le conceptd’activitésparallèleset d’autrepart lesmécanismeset lesméthodesdecréationetde synchronisation.Cesaspectsserontabordésd’abordd’un point devue systèmeet ensuited’un point de vue langagesde programmationdans les deux contextes centralisé et réparti.
PLAN
1. Introduction• modèles parallèle/réparti;• communication.
2. Synchronisation (approche centralisée)• sémaphores;• rendez-vous;• moniteurs.
3. Synchronisation répartie• exclusion mutuelle;• détection de la terminaison.
4. Approches langage/système• IPC (Unix) ;• CSP et Ada;• Java.
13
MATIÈRESENSEIGNÉES
FUTE3 / PTR : Cours: 20 heures; TP: 10 heures.
FUTE3 / PTR : Programmation temps réel (option)FUTE3 / PTR : Cours : 20 heures; TP : 10 heures.Diplôme d’Université Génie LogicielProgrammation temps réel (option)Ce module passeen revue différentesméthodesde programmationd’applicationsdansle domainedessystèmesTempsRéels.L’approchesynchroneest plus particulièrementdéveloppée,avecapplicationsetmise en œuvre dans le langage synchrone Signal.
PLAN
1. Introduction au génie logiciel temps réel
2. Les concepts temps réel dans la programmation• Temps continu/temps discret;• Modélisation des procédés;• Représentation des événements dans les systèmes continus; Simulink.
3. Méthodologie• SART ; UML et le temps réel; STATECHARTS.
4. Les concepts temps réel dans la programmation• ADA et le rendez-vous, le non déterminisme;• VHDL et le temps simulé;• Principe d’abstraction synchrone;• Sous-ensembles pour le temps réel dur;• Sparc ADA;• Traits dangereux en C;• Utilisation de l’assembleur.
5. La conceptionde systèmestemps réel dans un modèle flot dedonnées
• Suite discrète de valeurs, signaux, processus;• Signaux réguliers et calculs associés;• Itération de calculs;• Variables d’état, Composition;• Signaux non réguliers et calculs associés;• Sélection, Entrelacement;• Gestion d’événements;• Programmation de concepts temps réel en SIGNAL.
6. La modélisation et la vérification des applications temps réel• Rappels sur les OS;• Gestion de tâches et ordonnancement;• Vérifications de mise en oeuvre;• Panorama des systèmes temps réel.
14
MATIÈRESENSEIGNÉES