POO- Licence Pro AII Juan Bravo 1

Documents pareils
2. Trouvez la version du firmware que vous souhaitez télécharger dans la rubrique Boot From CD, correspondant à votre modèle de SSD.

Catalogue de formation bureautique

Les stratégies de Backup dans WSS V3

Formation Altium Designer par Transfer

Développement d applications mobiles natives avec LongRange de LANSA

CYBERLEARN COURS MOODLE. SUPPORT DE TRAVAIL Pour professeur-es et assistant-es d'enseignement

[SIMULATEUR DE CREDIT IMMOBILIER]

Nouveautés apportées à l assessment-tool

SAP Financial Innovation Day 18 Mars 2014 Genève Amélioration du Planning financier : un processus simplifié pour une meilleure qualité de données

GUIDE INSTALLATION IAS

Utilisation de RAMSIS dans la conception automobile Lisa Denninger Apports et Limites des Mannequins Virtuels 18 Novembre 2014

LOGICIELS ET BASES DE DONNÉES PROTECTION ET VALORISATION

Nous proposons 3 syntaxes au choix :

Solutions de pilotage énergétique pour les bâtiments d activité professionnelle

Partage de documents entre tablettes et transfert de ressources

FORMATION SUR «CLOUD COMPUTING : CONCEPTS, TECHNOLOGIES ET APPROCHES DE MIGRATION»

Nature de l'activité

Kluwer ERP Dashboard - VERO.

MISSIONS COMMERCIALES

Processus des services

esil PROJET DE MODELISATION ORIENTEE OBJET INFORMATIQUE - 3 ANNEE

SYSTEME DE TELERADIAMETRIE H*(10)

Terrain de jeu Analogie au sport professionnel

Contenu de version

Dossier de Presse. 1 ier guide Interactif pour créateurs et entrepreneurs

ENREGISTEUR NUMERIQUE USB Guide utilisateur

Manuel d'utilisation: Gestion commerciale - CRM

Directory List & Print (Pro) by Infonautics GmbH, Switzerland

Çi-dessous le livret du module de réservation de sièges. Via Thomascookagent.be (pour les agences)

FOCUS : LES SYSTÈMES D INFORMATION

DM/Administrator fonctionne sans agents d administration spécifiques sur les contrôleurs de domaines.

Guide pour la rédaction d une Spécification Technique de Besoin (STB)

Gestion des Prospects : Adresses à exporter

Charte de la gestion cookies groupe PVCP 25/09/2014

Intégration «SugarCRM Asterisk» Ajouter la Téléphonie à votre CRM

Meilleures pratiques en matière d'indexation de contenu. Mise à niveau à partir de versions antérieures à la version 6.5

GUIDE D ENTRETIEN POUR LA PHASE 1

Service de mobilité interbancaire - Règlement

Dossier Spécial. Les 5 étapes pour vendre ACT! Apprendre à détecter un besoin en Gestion de Contacts

Utiliser les activités de cours de Moodle : le Questionnaire

COMPTE RENDU DE LA COMMISSION COMMUNICATION

A toutes les Directrices et à tous les Directeurs des établissements scolaires de l enseignement secondaire et secondaire technique

Evolution du Système de Management de la Qualité du service Pilote DPGP&PP

Logiciel de gestion des inscriptions en CPGE

Service de mobilité interbancaire - Règlement

Projet de renouvellement de l infrastructure informatique de la Mairie de Châtel-Guyon. Cahier des charges

NOTICE POUR L IMPORT DU FICHIER «IACA» DANS CORRELYCE

Logiciel VOIP. FERRAN Olivier LANUSSE Florian TEBIB Leïla. M. Rachid Elazouzi

What are you doing this summer?

Alcatel OmniPCX Office

Agilité et gestion de projet

Note de cadrage de la version Apogée 4.10

PHASE 1 : choix et définition du sujet du TM.

Procédure d installation

CAHIER DES CLAUSES TECHNIQUES PARTICULIERES

ASSODESK.COM Aide en ligne

Formation Référencement / SEO e-commerce

- Le service aux tables. - Le service rapide & commande pour emporter. - Le service à l auto. - La livraison. o Voir le feuillet Livraison.

Amandine CUER INDUSTRIELS! GAGNEZ DU TEMPS DANS VOS ECHANGES AVEC VOS INFORMATIQUE - INTERNET - TELECOMMUNICATIONS LA LETTRE D INFORMATION - MAI 2011

LIVRE BLANC SEM. Google AdWords Le guide ultime du SEM pour votre Boutique en ligne

(les caractères apparaissent en vidéo inversé : blanc sur fond

Communiqué de lancement : Sage 100 Scanfact Version V15.50

Moodle en 5 minutes...

Chap 10 : L évaluation et la valorisation du potentiel de l équipe commerciale

LE TABLEAU DE BORD REMONTEE DES COMPTES. Outils de gestion prévisionnelle, d'analyse financière et du contrôle de gestion. TABLE DES MATIERES

Fiche de projet pour les institutions publiques

Ministère de l enseignement supérieur Université du 7 Novembre à Carthage

PROCESSUS DE CERTIFICATION DES MONITEURS JE NAGE INFORMATIONS POUR LES MAITRE ÉVALUATEURS

ENT601 MARKETING ET VENTES Préalable(s) : ENT 202 PLAN DE COURS SESSION ÉTÉ 2014

Bruno Tignac Architecte SI / Java

Le dispositif de qualification OPQIBI pour les audits énergétiques (réglementaires)

Article I - Objet. Article II - Conditions d'utilisation de la eboutique

Manuel d utilisation de Nomad Trading

Multi Devis 30&100, véritable «Gestion Commerciale» dédiée aux petites entreprises et PME du BTP.

Pour répondre au besoin de sécurité juridique et de prévisibilité, la Loi type devrait traiter des questions suivantes:

Restitution. Enquête FNOGEC auprès des principaux éditeurs de logiciels. Mise en conformité aux normes SEPA

Besoins informatiques Pricare et autres informations utiles pour le gestionnaire de réseau

KDJHU HQHUJ\ manuel de l'xwlolvdteur tebis

Demande d Information : Solution de messagerie et outils collaboratifs pour l État

Cabinet LUTZ. Résidence DE LATTRE DE TASSIGNY. La Chaufferie

Extensions d inventaire

BOURSE EXPLO RA SUP (Région Rhône-Alpes) Toutes destinations-séjour académique et stage

Division des Statistiques du Commerce Extérieur

ITIL V3. Les principes de la conception des services

Description de service Dell

CNAM 2008 / CENTRE REGIONAL DE LILLE

TP3 : Création de services Web REST


Ingénieur Concepteur Développeur.NET

Information produit. Terminal Vi-NET

Master Sciences et Technologies. Mention Informatique Spécialité IAGL En Alternance

CONTEXTE DRSI Paris12 - Site de Créteil

Cahier des charges pour la mise en place d une plateforme collaborative pour les salariés de l Apur 23 août 2011

REGARDS AILANCY SUR LA DISTRIBUTION BANCAIRE

MIGRATION VERS L'OMNIPCX OFFICE R9.1

CAHIER DES CHARGES «Téléphonie fixe» Déploiement d une solution de téléphonie fixe.

Résumé du module 6 : Coût et structure du capital

BANQUES ET DEVELOPPEMENT DURABLE

Coefficient 4. L ACRC est validé par le contrôle des compétences suivantes :

Transcription:

1

Génie lgiciel Architecture pattern Vue d ensemble Descriptin des sus-systèmes et des cmpsants d un lgiciel et leurs relatins Mtivatins : Les lgiciels snt de plus en plus grands et cmplexes. Certains critères de qualité divent être atteints : fiabilité, efficacité, pssibilité d évlutin, ergnmie,... niveau d abstractin au-dessus des design pattern déjà vu Architecture style 3-TIERS 2

Vue d ensemble Architecture multi-client rienté services A venir (suite du ply) Cmbinaisns de patterns Déjà vu en curs Entity Framewrk 3

Vue d ensemble Organisatin dans VS Ce n est qu un exemple business layer (cuche métier) Nn spécifique à ce prjet (ressurces utilisables au travers tus vs prjets) Ex: interface repsitry générique Data Layer (persistance + éventuellement DataAccesLayer DAL) Tests unitaires 4

Architecture MV* Le classique pattern MVC Prblématique Séparatin des respnsabilités entre les cuches métier, dnnée et présentatin Les bjectifs: maintenance, testabilité, fiabilité Lien avec le style 3-TIERS 3-TIERS est un style d architecture alrs que les MV* snt des implémentatins d architectures Dans le cadre d applicatins large et distribuées MV* peut être limité à la cuche présentatin uniquement. MV* peut être vue aussi cmme un style architecture 3-TIERS 5

Architecture MV* Cde spaghetti Un simulateur de rbt qui fnctinne Oui mais.. Imbricatin des fnctinnalités graphiques et cmprtementales du rbt 6

Classificatin des MV* 7

Bibligraphie Article A Jurney Thrugh the Land f Mdel-View-* Design Patterns Artem Syrmiatnikv Danny Weyns http://martinfwler.cm/eaadev/mdelviewpresenter.html Martin Fwler http://aviadezra.blgspt.fr/search/label/mvc Aviad Ezra http://cdelmas.develppez.cm/articles/cnceptin/variatins-autur-du-mdele-mvc/ Cyril Delmas http://www.cdeprject.cm/articles/66585/cmparisn-f-architecture-presentatinpatterns-m Shivprasad kirala 8

SmallTalk 80 MVC Cncepts Séparatin claire entre mdèle et présentatin basé sur le pattern Observer A l rigine 1 vue= 1 widget La présentatin est cmpsée de cuples View- Cntrller Réutilisatin des widgets dans d autres vues Pas d envirnnement RAD dans les années 70-80 Et maintenant? Les utils générent à la fis la vue du widget et les captures des événements utilisateurs (clic, clavier).. View= widget u écran Cmprmis sur la granularité fnctin de l applicatif Évlutin pssible de l architecture View= une vue dans sn ensemble et 1 Cntrller par View 9

MVC Architecture Le cuplage lâche entre mdule est basé sur le pattern bserver. Cependant de nmbreux exemples sur internet décrivent des vues maintenant des références explicites vers le mdèle. Ce mde de cuplage, effectué par cmmdité, n est pas suhaitable (exceptin Web MVC) 10

IMPLEMENTATION MVC Le mdèle Implémente le pattern Observateur C est le SUJET (Observable) Pas de référence View => décuplage entre mdèle et Vue Ntifie la vue et le cntrleur d un changement d état public class SeuilTemperatureMdele : IObservable<SeuilTemperature> private List<IObserver<SeuilTemperature>> bservers; private SeuilTemperature seuil; public EventHandler<EventArgs> CaptureHandler; public SeuilTemperatureMdele(SeuilTemperature initialvalue) seuil = initialvalue; bservers=new List<IObserver<SeuilTemperature>>(); public vid Incremente() seuil.valuetemp++; Ntify(seuil); public class SeuilTemperature public int ValueTemp get; set; public DateTime TimeStamp get; set; public vid Decremente() seuil.valuetemp--; Ntify(seuil); private vid Ntify(SeuilTemperature temp) freach (var bserver in this.bservers) bserver.onnext(seuil);.. 11

IMPLEMENTATION MVC La vue public partial class SeuilView : Frm, IObserver<SeuilTemperature> OnNext déclenché lrsque le mdèle change d état=> mise à jur de l affichage public SeuilView(SeuilTemperature seuil) InitializeCmpnent(); OnNext(seuil); // Cntrller need t knw abut Buttn t catch event // Others slutins are als pssible public Buttn GetButtnIncremente() return btnincremente; public Buttn GetButtnDecremente() return btndecremente; // implement IObserver // if mdel change then view is ntified and update public vid OnNext(SeuilTemperature valueseuiltemperature) textbxseuiltemperature.text = valueseuiltemperature.valuetemp.tstring(); 12

IMPLEMENTATION MVC Le cntrôleur S abnne au mdèle Dans ntre exemple nus ne faisns rien en cas de changement Capture les événements utilisateurs et agit sur le mdèle On récupère les butns créatin d un délégué anmyme (expressin lambda) crrespndant à l actin sur le mdèle class CntrleurTemperatureSeuil:IObserver<SeuilTemperature> private SeuilTemperatureManager mdeleseuilmanager; public CntrleurTemperatureSeuil(SeuilView view,seuiltemperaturemanager seuil) this. mdeleseuilmanager = seuil; view.getbuttnincremente().click += (bj, arg) => mdeleseuilmanager.incremente(); view.getbuttndecremente().click += (bj, arg) => mdeleseuilmanager.decremente(); public vid OnNext(SeuilTemperature value) //if mdel has changed then Onnext Triggered 13

IMPLEMENTATION MVC Le client Crée le mdèle Crée la vue Crée le Cntrleur Prcède aux abnnements [STAThread] static vid Main() Applicatin.EnableVisualStyles(); Applicatin.SetCmpatibleTextRenderingDefault(false); var seuil=new SeuilTemperature ValueTemp = 20, TimeStamp = DateTime.Nw ; var mdeletemperature = new SeuilTemperatureMdele(seuil); var viewseuiltemperature = new SeuilView(seuil); var cntrler = new CntrleurTemperatureSeuil(viewSeuilTemperature, mdeletemperature); mdeletemperature.subscribe(cntrler); mdeletemperature.subscribe(viewseuiltemperature); Applicatin.Run(viewSeuilTemperature); TP Cder l exemple Changer la vue en plaçant un slider 14

MVC BILAN Plusieurs niveaux de granularité Architecture MVC au niveau widgets (ancien) Architecture MVC au niveau applicatin (un écran) 15

MVC BILAN Très utilisé dans le web Asp.net MVC Variante du MVC classique (pas d bservateur et pas de rémanence du mdèle) Décuplage naturel car la vue, bien que générée sur le serveur, est exécuté par le client (brwser) et le mdèle+ cntrller snt sur le serveur 16

MVC BILAN Limitatins Le mdèle est restreint au dmaine d applicatin Pas d infrmatins de présentatin Prblématique pur des interfaces riches et cmplexes SmallTalk 80 => MVC au niveau widget Prblème pur gérer les inter-dépendances entre widget Exemple: mise en culeur d une partie de l IHM en fnctin de certaines valeurs du mdèle Et MVC «mderne»? Le cntrôleur ne cmmande pas la vue directement! => même prblème Slutin Mdifier l architecture et affecter une respnsabilité supplémentaire Transitin vers un nuveau mdèle: le MVP Applicatin Mdel MVC 17

MVP Evlutin du MVC et AM-MVC Le cntrler est remplacé par un présenter Le présenter s ccupe maintenant de la lgique de présentatin il maintient une référence vers la vue afin de la cmmander en direct Différentes variantes pssibles de MVP en fnctin d bjectifs visés Quelques sit les MV tujurs la même idée Séparer les respnsabilités Amélirer la testabilité (pas de chse cmplexe dans une vue car cmpliqué à tester!) 18

MVP Les différentes MVP Idée: Favriser la testabilité Vue la plus SIMPLE pssible implémentant une abstractin IView Presenter: s ccupe de tut! Idée: Alléger le Présenter Variante du smalltalk plus de respnsabilité SIMPLE sur la vue Cnclusin: Le Presenter est plus léger et s ccupe uniquement des interactins cmplexes 19

MVP: Supervising Presenter Architecture Le Presenter est allégué en délégant à la vue les mises à jur simple du mdèle Ntin de databinding présent dans les framewrk mdernes Pattern à utiliser plutôt pur des client graphiques lurds La vue ne mdifie le mdèle 20

data binding en C# class Emplyee : INtifyPrpertyChanged private string name; public string Name get return name; set name = value; RaisePrpertyChanged(); Lrs de l invcatin du délégué l argument caller, de type string, prend la valeur de la prpriété à l rigine de l appel Ex: l instructin unemplye.name=«tt»; => caller =«Name» private string firstname; public string FirstName get return firstname; set firstname = value; RaisePrpertyChanged(); public event PrpertyChangedEventHandler PrpertyChanged; private vid RaisePrpertyChanged([CallerMemberName] string caller = "") if (PrpertyChanged!= null) PrpertyChanged(this, new PrpertyChangedEventArgs(caller)); 21

MVP: Supervising Presenter data binding en C# public partial class Frm1 : Frm private Emplyee prf; Objet mdèle frmattage public Frm1() InitializeCmpnent(); prf=new Emplyee(); Prpriété destinatin Prpriété surce this.labelname.databindings.add(new Binding("Text", prf, "Name", false, DataSurceUpdateMde.OnValidatin)); this.labelfirstname.databindings.add( new Binding("Text", prf, "FirstName", false, DataSurceUpdateMde.OnValidatin)); prf.name = "Brav"; prf.firstname = "Juan"; Type de liaisn: OneWay (src->dest) private vid btnchangename_click(bject sender, EventArgs e) prf.name="arltt"; private vid btnchangefirstname_click(bject sender, EventArgs e) prf.firstname = "Philippe"; Pas de mdèle MVP u MVC ici Juste une dem de binding! 22

Un exemple Aviad Ezra http://aviadezra.blgspt.fr/ 23

MVP: Passive View Architecture But recherché: la testabilité Les tests autmatiques des interfaces graphiques snt cmpliqués La vue est réduite au minimum: aucune lgique Le presenter s ccupe de tute la présentatin Peut être utiliser dans un cntexte Web u WinFrm 24