2.12.15 (694)

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

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

Diplôme(s) concerné(s)

Parcours de rattachement

Format des notes

Numérique sur 20

Littérale/grade européen

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