> Formations > Programmes des études

STM-SPI-02-Informatique 2

ue-sec-stm-spi-02

Responsable(s) du contenu pédagogique


Total coefficients : 3
Total heures : 37,5 (15 cours, 10,5 TD, 12 TP)
Total heures travail personnel : 30


Prérequis

Les bases de l’algorithmique (affectation, itérations, sous-programmes...)


Objectif

La modélisation et programmation orientées objet permettent de mieux maîtriser la complexité liée à la création d’un logiciel.
Elles permettent également une meilleure capacité d’adaptation et d’évolution d’un logiciel lorsque des fonctionnalités sont modifiées ou ajoutées. Ces avantages ne deviennent évidents que sur des projets de taille conséquente. Mais le temps consacré à ce module, tant en heures encadrées qu’en travail personnel des étudiants est forcément limité.
Pour faire face à ces contraintes contradictoires, l’ensemble du module sera centré autour de la réalisation, par les étudiants, d’un logiciel de taille significative. La réalisation de ce logiciel incluera une interface graphique.
Par exemple, réaliser un logiciel permettant de définir un treillis de poutres, et de calculer les efforts au sein des poutres pour vérifier que la structure est cohérente avec les contraintes, ou réaliser un logiciel permettant de définir un circuit RLC, et de calculer les les tensions et intensités (complexes) pour chaque composant.


Programme

Modélisation orientée objet : UML (diag. de classe, cas d’utilisation et d’état)
POO (Programmation Orientée Objet) Java : structure : classes, attributs, instances ;
POO Java : méthodes, constructeurs, encapsulation dans classe sans héritage
POO Java : héritage, spécialisation des méthodes, utilisation de « super » (méthodes et constructeurs)
POO java : généricité, cas particulier des collections ; création de classes génériques ; survol : classes internes locales et anonymes
Projet/GUI (Graphical User Interface) : organisation générale
GUI: architecture générale d’une interface ; composants ; conteneurs
GUI: gestion des évènements ; modèle-vue-controleur ; dessin dans un panneau
Java : Exceptions, flux, fichiers texte


Compétences attendues

Durant ce module, et en particulier durant la réalisation du projet devrait permettre aux étudiants :
• de voir le rôle central de la définition concomitante des fonctionnalités du logiciel et de la structure de données correspondante. Dans ce module, les fonctionnalités ne seront pas formalisées au travers d’un cahier des charges complet, mais plutôt de façon informelle au travers des « users stories » chères aux méthodologies agiles, puis précisées au travers des diagrammes de cas d’utilisation d’UML. La modélisation des données se fera sous la forme de diagrammes de classes UML.
• De voir comment la structuration des données telle que définie par un diagramme de classes UML peut être implémentée dans un langage de programmation orienté objet. Nous programmerons en Java, mais la méthodologie serait la même pour de nombreux langages orientés objet (C#, python objet...)
• de voir l’utilisation de bibliothèques orientées objet au travers de la création d’interface graphique. De nouveaux, les principes seraient les mêmes que nous utilisions d’autres langages, ou des bibliothèques multi-langage telle Qt : s’appuyer sur des classes existantes, et les spécialiser pour réaliser les fonctionnalités propres au projet.
• d’ébaucher une étude de la programmation événementielle : le déroulement des actions n’est pas fixé par le logiciel, mais répond aux actions de l’utilisateur. Dans ce contexte, la définition des diagrammes d’états UML, et leur implémentation simple dans un langage de programmation sera abordé.


Contraintes pédagogiques - Méthodes pédagogiques

Les premières séances de TDs/TPs se font sous forme classique de questions/corrections. Ensuite le projet se fait normalement par groupe de trois étudiants appartenant au même groupe de TP (avec éventuellement un voire deux groupes de deux si l’effectif du TP n’est pas divisible par trois).


Mode d'évaluation

L'évaluation portera sur :
• eval1 - devoir sur table ; commun à tous les groupes ; pour vérifier l’acquisition des connaissances de base (permettant de démarrer effectivement le projet) en modélisation et programmation objet – Ce devoir comptera pour 20% de la note finale du module.
• eval2 - devoir sur table ; fin de semestre - 40% de la note finale.
• eval3 - projet (rapport+présentation+démo) – 40% de la note finale



Retour