A l'issue du cours, l'étudiant sera en mesure de
Développer une application console orientée objet mono-thread
Tester une application console (test unitaire)
Déployer une application console
Plus particulièrement, l’étudiant sera en mesure d’utiliser efficacement les
techniques de programmation orientée objet. Les notions d’héritages et de
polymorphismes n’auront plus de secret pour lui, y compris dans les
situations complexes. Il saura les utiliser efficacement pour rendre ces codes
plus simples, plus robustes et avec un degré élevé de réutilisabilité des
composants développés. Il s’efforcera d’utiliser toutes les possibilités du
langage pour que son code possède un haut degré de lisibilité et de
maintenance. Il saura mettre en œuvre des méthodes
agiles
tel que le
refactoring pour garantir une structure et cohésion optimale de ses packages
et de ses classes. Il emploiera les génériques et utilisera des noms
(paquetages, classes, méthodes, variables) les plus pertinents possibles. Il
s’aura s’aider des collections pour résoudre des problèmes à priori
complexes. Il sera sensibilisé au problème de synchronisation simple.
L’étudiant maitrisera les tests unitaires et sera en mesure d’établir la
couverture de code associé. Il s’aura se documenter pour utiliser des
composants tiers dans ses projets. Finalement il disposera d’une
méthodologie lui permettant d’implémenter efficacement ces idées dans le
riche écosystème java. Il s’appuiera sur un IDE évolué lui permettant de
coder le plus efficacement possible.
A partir du second semestre, l’étudiant sera en mesure de développer des
applications graphiques contenant les composants usuels d’un GUI et de
gérer les événements permettant de contrôler l’application. Il sera en mesure
de réaliser des animations graphiques, en particulier sur les images. Il saura
utiliser efficacement des timers et des threads pour exploiter au mieux la
puissance des machines multi-core. Il sera sensibilisé à l’utilisation du design
pattern modèle vue contrôleur. Ses applications utiliseront des objets
distribués. Il maitrisera les mécanismes de sérialisation, et les flux pour
transférer de l’information entre deux entités. Il sera en mesure de
développer une application utilisant à la fois du java et du C++ (dans un
sens ou dans l’autre). Il sera à même d’exploiter en java une
dll
dont il ne
dispose pas du code source. Il pourra déployer ses applications avec
javaWebStart.