Premier semestre

Génie logiciel

Objectifs

L’objectif de ce cours est d’introduire les moyens de concevoir des applications informatiques de qualité (répondant aux besoins, évolutives et faciles à maintenir).

Il s’agit de présenter l’ingénierie dirigée par les modèles en positionnant la conception dans les cycles de développement, et en mettant l’accent sur les enjeux et les pièges à éviter.

Le cours présente une introduction aux modèles de conception classiques, base du génie logiciel autour des technologies objet, en proposant des applications pratiques au cours de travaux pratiques et en étudiant des patrons de conception développés en Java. Cet enseignement vise également à apprendre à développer et déployer un site Web dynamique en Java. Il permet de se familiariser avec les architectures n-tiers et les serveurs d’applications et de bien maîtriser les principaux outils et langages avancés de développement des applications Web/JavaEE.

Plan

I. Le génie logiciel
1. Introduction au génie logiciel et bonne pratique de conception
2. Architecture logicielle et modèle en couche, Exemple sur GWT
3. Principaux patrons de conception, principe et mise en œuvre en Java
4. Le test logiciel et l’ingénierie des langages
5. L’ingénierie dirigée par les modèles

II. Programmation Client Serveur (JavaEE)
1. Architectures distribuées et plate-forme JavaEE
i. Les technologies JavaEE et Spring
ii. Architecture : composants, services et communications
iii. Les problématiques des applications serveurs
2. API et frameworks JavaEE / Spring
3. La persistance avec JPA
i. Problématique du "mapping" objet-relationnel
ii. Les outils de mapping : JPA, Hibernate, Toplink
iii. Le mapping
iv. L’entity-manager
v. Le langage de requetage
4. Les services web, le cloud.

Prérequis

Notation UML, connaissance du langage JAVA