24
Conduite et Gestion de Projet Introduction ` a l’architecture MVC Thierry Hamon Bureau H202 - Institut Galil´ ee el. : 33 1.48.38.35.53 Bureau 150 – LIM&BIO – EA 3969 Universit´ e Paris 13 - UFR L´ eonard de Vinci 74, rue Marcel Cachin, F-93017 Bobigny cedex el. : 33 1.48.38.73.07, Fax. : 33 1.48.38.73.55 [email protected] http://www-limbio.smbh.univ-paris13.fr/membres/hamon/CGP-20132014 1/17

Conduite et Gestion de Projet Introduction à l ... › ~grozavu › CGP › data › Cours › Cours-MV… · Conduite et Gestion de Projet Introduction a l’architecture MVC Thierry

  • Upload
    others

  • View
    3

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Conduite et Gestion de Projet Introduction à l ... › ~grozavu › CGP › data › Cours › Cours-MV… · Conduite et Gestion de Projet Introduction a l’architecture MVC Thierry

Conduite et Gestion de ProjetIntroduction a l’architecture MVC

Thierry Hamon

Bureau H202 - Institut GalileeTel. : 33 1.48.38.35.53

Bureau 150 – LIM&BIO – EA 3969Universite Paris 13 - UFR Leonard de Vinci

74, rue Marcel Cachin, F-93017 Bobigny cedexTel. : 33 1.48.38.73.07, Fax. : 33 1.48.38.73.55

[email protected]

http://www-limbio.smbh.univ-paris13.fr/membres/hamon/CGP-20132014

1/17

Page 2: Conduite et Gestion de Projet Introduction à l ... › ~grozavu › CGP › data › Cours › Cours-MV… · Conduite et Gestion de Projet Introduction a l’architecture MVC Thierry

Introduction

Que faire lorsqu’on veut une application interactive ? (exemple :page web)

Architecture simpliste : regroupement du code, des donnees etde la visualisation dans une meme page

Probleme de duplication des donnees, des visualisations et destraitementsManque de flexibilite (un seul developpeur peut intervenir surla page, la modification de la visualisation peut entraıner unemodification du code et des donnees)

2/17

Page 3: Conduite et Gestion de Projet Introduction à l ... › ~grozavu › CGP › data › Cours › Cours-MV… · Conduite et Gestion de Projet Introduction a l’architecture MVC Thierry

Application interactive

Deux grandes parties :

la partie visible (front office) : l’IHM (InterfaceHomme-MachineMais en fait deux parties :

les entrees : actions de l’utilisateurles sorties : la visualisation des � resultats de l’action del’utilisateur �

la partie cache (back office) : le stockage, l’acces et letraitement des donnees→ cœur de l’application

Decomposition de l’application en trois parties : le Modele, la Vue,le Controleur

3/17

Page 4: Conduite et Gestion de Projet Introduction à l ... › ~grozavu › CGP › data › Cours › Cours-MV… · Conduite et Gestion de Projet Introduction a l’architecture MVC Thierry

Solution Modele-Vue-Controleur

Proposee en 1979 par Trygve M. H. Reenskaughttp://heim.ifi.uio.no/~trygver/themes/mvc/

mvc-index.html

Fortement liee a la programmation objet et maintenant auxapplications Web (notamment J2EE, avec des Frameworksadaptes a chaque cas – struts, Hibernate)

Patron de conception (design pattern), c’est-a-dire unesolution standard pour repondre a un probleme

Architecture logicielle pour structurer une application

4/17

Page 5: Conduite et Gestion de Projet Introduction à l ... › ~grozavu › CGP › data › Cours › Cours-MV… · Conduite et Gestion de Projet Introduction a l’architecture MVC Thierry

Solution Modele-Vue-Controleur

Differencier

ce qui est fait (le controleur)

ce qu’on voit (la vue)

ce qui se passe (le modele)

5/17

Page 6: Conduite et Gestion de Projet Introduction à l ... › ~grozavu › CGP › data › Cours › Cours-MV… · Conduite et Gestion de Projet Introduction a l’architecture MVC Thierry

Solution Modele-Vue-Controleur

→ donner l’impression a l’utilisateur qu’il manipule les donnees dumodeleReponse partielle aux problemes liees a la complexite desapplications interactives et au developpement d’interfacesgraphiques

6/17

Page 7: Conduite et Gestion de Projet Introduction à l ... › ~grozavu › CGP › data › Cours › Cours-MV… · Conduite et Gestion de Projet Introduction a l’architecture MVC Thierry

Structuration MVC

Organisation et structuration d’une application en separant :

Les donnees et leurs traitements : Le Modele

La visualisation des donnees : La Vue

Le comportement de l’application : Le Controleur

7/17

Page 8: Conduite et Gestion de Projet Introduction à l ... › ~grozavu › CGP › data › Cours › Cours-MV… · Conduite et Gestion de Projet Introduction a l’architecture MVC Thierry

Le Modele

Fonctionnalites de l’application :

Representation des donnees

Acces aux donnees

Traitement des donnees

8/17

Page 9: Conduite et Gestion de Projet Introduction à l ... › ~grozavu › CGP › data › Cours › Cours-MV… · Conduite et Gestion de Projet Introduction a l’architecture MVC Thierry

La Vue

Sorties de l’application

Visualisation(s) des donnees issues du Modele

Assure la consistance de la visualisation avec la representationdes donnees dans le modele

9/17

Page 10: Conduite et Gestion de Projet Introduction à l ... › ~grozavu › CGP › data › Cours › Cours-MV… · Conduite et Gestion de Projet Introduction a l’architecture MVC Thierry

Le Controleur

Gestion des entrees de l’application

Comportement de l’application face aux actions del’utilisateur (programmation evenementielle)

Traduction des actions de l’utilisateur en action sur le modele

Traduction des resultats des traitements du modele(reactions) et des actions de l’utilisation en action sur la vue(modification appropriee de la vue)

10/17

Page 11: Conduite et Gestion de Projet Introduction à l ... › ~grozavu › CGP › data › Cours › Cours-MV… · Conduite et Gestion de Projet Introduction a l’architecture MVC Thierry

Flux de traitement

VuePrésentation des données à

l’utilisateur

Accès aux données

et traitement

Fonctionnalités de

l’application

Modèle

Gestion des entrées de

l’utilisateur

Définition du comportement

de l’application

Contrôleur

11/17

Page 12: Conduite et Gestion de Projet Introduction à l ... › ~grozavu › CGP › data › Cours › Cours-MV… · Conduite et Gestion de Projet Introduction a l’architecture MVC Thierry

Flux de traitement

Entrées

utilisateur

1

VuePrésentation des données à

l’utilisateur

Accès aux données

et traitement

Fonctionnalités de

l’application

Modèle

Gestion des entrées de

l’utilisateur

Définition du comportement

de l’application

Contrôleur

11/17

Page 13: Conduite et Gestion de Projet Introduction à l ... › ~grozavu › CGP › data › Cours › Cours-MV… · Conduite et Gestion de Projet Introduction a l’architecture MVC Thierry

Flux de traitement

Notification du

changement d’état

2

Entrées

utilisateur

1

VuePrésentation des données à

l’utilisateur

Accès aux données

et traitement

Fonctionnalités de

l’application

Modèle

Gestion des entrées de

l’utilisateur

Définition du comportement

de l’application

Contrôleur

11/17

Page 14: Conduite et Gestion de Projet Introduction à l ... › ~grozavu › CGP › data › Cours › Cours-MV… · Conduite et Gestion de Projet Introduction a l’architecture MVC Thierry

Flux de traitement

Opérations

internes

3

Notification du

changement d’état

2

Entrées

utilisateur

1

VuePrésentation des données à

l’utilisateur

Accès aux données

et traitement

Fonctionnalités de

l’application

Modèle

Gestion des entrées de

l’utilisateur

Définition du comportement

de l’application

Contrôleur

11/17

Page 15: Conduite et Gestion de Projet Introduction à l ... › ~grozavu › CGP › data › Cours › Cours-MV… · Conduite et Gestion de Projet Introduction a l’architecture MVC Thierry

Flux de traitement

4a Sélection de la vue

Opérations

internes

3

Notification du

changement d’état

2

Entrées

utilisateur

1

VuePrésentation des données à

l’utilisateur

Accès aux données

et traitement

Fonctionnalités de

l’application

Modèle

Gestion des entrées de

l’utilisateur

Définition du comportement

de l’application

Contrôleur

11/17

Page 16: Conduite et Gestion de Projet Introduction à l ... › ~grozavu › CGP › data › Cours › Cours-MV… · Conduite et Gestion de Projet Introduction a l’architecture MVC Thierry

Flux de traitement

4b

Demande d’état

4a Sélection de la vue

Opérations

internes

3

Notification du

changement d’état

2

Entrées

utilisateur

1

VuePrésentation des données à

l’utilisateur

Accès aux données

et traitement

Fonctionnalités de

l’application

Modèle

Gestion des entrées de

l’utilisateur

Définition du comportement

de l’application

Contrôleur

11/17

Page 17: Conduite et Gestion de Projet Introduction à l ... › ~grozavu › CGP › data › Cours › Cours-MV… · Conduite et Gestion de Projet Introduction a l’architecture MVC Thierry

Flux de traitement

4c Mise à jour

4b

Demande d’état

4a Sélection de la vue

Opérations

internes

3

Notification du

changement d’état

2

Entrées

utilisateur

1

VuePrésentation des données à

l’utilisateur

Accès aux données

et traitement

Fonctionnalités de

l’application

Modèle

Gestion des entrées de

l’utilisateur

Définition du comportement

de l’application

Contrôleur

11/17

Page 18: Conduite et Gestion de Projet Introduction à l ... › ~grozavu › CGP › data › Cours › Cours-MV… · Conduite et Gestion de Projet Introduction a l’architecture MVC Thierry

Flux de traitement / Alternative concrete

Notification de

changement

Entrées

utilisateur

Notification

d’entrées4c Mise à jour

4b

Demande d’état

4a Sélection de la vue

Opérations

internes

3

Notification du

changement d’état

2

VuePrésentation des données à

l’utilisateur

Accès aux données

et traitement

Fonctionnalités de

l’application

Modèle

Gestion des entrées de

l’utilisateur

Définition du comportement

de l’application

Contrôleur

12/17

Page 19: Conduite et Gestion de Projet Introduction à l ... › ~grozavu › CGP › data › Cours › Cours-MV… · Conduite et Gestion de Projet Introduction a l’architecture MVC Thierry

Flux de traitement / Alternative concretePossibilite d’interaction entre la vue et le modele s’il n’y a pas de modification(sinon il faut obligatoirement passer par le controleur)

Notification de

changement

Entrées

utilisateur

Notification

d’entrées4c Mise à jour

4b

Demande d’état

4a Sélection de la vue

Opérations

internes

3

Notification du

changement d’état

2

VuePrésentation des données à

l’utilisateur

Accès aux données

et traitement

Fonctionnalités de

l’application

Modèle

Gestion des entrées de

l’utilisateur

Définition du comportement

de l’application

Contrôleur

12/17

Page 20: Conduite et Gestion de Projet Introduction à l ... › ~grozavu › CGP › data › Cours › Cours-MV… · Conduite et Gestion de Projet Introduction a l’architecture MVC Thierry

Avantages de MVC

Structuration de l’application

Independance entre les donnees, la visualisation et lecomportement de l’application

Modularite et reutilisation des elements :

Plusieurs vues possiblesChangement/echange de controleurs, controleurs multiplesChangement de representation ou de moyens de/stockage desdonnees au niveau du modele

Solution particulierement adaptee a la programmation orienteeobjet

Synchronisation vue/modele a travers le controleur

13/17

Page 21: Conduite et Gestion de Projet Introduction à l ... › ~grozavu › CGP › data › Cours › Cours-MV… · Conduite et Gestion de Projet Introduction a l’architecture MVC Thierry

Inconvenients

Complexite accrue

Mises a jour potentiellement trop nombreuses

Augmentation du temps d’execution

Le controleur et la vue sont souvent lies au modele

14/17

Page 22: Conduite et Gestion de Projet Introduction à l ... › ~grozavu › CGP › data › Cours › Cours-MV… · Conduite et Gestion de Projet Introduction a l’architecture MVC Thierry

Conclusion

MVC : Outil

d’analyse d’un probleme

de structuration d’application interactive

pour l’implementation d’un systeme modulaire, flexible etreutilisable

Mais aussi :

Independance entre l’IHM et les donnees et leurs traitements

Facilite la maintenance et la reutilisation de modules

Autre solution : architecture trois-tiers

15/17

Page 23: Conduite et Gestion de Projet Introduction à l ... › ~grozavu › CGP › data › Cours › Cours-MV… · Conduite et Gestion de Projet Introduction a l’architecture MVC Thierry

Architecture trois-tiers

Modele en couche : chaque couche interagit avec les couchesadjacentes

Entrées

utilisateur

Interface graphique

Client Web

VueFonctionnalitées de

l’application

Traitement des données

Application

Accès aux données

persistantes

Base de données, XML

Stockage

16/17

Page 24: Conduite et Gestion de Projet Introduction à l ... › ~grozavu › CGP › data › Cours › Cours-MV… · Conduite et Gestion de Projet Introduction a l’architecture MVC Thierry

Sources des transparents

Stephane Huot, Departement informatique, IUT d’Orsay

Jean-Michel Richer, universite d’Angers

F. Michel

17/17