STG-MATHINFO-02-Informatique 2

  • ue-sec-stg-mathinfo-02
  • Sciences, Techniques & Humanités

Semestre : 2

Responsable(s) du contenu pédagogique
  • Ahmed SAMET
  • Amadou COULIBALY
  • Jean-Romain HEU
Total coefficients : 3
Total heures : 37,5 (15 cours, 10,5 TD, 12 TP)
Total heures travail personnel : 40

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 inclura 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 tensions et intensités (complexes) pour chaque composant.
La réalisation de ce projet nous permettra :

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, mais plutôt d’abord 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, etc.)

de voir l’utilisation de bibliothèques orientées objet au travers de la création d’interface graphique en JavaFX (Java) ou autre. De nouveau, 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é.


Compétences attendues

Axe A1 : CONNAISSANCES ET COMPRÉHENSION
Capacité à mettre en place un raisonnement scientifique rigoureux. Capacité à mobiliser les ressources d'un large champ de sciences fondamentales.
- Formaliser un problème à l'aide d'outils analytiques ou numériques
- Être capable de résoudre un problème scientifique à l'aide de méthodes analytiques ou numériques
- Être capable de transposer les connaissances scientifiques dans le domaine de la spécialité

Axe A2 : ANALYSE TECHNIQUE
Capacité à mobiliser les ressources dans le domaine de la spécialité. Mettre en œuvre des connaissances techniques multidisciplinaires pour résoudre des problèmes d'ingénierie.
- Identifier un problème, le reformuler
- Déterminer les leviers d'actions permettant de résoudre un problème

Axe A4 : PRATIQUE DE L’INGÉNIERIE
Aptitude à consulter et appliquer les codes de bonnes pratiques, sur la base d'études scientifiques et techniques, piloter et mettre en œuvre de manière structurée un projet ou un processus en organisant le travail des collaborateurs de l'entreprises dans le respect de la réglementation en matière de sécurité et dans le respect des valeurs sociétales et éthiques.
- Mener une réalisation conformément aux besoins exprimés

Axe A7 : COMMUNICATION ET TRAVAIL EN ÉQUIPE
S’intégrer dans une organisation, l’animer et la faire évoluer en communiquant efficacement en plusieurs langues, dans un contexte pluridisplinaire et multiculturel.
- Être capable de se positionner dans l'entreprise et dialoguer avec les autres métiers


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


Contraintes pédagogiques - Méthodes pédagogiques

Ce cours est centré autour du projet : les séances de cours introduisent les notions indispensables, les TDs ont pour but de débuter les étapes de réalisation. Les TPs permettent de suivre et de guider les étudiants dans la réalisation du projet.
Le travail personnel demandé aux étudiants consiste à travailler sur le projet en dehors des heures encadrées.


Contraintes pédagogiques - Moyens spécifiques

TD et TP en salle informatique


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 - 30% de la note finale.
• eval3 - projet (rapport+présentation+démo) – 50% de la note finale



Retour