Licence informatique et Master informatique Technologies de l'Internet UPPA

Informations sur les configurations ici

Technologie Orientée Objet (Semestre 5)

Syllabus

Cette UE donne les connaissances complètes pour la conception orientée objet des logiciels professionnels pour lesquels la notion d'architecture logicielle est centrale et cruciale à la qualité. Un objectif est la revue complète des mécanismes de programmation par objets avec le langage Java (dans une moindre mesure les langages C++ et Python) pour illustration. Le principe de réutilisation via des bibliothèques clef (e.g., collections) est un élément majeur de l'UE.

Un autre objectif est de fournir aux étudiants une base de connaissances large et solide pour réaliser les travaux pratiques des autres UE de la licence informatique (programmation Java pour le parallélisme, le Web, etc.). La maîtrise de Java est en outre essentielle pour envisager une poursuite d'études en master informatique.

Cours TDs TPs Total étudiant ECTS
27h 13.5h 18h 58.5h 6

Cette UE est en contrôle continu : contrôle « sur table » (45%), projet informatique (35%) et note d'assiduité et participation en TP (20%).

Cours

Exemple de contrôle

Travaux pratiques, progression

  1. Code barre
  2. N°INSEE
  3. Leap year
  4. Yesterday, tomorrow…
  5. Lotto!
  6. Horner
  7. Vegetables
  8. Currency et Currency++

Projet 2023-2024

Note d'information

Les étudiants de Math.-Info. font le projet Java qui suit OU la variante Java du projet de l'UE Conception des Applications Internet (voir ci-après).

Sujet

Web scraping

Modalités de contrôle du projet

Le travail est fait en binôme ou monôme. L’évaluation se fait via une présentation sur machine du travail réalisé. Si temps supplémentaire nécessaire au delà de l'UE, il y a un manuel à rédiger de quelques pages qui explique comment tester l'application pour un développeur en charge de la maintenance (organisation du code, librairie(s) utilisée(s), fonctionnement général, configuration…). Il faut alors déposer (au format ZIP uniquement) le manuel et le code source du projet au plus tard le dernier jour de travail avant les vacances de Noël (note zéro si non reçu avant minuit) ⤳ dépôt here. Merci de signaler par un e-mail à l'enseignant le dépôt (bien mentionner dans l'e-mail le lien Web sur le fichier ZIP ainsi que le(s) membre(s) du binôme ou monôme).

Conception des Applications Internet (Semestre 5)

Syllabus

Cette UE s'intéresse à la programmation, asynchrone particulièrement, côté client, des communications et interfaces homme-machine Web avec les langages JavaScript et TypeScript. La programmation côté serveur est quant à elle traitée plus succinctement avec la plateforme Node.js. L'idée est d'étudier une approche orientée objet « canonique » (héritage, polymorphisme, encapsulation/visibilité…) de programmation asynchrone de manière à créer des architectures évolutives en symbiose avec les toutes dernières technologies Web : WebRTC, WebSockets, Web Workers… La réutilisation et le packaging de bibliothèques JavaScript est un point clef abordé. L'étude de classes et d'interfaces pour des sites Web multimédia hautement interactifs est aussi abordée : HTMLCanvasElement, modèle événementiel (CustomEvent, Promise)…

Cours TDs TPs Total étudiant ECTS
15h 7.5h 16.5h 39h 4

Cette UE est en contrôle continu : contrôle « sur table » (45%), projet informatique (35%) et note d'assiduité et participation en TP (20%).

Cours

Exemple de contrôle

Travaux pratiques, progression

  1. Code barre
  2. N°INSEE
  3. Feature detection
  4. Vegetables
  5. Currency et Currency++
  6. Obama versus Trump

Projet 2023-2024

Note d'information

Les étudiants d'Info. font le projet TypeScript qui suit OU sa variante Java avec la librairie Java Drools ou jdmn ou <une autre existe ?>. Toutefois, dans la configuration Java, il est alors nécessaire d'utiliser les WebSockets (un exemple de programme WebSockets est expliqué et disponible here…) pour communiquer entre Java et navigateur Web.

Les étudiants de Math.-Info. sont invités à faire ce projet dans la configuration Java uniquement sans obligation de visualisation avec navigateur Web.

Sujet

dmn-js est une librairie permettant de visualiser dans un navigateur des modèles décisionnels (enchaînement de tables de décision) de type Decision Model and Notation -DMN- here. Il est possible d'éditer des modèles décisionnels grâce à cet éditeur Web ou son équivalent Desktop here

Exemple de Decision Requirement Diagram -DRD-

Exemple de table de décision

La librairie dmn-moddle quant à elle permet de transformer le source XML d'un fichier .dmn en une structure d'objets JavaScript. Cette structure est à ce jour mal documentée ; ainsi, le fichier TypeScript DMN-JS.ts  (à compléter et/ou corriger) compense ce manque de doc. en offrant les types des données se trouvant dans la structure d'objets JavaScript.

Finalement, la librairie feelin autorise l'interprétation du langage Friendly Enough Expression Language -FEEL- here… utilisé dans l'expression des règles gestion des tables de décision. Il y a d'autres librairies pour cela comme par exemple imicros-feel-interpreter.

Objectif

Le projet consiste à charger (par Drag & Drop par exemple) des fichiers .dmn à visualiser puis charger des données d'entrée (par Drag & Drop par exemple) en format JSON pour l'évaluation FEEL. Le navigateur Web donne le résultat de l'évaluation voire les erreurs le cas échéant…

Jeu de tests

Contraintes

Modalités de contrôle du projet

Le travail est fait en binôme ou monôme. L’évaluation se fait via une présentation sur machine du travail réalisé. Si temps supplémentaire nécessaire au delà de l'UE, il y a un manuel à rédiger de quelques pages qui explique comment tester l'application pour un développeur en charge de la maintenance (organisation du code, librairie(s) utilisée(s), fonctionnement général, configuration…). Il faut alors déposer (au format ZIP uniquement) le manuel et le code source du projet au plus tard le dernier jour de travail avant les vacances de Noël (note zéro si non reçu avant minuit) ⤳ dépôt here. Merci de signaler par un e-mail à l'enseignant le dépôt (bien mentionner dans l'e-mail le lien Web sur le fichier ZIP ainsi que le(s) membre(s) du binôme ou monôme).

Composants et Services Logiciels (Semestre 3)

Syllabus

Cette UE est à la frontière du génie logiciel et des systèmes distribués (intergiciels pour l'essentiel). Elle vise à étendre la problématique de la programmation et de la modélisation orientées objet aux paradigmes de « composant » et « service ». Le programme abordé traite des notions de Component-Based Development et Service Computing (concepts, caractérisation, panorama des modèles de composants technologiques, différence/similitude composant/service…). Les technologies Enterprise JavaBeans™ -EJB-, Web Services et Node.js servent d'illustration.

Cours TDs TPs Total étudiant ECTS
18h 9h 9h 36h 4

Cette UE est évaluée par un examen comptant pour 70% ainsi qu'un projet et une note d'appréciation du travail en TP et projet comptant pour 30%.

Cours

Travaux pratiques

  1. Java annotation here
  2. Enterprise JavaBeans™ -EJB- “entity” versus “session” here
  3. Enterprise JavaBeans™ -EJB- “local” versus “remote” interface here
  4. Enterprise JavaBeans™ -EJB- exercise #1 here
  5. Enterprise JavaBeans™ -EJB- exercise #2 here
  6. Enterprise JavaBeans™ -EJB- exercise #3 here
  7. Enterprise JavaBeans™ -EJB- exercise #4 here
  8. Enterprise JavaBeans™ -EJB- exercise #5 here
  9. Enterprise JavaBeans™ -EJB- with JavaServer Faces -JSF- here

Projet 2023-2024

Sujet

Une application Java here est un système de gestion de crise impliquant policiers et pompiers qui de façon coopérative procèdent à une intervention sur le lieu d'une crise « en cours ». Le processus de gestion de crise consiste notamment à décider de l'envoi de voitures de police et de camions de pompier dont une cellule de coordination « policier » Police Station Coordinator -PSC- et une cellule de coordination « pompier » Fire Station Coordinator -FSC- suivent l'envoi et l'arrivée jusqu'à ce que la crise soit terminée.

En l'état, l'application est une application Java sans interface homme-machine et avec base de données embarquée. Plus largement, un programme Java main teste l'enchaînement de crise(s) pour vérifier grossièrement que l'application (dans sa globalité) fonctionne.

Objectif

L'objectif global du projet est de porter l'application sur Node.js.

  1. L'application Java utilise la librairie PauWare qu'il faut remplacer par X STATE qui est la librairie JavaScript et TypeScript de référence pour programmer les Statecharts de Harel intégrés dans la norme State Chart XML -SCXML-.
  2. Il faut construire une base de données (la base de données initiale doit être externalisée et probablement amendée) de type SQL (JavaDB, MariaDB, SQLite…) ou NoSQL (MongoDB…) ainsi que les Data Access Objects nécessaires à l'accès aux données de la base via TypeORM, Prisma ou encore Sequelize pour SQL et Mongoose pour NoSQL.
  3. Il faut exposer les fonctionnalités mises en œuvre dans le programme Java main sous forme de Web services. De plus, il est possible de développer des micro-services de lecture/écriture des données qui encapsulent les Data Access Objects.
  4. Option : construire une interface homme-machine appellant les Web services.

Modalités de contrôle du projet

Le travail est fait en binôme ou monôme. L’évaluation se fait via une présentation sur machine du travail réalisé. Si temps supplémentaire nécessaire au delà de l'UE, il faut alors déposer (au format ZIP uniquement) le code source du projet au plus tard le dernier jour de travail avant les vacances de Noël (note zéro si non reçu avant minuit) ⤳ dépôt here. Merci de signaler par un e-mail à l'enseignant le dépôt (bien mentionner dans l'e-mail le lien Web sur le fichier ZIP ainsi que le(s) membre(s) du binôme ou monôme).