TD11 : Patron Modèle Vue Contrôleur UML



Documents pareils
LibreOffice Calc : introduction aux tableaux croisés dynamiques

Compte-rendu de projet de Système de gestion de base de données

et de la feuille de styles.

GANTTPROJECT. Julien TENDERO

GanttProject : guide utilisateur

Conception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA

Table des matières. 10 Gimp et le Web. Option de traitement d'images Mémento pour la séance N o Création d'animation

GOL-502 Industrie de services. Travaux Pratique / Devoir #7

TRAVAUX DIRIGES D'INFORMATIQUE INITIATION A LA MANIPULATION DE WINDOWS 98

Publier dans la Base Documentaire

Volet de visualisation

PARAMETRER LA MESSAGERIE SOUS THUNDERBIRD

Manuel Utilisateur. Boticely

Tapez le titre de la page «BASTIA ville méditerranéenne», puis allez deux fois à la ligne à l aide de la touche Entrée.

Silhouette Studio Leçon N 2

Guide pour la réalisation d'un document avec Open Office Writer 2.2

MANUEL ACHAT à DISTANCE

@telier d'initiation

SOMMAIRE. Présentation assistée sur ordinateur. Collège F.Rabelais 1/10

Guide d'utilisation. OpenOffice Calc. AUTEUR INITIAL : VINCENT MEUNIER Publié sous licence Creative Commons

Importation des données dans Open Office Base

Publier un Carnet Blanc

Gestion des utilisateurs : Active Directory

Travail collaboratif avec OpenOffice Texte (Writer)

Par Daniel FAIVRE WebMapper ... Publication de cartes pour Internet avec ArcGis

Manuel de l'utilisateur d'intego VirusBarrier Express et VirusBarrier Plus

à l édition de textes

Avec PICASA. Partager ses photos. Avant de commencer. Picasa sur son ordinateur. Premier démarrage

Exemples et tutoriels Version 7.5. Tutoriel de l'exemple Recrutement de personnel pour IBM Process Designer

CREATION D UNE EVALUATION AVEC JADE par Patrick RUER (

Fiche Mémo : Options d accessibilité sous Windows et Internet Explorer 5

Qlik Sense Cloud. Qlik Sense Copyright QlikTech International AB. Tous droits réservés.

Publipostage avec Open Office Writer et Open Office Calc

1. Installation du Module

Cours de Génie Logiciel

Date de diffusion : Rédigé par : Version : Mars 2008 APEM 1.4. Sig-Artisanat : Guide de l'utilisateur 2 / 24

Programme d Accès Communautaire / Atelier 5 Initiation à Microsoft Outlook

Guide de démarrage rapide

Projet Active Object

Nouveautés Version Guide PME

I Pourquoi une messagerie?

Tutoriel Inscription et utilisation basique d'un blog hébergé chez Blogger.com

REALISER UN SITE INTERNET AVEC IZISPOT SOMMAIRE

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Dans la série LES TUTORIELS LIBRES présentés par le site FRAMASOFT. Compression - Décompression avec 7-Zip. Georges Silva

Pluridisciplinarité. Classe de BTS DATR

Manuel d'utilisation: Gestion commerciale - CRM

Module SMS pour Microsoft Outlook MD et Outlook MD Express. Guide d'aide. Guide d'aide du module SMS de Rogers Page 1 sur 40 Tous droits réservés

Guide d'utilisation. Centre des ressources Demande électronique de matériel publicitaire. Juin 2005

Cours en ligne Développement Java pour le web

eproject Manuel utilisateur Version 0.0

Documentation utilisateur. [EIP] TransLSF

Java 7 Les fondamentaux du langage Java

Keyyo Unify Application de téléphonie intégrée pour Salesforce

Création d'une interface graphique

TRAAM STI Acquisition et exploitations pédagogiques des données sur un système pédagogique

MEGA ITSM Accelerator. Guide de Démarrage

Malgré son aspect spartiate, Freeplane offre de nombreuses fonctionnalités en particulier dans le domaine de la diffusion des cartes sur le Web.

Les Enseignants de l Ere Technologique - Tunisie. Niveau 1

INTRODUCTION AUX TESTS DE PERFORMANCE ET DE CHARGE

1. Cliquez sur dans le coin supérieur gauche de l'écran 2. Sélectionnez la Langue de l'interface désirée 3. Cliquez sur

Publication dans le Back Office

SFEA. Ce document peut être imprimé au format livret. Guide utilisateurs du site "Se Former en Alsace"

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

SOS Info: Traitement de textes. 1. Structurer un document. 2. Enregistrer un document

MANUEL GANTT PROJECT

<Créer un site Web. avec/> Suzanne Harvey

Comment sauvegarder ses documents

Formation > Développement > Internet > Réseaux > Matériel > Maintenance

TABLEAU CROISE DYNAMIQUE

Les calques supplémentaires. avec Magix Designer 10 et autres versions

TPS 4 Objectifs du programme aide à la lecture et à l'écriture Les fonctions principales lecture à haute voix

N SIRET : N

Uniformiser la mise en forme du document. Accélère les mises à jour. Permets de générer des tables de matières automatiquement.

Le meilleur de l'open source dans votre cyber cafe

Répondre à un courrier - Transférer un courrier 20

SAP BusinessObjects Web Intelligence (WebI) BI 4

Répertorier vos mots de passe avec Passbox : 1) Télécharger le fichier d'installation :

SCOLASYNC : Logiciel de gestion de flotte de «supports USB», synchronisation de fichiers.

«Manuel Pratique» Gestion budgétaire

Visual Paradigm Contraintes inter-associations

VOS PREMIERS PAS AVEC TRACENPOCHE

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

1 Presentation du bandeau. 2 Principe de création d un projet : C2 industrialisation Apprendre Gantt project Ver 2.6 planifier

Interface Humain-Machine

Prise en main du BusinessObjects XI R2 Service Pack 2/ Productivity Pack

Seagate Technology LLC S. De Anza Boulevard Cupertino, CA 95014, États-Unis

Utilisation du logiciel GALAAD

Le GéoPortail du Jura Présentation des fonctionnalités de la version mobile

1 è r e étape : créer sa base de d o n n é e s

LICENCE : INFORMATIQUE GENERALE

Applications distribuées: le retour du client "riche"

Introduction : présentation de la Business Intelligence

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Composition d un ordinateur :

IBM Coremetrics Monitor Guide d'utilisation

Utiliser Freemind à l'école

MUNIA Manuel de l'utilisateur

NOTICE TELESERVICES : Créer mon compte personnel

Transférer et enregistrer les photos sur l'ordinateur

Transcription:

TD11 : Patron Modèle Vue Contrôleur UML Pierre Gérard pierre.gerard@univ-paris13.fr DUT Informatique S2D Université de Paris 13 Résumé Ce TD illustre la composition de plusieurs patrons simples pour former une architecture plus complexe. Nous aborderons progressivement le patron MVC en le présentant pas à pas comme une composition des patrons composite, observer et strategy. 1 Problème Nous cherchons à produire un logiciel d'édition pour des documents structurés. Les documents sont structurés à l'aide de balises à la façon des documents XML. A gauche on trouve le code source du document et à droite, une manière de l'interpréter pour en faire quelque chose de plus présentable. Les balises <section> permettent de structurer le document en parties et en sous parties. Les balises <titre> et <contenu> dénissent des compartiments de données pour chaque section. Le compartiment contenu peut contenir des sous-sections. Chaque cadre dans les gures représente une vue. 2 Patron composite (vue-vue) Pour visualiser le document ou seulement une section, on peut avoir recours à une vue du code, mais on veut également une représentation WYSIWYG (What You See Is What You Get) comme celle cidessus à droite. Pour ce faire, on considère que chaque section peut l'objet d'une vue et que la vue en question peut contenir des sous-vues représentant les sous-sections. 1

Dans la vue représentée à gauche, chacune des vues est décomposée en sous-vues. Dans vue représentée à droite, on a plutôt choisi de représenter chacun des exercices au moyen de leur code, sans les décomposer. Ces modes de représentation sont tous les deux possibles dans le logiciel que l'on cherche à concevoir. Question : Sans prendre en compte la manière dont est structuré le code source du document, en se restreignant à la seule organisation des vues entre-elles, proposez une modélisation de la structure hiérarchique des vues. Vous pourrez vous appuyer sur le patron composite. 3 Patron observer (vue-modèle) L'application que nous voulons développer doit pouvoir gérer plusieurs vues simultanément. Par exemple, on pourra avoir en même temps une vue du code source complet et une vue WYSIWYG ou tout autre intermédiaire. Le code source du document est appelé le modèle. Dès que ce dernier est modié, on veut que les vues se redessinent de manière adéquate. Question : Proposez une modélisation UML qui rende compte de cette fonctionnalité. Vous pourrez utiliser le patron de conception observer en considérant les vues comme des observateurs du modèle. 2

4 Patron strategy (vue-contrôleur) En plus des vues et du modèle du document, on souhaite disposer de moyens d'interaction avec le système pour modier le modèle. Pour ce faire, on se dote de contrôleurs associés aux vues. Les contrôleurs réagissent aux événements extérieurs (clics sur des boutons, frappes clavier...) et modient le modèle en réponse aux événements en question. La manière dont un contrôleur agit sur le modèle dépend de la vue à laquelle il est associé. Par exemple, une clic de souris sur une vue du code source pourra permettre de déplacer le curseur alors qu'un clic semblable sur une vue hiérarchique permettra d'accéder à certaines de ses propriétés. Ainsi, les contrôleurs sont semblables à des algorithmes qui, en fonction du contexte déni par la vue, déclencheront des opérations diérentes Question : Utilisez le patron strategy pour proposer une modélisation du lien entre vues et contrôleurs. 5 Patron observer (contrôleur-modèle) Il peut arriver que l'état du modèle ait un impact sur les contrôleurs. Par exemple, il se peut qu'en fonction du modèle, certaines options ne soient pas disponibles (menus, cases à cocher...). Les contrôleurs doivent donc être avertis de toutes les modications du modèle. Utilisez le patron observer pour modéliser ce lien entre modèles et contrôleurs. Nous considérerons qu'il y deux types de contrôleurs : pour gérer la souris et pour gérer le clavier. 3

6 Fusion de l'utilisation de plusieurs patrons de conception Dans les exercices précédents, nous avons modélisé diérentes parties d'un système en nous focalisant successivement sur les relations entre : vues et sous-vues ; vues et modèle ; vues et contrôleurs ; contrôleurs et modèles. Question : Combinez maintenant les diérents sous-modèles élaborés pour former un modèle global du système complet. Ce modèle utilise trois patrons de conception : composite, observer et strategy, à chaque fois pour obtenir des fonctionnalités diérentes mais complémentaires. En outre, on prendra ici en compte le fait que lorsqu'un contrôleur reçoit un événement, il demande au modèle de se mettre à jour. 4

7 Patron Modèle - Vue - Contrôleur Le patron de conception MVC (Modèle-Vue-Contrôleur) est une combinaison des trois patrons composite, observer et strategy. Il est très fréquemment utilisé pour construire des interfaces graphiques. Java Swing ou Struts, par exemple, sont des adaptations de MVC. Question : En vous appuyant sur l'exemple précédent et sur la spécication de ces trois patterns, proposez une spécication de la structure du patron Modèle-Vue-Contrôleur. Si vous avez fait des aménagements concernant les patrons originaux pour produire certains sousmodèles, vous veillerez à ce que les hypothèses correspondantes n'aectent pas la généricité de la structure proposée pour le patron MVC. Il est à noter que d'autres patterns peuvent se retrouver dans des modèles MVC. Par exemple, il est d'usage d'utiliser le patron abstract factory pour la création d'objets. Dans le modèle de structure que vous présenterez, vous ne manquerez pas d'apporter des améliorations comme la généralisation des contrôleurs et des vues en éléments dits observables par le modèle. La correction ressemble beaucoup à la correction précédente, si ce n'est la généralisation de Vue et Contrôleur en Observable et la réduction du nombre de méthodes attache, détache... puisqu'il n'y a plus que des Observables à attacher, quels que soient leur type. Considérez un objet modèle concret, une vue concrète quelconque et un contrôleur comme des lignes de vie. Question : Proposez un diagramme de séquence pour modéliser les interactions entre ces diérents éléments, à partir du moment où un événement est intercepté par un observateur concret. Correcetion TRES approximative. Et en plus, ça n'est pas de l'uml2. Pour bien faire, supprimer l'utilisateur, mettre un cadre autour du diagramme et faire venir l'événement du cadre. 5