Programmation événementielle et architecture modèle-vue-contrôleur

Page 1 sur 23Lecteur de document UniversityLib

Programmation événementielle et architecture modèle-vue-contrôleur

Software Engineering · notes

Browse all programmation documents

G nie logiciel

Gr gory Bonnet

GREYC - Universit de Caen Basse-Normandie

2014 - 2015

Programmation v nementielle

Quest-ce que la programmation v nementielle ?

Programmation s quentielle

Paradigme de programmation dans lequel le d roulement des instructions du

programme est toujours le m me bien que les instructions elles-m mes peuvent

changer en fonction des embranchements.

Exemple

Calculer les n premiers termes de la suite de Fibonacci.

Programmation v nementielle

Paradigme de programmation dans lequel le programme est principalement d ni par

ses r actions face di rents v nements qui peuvent se produire.

Exemple

Traitement de prise en charge dune interface homme-machine.

Quest-ce quun v nement ?

Un v nement nest pas un message

Message : appel dune m thode particuli re dun objet particulier

v nement : signal envoy dans lenvironnement ind pendamment des objets

Qui g n rent les v nements ?

les actions des utilisateurs (saisie au clavier ou clics de souris)

le syst mes (tics dhorlogie)

les objets (notications)

Un v nement est capt par les objets abonn s ce type d v nement

Quelques exemples d v nements

Enfoncer les touches du clavier

Une frappe sur le clavier g n re un v nement clavier contenant le code de la touche

enfonc e.

Gestion de la souris

Un utilisateur qui bouge ou clique avec la souris g n re un v nement souris

contenant les coordonn es courantes de la souris et le bouton qui a t cliqu .

Actions sur un composant graphique

Un composant graphique sur lequel un utilisateur clique g n re un v nement action

auxquel lapplication r agit en appellant le traitement associ au composant graphique.

Exception

Un processus ind pendant dont un op ration produit une erreur peut avertir le reste

de lapplication en g n rant un v nement exception.

Principes fondamentaux de programmation v nementielle

Contenu dun v nement

Un v nement contient toutes les informations qui concernent laction correspondante

son type

Advertisement

son metteur

des donn es (position dun clic de souris par exemple)

Traitement des v nements

les composants interagissent entre eux et avec lenvironnement

les v nements sont plac s dans une le d v nements

la boucle de gestion de lenvironnement les transmet un un des couteurs

les composants associ s aux couteurs agissent en r ponse aux v nements

Un exemple

Un programme avec une interface graphique

un objet interface graphique compos dobjets bouton

des couteurs sont associ s aux boutons

le programme en boucle innie attend des v nements

les couteurs capturent les v nements et lancent les traitements

Fonctionnement sous-jacent

action de lutilisateur sur linterface graphique

interruption mat rielle

r cup ration de linterruption par le syst me

construction de l v nement par le syst me

envoi dun message contenant l v nement lapplication

lapplication r agit l v nement ou non

Architecture Mod le - Vue - Contr leur

Architecture dune application munie dune ou plusieurs interfaces utilisateur

trois composants

donn es et traitements, entr es et sorties et de la gestion des v nements

utilis e dans la conception de clients / serveurs et dinterfaces graphiques

G n ralisation du motif observateur / observ

les objets applicatifs (mod le)

leurs repr sentations (vue)

leurs interactions (contr leur)

Pourquoi une nouvelle architure ?

Avantages

patron de conception part enti re

paradigme architectural

d couplage fort

multiplicit des vues

changement ais dinterfaces

Inconv nients

complexit de mod lisation accrue

d pendance forte de la vue et du contr leur envers le mod le

possibilit de mises jours excessives

couteurs & notications

couteur d v nement

objet r agissant un type d v nement particulier

Advertisement

objet associ un autre objet

l couteur ex cute une m thode chaque fois quil re oit un v nement de ce type

Source

couteur

+ g n rer() : v nement

+ reagir(a : v nement)

v nement

De l v nement la notication

Limplantation des v nements passe g n ralement par la notication

une notication est un signal envoy par un objet un ou plusieurs autres

les destinataires sont des objets abonn s la notication aupr s de l metteur

mod le publication / abonnement ou publish / subscribe

Les notications peuvent porter des informations

son type

son metteur

tat ou changement d tat de l metteur

des donn es suppl mentaires

Motif Observateur / Observ

implantation laide dun motif observateur / observ

un objet notie ses observateurs lorsquil a chang

la r ception dune notication est un v nement

abstract

Observable

+ ajouter(Observateur)

+ supprimer(Observateur)

+ notifier()

interface

Observateur

+ miseajour()

ClasseObservee

Observateur1

Processus dattente

un objet est un processus contr l par une m thode principale

la m thode poss de des points darr ts qui mettent le processus en sommeil

la r ception dune notication r veille le processus qui r agit

Thread

+ run()

v nement

ObjetContr l

+ run()

Mod le - Vue - Contr leur

G n ralit s

C t applicatif : le mod le contient la logique de lapplication

Advertisement

C t visuel : les vues achent lutilisateur des informations sur le mod le

C t v nementiel : le contr leur agit la demande de lutilisateur sur le mod le

Utilisateur

est per ue par

utilise

Vue

agit sur

Contr leur

met jour

manipule

Mod le

Mod le

CSur de lapplication

nimporte quelle classe ou quel paquetage

ind pendant de lachage et de la modication de ses donn es

fournit des m thodes dacc s et de modication pour les donn es

Interactions

le mod le peut tre modi sur ordre du contr leur

le mod le signale aux vues tout changement de contenu ( v nement)

le mod le ignore comment il est ach et qui lui a noti un changement d tat

Vue

Interface avec lutilisateur

ache les donn es et capte les actions de lutilisateur

ces actions sont transmises au contr leur associ la vue ( v nement)

la vue et le mod le sont dans une relation observateur / observ

le contr leur joue un r le d couteur pour les v nements capt s par la vue.

La vue se met jour d s quelle re oit un ordre de notication

1. du contr leur

2. du mod le (elle le consulte alors pour se r acher de mani re ad quate)

Plusieurs vues pour m me mod le ?

chaque vue est en g n ral associ e un et un seul contr leur

une vue peut permettre lutilisateur de changer de vue

une vue peut obtenir une vue suppl mentaire sur le m me mod le

la vue instancie g n ralement son contr leur,

Contr leur

couteur de linterface utilisateur

le contr leur re oit des notications de la vue

il manipule alors le mod le en utilisant ses m thodes si besoin

le mod le notie en r ponses les vues

le contr leur notie la vue sil nest pas besoin de modier le mod le

Le contr leur re oit les v nements de linterface utilisateur et les traduit

1. en changement dans la vue sils agisssent sur le c t visuel

Exemple : un clic sur la barre de d lement de la fen tre graphique.

Advertisement

2. en changement dans le mod le sils agissent sur le contenu du mod le

Exemple : Une modication de la valeur dun tableau ach dans la fen tre graphique

Pr sentation g n rale des interactions

Mod le

1. le mod le ne conna t ni les vues, ni les contr leurs

2. ces deux l ments sont des observateurs par rapport au mod le

Vue

1. chaque vue est associ e un contr leur quelle instancie

2. chaque vue est associ e au mod le dont elle consulte et pr sente les donn es

Contr leur

1. chaque contr leur est associ une vue dont il coute les v nements

2. chaque contr leur conna t le mod le quil modie en r ponse ses v nements

Mod le UML de larchitecture MVC

Observ

Vue1

Observateur

Mod le

Contr leur1

Observateur

Vue2

Observateur

Contr leur2

Observateur

Conclusion

Conclusion

La programmation v nementielle est un paradigme part enti re

pas dex cution lin aire du programme

les objets g n rent des v nements et r agissent ces derniers

tr s utile pour le d veloppement dinterfaces graphiques

implantation : mod le observateur / observ et processus dattente

Une architecture v nementielle

la repr sentation logique dune application (mod le)

la repr sentation visuelle quon en donne (vue)

les actions que lutilisateur eectue (contr leur)

D veloppement et maintenance simpli s

modularit dans la conception

vue et contr leur peuvent tre d velopp s ind pendamment du mod le

meilleure r partition des t ches entre d veloppeurs (m tiers ou ergonomie)