Les techniques Objet
- Les principes généraux de la modélisation et de la programmation Objet.
- L'abstraction et l'encapsulation : les interfaces.
- Les différentes formes d'héritage, le polymorphisme.
- Introduction à la modélisation UML.
Travaux pratiques
La spécification UML d'une étude de cas qui sera l'un des fils directeurs des exercices suivants.
Les constructions de base du langage
- Les variables : déclaration et typage.
- Les méthodes : définition.
- Les expressions.
- Les instructions de contrôle : les instructions conditionnelles, de boucle, de branchement.
- Les tableaux.
- Les unités de compilation et packages : le contrôle de la visibilité des classes, le mécanisme d'import.
- Les imports statiques.
Travaux pratiques
Suite d'exercices simples permettant la prise en main de l'environnement de développement.
Bonnes pratiques de conception d'une application
- Découpage en couche.
- Présentation des enjeux d'un développement d'entreprise.
- Introduction à l'écosystème Java (JEE, Spring, Hibernate, Struts...).
Travaux pratiques
Réflexion sur la conception en couche. Démonstration de l'utilisation de framework.
La programmation concurrente
- Définitions relatives à la programmation concurrente : les Threads.
- Ordonnancement des Threads.
- La synchronisation des Threads.
- Les problèmes posés par la programmation multithread.
- Le problème de l'interblocage.
- La librairie concurrente de JDK1.5. Les nouvelles collections.
Travaux pratiques
Construction d'une application concurrente avec synchronisation et résolution d'interblocage.
Tests logiciels
- Pourquoi faire des tests ?
- Présentation des différents types de tests : tests unitaires, fonctionnels, de robustesse et de performance.
- Quels tests lancer et quand ?
- Utilité des objets "Mock" et "Fake" durant les tests unitaires. Couverture des tests unitaires.
Travaux pratiques
Pratique des tests unitaires avec JUnit (logiciel libre) et d'autres outils.
Conclusion générale : mesures de la qualité
- Synthèse des mesures qualité.
- La convention de codage et la documentation.
- La couverture de tests et l'automatisation des procédures.
- Mise en place d'un tableau de bord de la qualité.