v2.11.0 (5686)

Cours scientifiques - IN204 : Orienté Objet : Programmation et génie Logiciel

Domaine > Sciences et technologies de l'information et de la communication.

Descriptif

L'object du cours IN204 est de présenter les différents aspects de la programmation orientée objet et d'étudier leur mise en application en utilisant au mieux les constructions offertes par deux des langages de programmation les plus répandues que sont C++ et Java.

Le cours s'architecture en 3 grands blocs :
-. la présentation des concepts objets : la généricité, la spécialisation ou déspécialisation, la sérialisation ainsi que les méthodes et paradigme de programation comme les modèles objets (objet models) les patrons de conception (design patterns). La modélisation dans des langages de modélisation comme UML sera rapidement abordé.
-. la présentation des constructions offertes par les différents langages de programmation objet, l'utilisation et la mise-en-ouvre des différents concepts.
-. un projet permettant aux étudiants d'aller de la modélisation d'un problème à l'implantation en C++ en utilisant les notions précédemment acquises.

Objectifs pédagogiques

 

Etre capable de s'appuyer sur les modèles objet pour mettre en œuvre des méthodologies pertinentes d'architecturation et de codification de logiciels, permettant de garantir des niveaux de qualité, de confiance et de pérennité ;

Etre capable de mettre en œuvre différents paradigmes de programmation, existants ou à venir, dans différents langages de programmation ;

Etre capable de concevoir, implanter et qualifier un projet en C++, C# ou Java.

42 heures en présentiel (14 blocs ou créneaux)

effectifs minimal / maximal:

10/25

Diplôme(s) concerné(s)

Parcours de rattachement

Format des notes

Numérique sur 20

Littérale/grade européen

Pour les étudiants du diplôme Master 1 Parisien de Recherche Opérationnelle

L'UE est acquise si Note finale >= 10
  • Crédits ECTS acquis : 5 ECTS

Pour les étudiants du diplôme Diplôme d'Ingénieur de l'Ecole Nationale Supérieure de Techniques Avancées

Vos modalités d'acquisition :

Projet et Soutenance d'un projet.

Le rattrapage est autorisé (Max entre les deux notes écrêté à une note seuil)
  • le rattrapage est obligatoire si :
    Note initiale < 6
  • le rattrapage peut être demandé par l'étudiant si :
    6 ≤ note initiale < 10
L'UE est acquise si Note finale >= 10
  • Crédits ECTS acquis : 4 ECTS
  • Scientifique acquis : 4

Le coefficient de l'UE est : 2

La note obtenue rentre dans le calcul de votre GPA.

L'UE est évaluée par les étudiants.

Programme détaillé

1. CM: Présentation de la programmation objet. Notion d'objets de classe. Création, instanciation et finalisation/destruction.
2. TD: <a href="http://perso.ensta-paristech.fr/~paun/ENSTA/IN204/TD01/TD01.html">TD01</a> [<a href="http://perso.ensta-paristech.fr/~paun/ENSTA/IN204/TD01/TD01.pdf">pdf</a>] -> Elements de solution [<a href="http://perso.ensta-paristech.fr/~paun/ENSTA/IN204/TD01_elements_sol.zip">zip</a>]
Présentation des syntaxes C++ et Java. Introduction aux objets. Ecriture de classes en C++ et en Java.
<a href="http://perso.ensta-paristech.fr/~paun/ENSTA/IN204/OOP_cpp_java_charp.html">Glossaire_POO</a> [<a href="http://perso.ensta-paristech.fr/~paun/ENSTA/IN204/OOP_cpp_java_charp_md.pdf">pdf</a>]
3. CM: Introduction de l'héritage. Opposition entre héritage simple et multiples (Problèmes de l'héritage multipe)
4. TD: <a href="http://perso.ensta-paristech.fr/~paun/ENSTA/IN204/TD02/TD02.html">TD02</a> [<a href="http://perso.ensta-paristech.fr/~paun/ENSTA/IN204/TD02/TD02.pdf">pdf</a>] -> Elements de solution [<a href="http://perso.ensta-paristech.fr/~paun/ENSTA/IN204/TD02/TD02_sol.tar.gz">.tar</a>]
Hiérarchie de classes en C++, C# et Java.
Introduction du polymorphisme.
5. CM: <a href="http://perso.ensta-paristech.fr/~paun/ENSTA/IN204/TD03/Lecture03.pdf">Lecture03</a>
Polymorphisme et surchages.
6. TD: <a href="http://perso.ensta-paristech.fr/~paun/ENSTA/IN204/TD03/TD03.html">TD03</a> [<a href="http://perso.ensta-paristech.fr/~paun/ENSTA/IN204/TD03/TD03.pdf">pdf</a>]
Etude de l'utilisation du polymorphisme. Evaluation de l'impact sur la conception et les performances.
7. CM: La programmation par contrat. Version native (Java, C#) par rapport à la version ad hoc (C++)
8. TD: <a href="http://perso.ensta-paristech.fr/~paun/ENSTA/IN204/TD04/TD04.html">TD04</a> [<a href="http://perso.ensta-paristech.fr/~paun/ENSTA/IN204/TD04/TD04.pdf">pdf</a>]
Définition d'interface. Classe virtuelle en C++ et interface en C#/Java. Différence dans les deux approches.
9. CM: La robustesse des applications: Comment récupérer d'une violation d'un contrat
10. TD: <a href="http://perso.ensta-paristech.fr/~paun/ENSTA/IN204/TD05/TD05.html">TD05</a> [<a href="http://perso.ensta-paristech.fr/~paun/ENSTA/IN204/TD05/TD05.pdf">pdf</a>]
Les exceptions
11. CM: La notion de pattern. Définition des patterns. Définition d'un zoo de patterns.
12. TD: La généricité
<a href="http://perso.ensta-paristech.fr/~paun/ENSTA/IN204/TD06/TD06.html">TD06</a> [<a href="http://perso.ensta-paristech.fr/~paun/ENSTA/IN204/TD06/TD06.pdf">pdf</a>]
13. CM: Premiers pas vers les architectures objets. La notion de composant.
14. TD: Utilisation par spécialisation de patterns prédéfinis et implantation
15. CM: Modèle d'architectures objets
16. TD: Définition de composants en C#. Exportation et interopérabilité.
17. CM: Parallélisme et Programmation Objet. Apport des objets dans la mise en œuvre de la concurrence.
18. TD: La STL
19. CM: Programmation distribuée & Programmation objets
20. TD: Programmation système & parallèle
21. CM: Dernières évolution des langages au regard de C1y et de C# 5.0
22. TD: Expérimentation des nouvelles approches + Présentation des projets
23. TD: Séance consacrée au projet
24. TD: Séance consacrée au projet
25. TD: Séance consacrée au projet

Mots clés

Génie Logiciel, Programmation Orientée Objet, C++, JAVA, Projet complexe
Veuillez patienter