18
PROGRAMME DES ÉTUDES GÉNI E CIEL LOG I G É N I E L O G I C I E L D D I P LÔME ’ UNI VERS I TÉ

Genie Logiciel

  • Upload
    ossama

  • View
    716

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Genie Logiciel

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É

Page 2: Genie Logiciel
Page 3: Genie Logiciel

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

Page 4: Genie Logiciel
Page 5: Genie Logiciel

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

Page 6: Genie Logiciel

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.

Page 7: Genie Logiciel

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

Page 8: Genie Logiciel

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.

Page 9: Genie Logiciel

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.

Page 10: Genie Logiciel

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.

Page 11: Genie Logiciel

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.

Page 12: Genie Logiciel

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.

Page 13: Genie Logiciel

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.

Page 14: Genie Logiciel

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

Page 15: Genie Logiciel

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

Page 16: Genie Logiciel

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.

Page 17: Genie Logiciel

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.

Page 18: Genie Logiciel

14

MATIÈRESENSEIGNÉES