310 likes | 384 Views
R a i n b o w - Arcad. Composition de composants et IHMs composites. 23/05/2002 Jeremy Fierstone / Equipe Rainbow / 1. R a i n b o w - Arcad. Introduction Objectifs Composition, adaptabilité, synthèse Modèle concret : UIML
E N D
Rainbow - Arcad Composition de composants et IHMs composites 23/05/2002 Jeremy Fierstone / Equipe Rainbow / 1
Rainbow - Arcad • Introduction • Objectifs • Composition, adaptabilité, synthèse • Modèle concret : UIML • Présentation d'UIML, motivations, limites • Modèle abstrait : vers des IHMs génériques • Motivations, proposition, synthèse • Conclusion Jeremy Fierstone / Equipe Rainbow / 2
Objectifs - Composition de composants (1) • Contexte : composants • Hétérogènes • Externes à l'application • Indépendants les uns des autres • Abstraction des « vues » d'un composant: • BD -> JDBC, DataObject, DataSet, ... • Protocoles de communication -> IDL • Interactions avec d'autres composants -> Noah (service d'interactions de l’équipe Rainbow) • Services systèmes (transaction, sécurité, ...) • IHM -> MVC ? Introduction Objectifs -Composition -Adaptabilité -Synthèse Modèle concret -Présentation d'UIML -Motivations -Limites Modèle abstrait -Motivations -Proposition -Synthèse Conclusion Jeremy Fierstone / Equipe Rainbow / 3
Objectifs - Composition de composants (2) • Aujourd'hui : modèle à composants (EJB, CCM, ... ) • BD -> JDBC, DataObject, DataSet, ... • Protocoles de communication -> IDL • Services systèmes (transaction, sécurité, ...) • Ce qu'il manque : • Interactions avec d'autres composants -> Noah (service d'interactions de l’équipe Rainbow) • IHM -> MVC ? Introduction Objectifs -Composition -Adaptabilité -Synthèse Modèle concret -Présentation d'UIML -Motivations -Limites Modèle abstrait -Motivations -Proposition -Synthèse Conclusion Jeremy Fierstone / Equipe Rainbow / 4
Model View C1 IC1 LPC/RMI/EJB C2 C3 IC2 IC3 Objectifs - Composition de composants (3) • IHMs composables • Car composants métier composables • IHMs interopérables • Car composants métier hétérogènes • Ex : Composition entre C2 (Java) et C3 (C++) pour obtenir C1 (composite) • Question : IHM de C1 ? Introduction Objectifs -Composition -Adaptabilité -Synthèse Modèle concret -Présentation d'UIML -Motivations -Limites Modèle abstrait -Motivations -Proposition -Synthèse Conclusion Jeremy Fierstone / Equipe Rainbow / 5
Objectifs - Composition de composants (4) • Composants indépendants, composables • Mais interactions possibles Introduction Objectifs -Composition -Adaptabilité -Synthèse Modèle concret -Présentation d'UIML -Motivations -Limites Modèle abstrait -Motivations -Proposition -Synthèse Conclusion Composants Composite Jeremy Fierstone / Equipe Rainbow / 6
Objectifs - Composition de composants (5) • Fusion de menus correspondants aux composants (1) Introduction Objectifs -Composition -Adaptabilité -Synthèse Modèle concret -Présentation d'UIML -Motivations -Limites Modèle abstrait -Motivations -Proposition -Synthèse Conclusion Jeremy Fierstone / Equipe Rainbow / 7
Objectifs - Composition de composants (6) • Fusion de menus correspondants aux composants (2) Introduction Objectifs -Composition -Adaptabilité -Synthèse Modèle concret -Présentation d'UIML -Motivations -Limites Modèle abstrait -Motivations -Proposition -Synthèse Conclusion Jeremy Fierstone / Equipe Rainbow / 8
Objectifs - Composition de composants (7) • Autres objectifs: • Cohérence entre structure (composant dédié voix + composant dédié graphique) • Dérivation de composants d'IHM (réutilisabilité) • Propagation des styles (couleurs, font) • Internationalisation et cohérence de langue entre composants • Composition des données à afficher • Cohérence • Tri • Maintien des relations avec la partie métier Introduction Objectifs -Composition -Adaptabilité -Synthèse Modèle concret -Présentation d'UIML -Motivations -Limites Modèle abstrait -Motivations -Proposition -Synthèse Conclusion Jeremy Fierstone / Equipe Rainbow / 9
Objectifs - Adaptabilité d'un composant (1) • Adaptation au contexte • Mobilité d'un composant (agenda) • Complexité de l'IHM (PC, PDA) • Support (Graphique (PC, PDA), voix) • Tolérance aux pannes • Langues, styles, ... • -> Différentes IHMs pour un même composant • Interopérabilité des IHMs • Uniformité des IHMs (un seul langage) Introduction Objectifs -Composition -Adaptabilité -Synthèse Modèle concret -Présentation d'UIML -Motivations -Limites Modèle abstrait -Motivations -Proposition -Synthèse Conclusion Jeremy Fierstone / Equipe Rainbow / 10
Objectifs - Adaptabilité d'un composant (2) • Problème d'adaptabilité • Dispositions différentes (relation 1-1, 1-n (liste)) • Ex : composant Client (classe) • Instances C1, C2 • Attributs d'instances Nom, Prenom Introduction Objectifs -Composition -Adaptabilité -Synthèse Modèle concret -Présentation d'UIML -Motivations -Limites Modèle abstrait -Motivations -Proposition -Synthèse Conclusion Relation 1-1 Nom Prénom Relation 1-n Instance C1 Instance C2 Jeremy Fierstone / Equipe Rainbow / 11
Objectifs - Synthèse (1) • Composition • Contexte : composants • Hétérogènes • Externes à l'application • Indépendants les uns des autres • Objectifs : IHMs • Indépendantes • Composables • Interagissantes • Interopérables • Dérivables • Fusionnables (ex : menu) Introduction Objectifs -Composition -Adaptabilité -Synthèse Modèle concret -Présentation d'UIML -Motivations -Limites Modèle abstrait -Motivations -Proposition -Synthèse Conclusion Jeremy Fierstone / Equipe Rainbow / 12
Objectifs - Synthèse (2) • Adaptabilité • Environnement • Mobilité • Pannes • Langues • Styles • IHMs • Interopérables • Uniformes • Adaptables (ex : relation 1-1 / 1-n) Introduction Objectifs -Composition -Adaptabilité -Synthèse Modèle concret -Présentation d'UIML -Motivations -Limites Modèle abstrait -Motivations -Proposition -Synthèse Conclusion Jeremy Fierstone / Equipe Rainbow / 13
Modèle concret - Présentation d'UIML (1) • Application à UIML • « User Interface Markup Language » • Langage multi-interface (graphique, voix, ...) • Une norme : UIML (uiml.org) • Des implémentations ou « renderers » • Harmonia : Awt/Swing, HTML, WML, VXML, ... • Rubico : Visual Basic, GUI builder • TV Server, AG : C++ for embedded systems Introduction Objectifs -Composition -Adaptabilité -Synthèse Modèle concret -Présentation d'UIML -Motivations -Limites Modèle abstrait -Motivations -Proposition -Synthèse Conclusion Jeremy Fierstone / Equipe Rainbow / 14
Modèle concret - Présentation d'UIML (2) • Les 4 parties d'un document UIML: • <Head> : metadata (author, date, version, ...) • <Template> : réutilisation de fragments • <Interface> : interface proprement dite • <Structure> : arbre des « widgets » • <Style> : styles (propriétés) des widgets • <Content> : contenu (texte, image, son) • <Behavior> : objet / événement / action • <Peers> : mappings et liens vers l'extérieur Introduction Objectifs -Composition -Adaptabilité -Synthèse Modèle concret -Présentation d'UIML -Motivations -Limites Modèle abstrait -Motivations -Proposition -Synthèse Conclusion Jeremy Fierstone / Equipe Rainbow / 15
Modèle concret - Motivations (1) • Structure : • Découpage d 'une IHM et recomposition statique (lors du rendering) • utilisation de «template» • Réaffichage dynamique à partir d'un template • Utilisation de «restructure» • Composition dynamique par programmation • «template» + «restructure» • Style • Propagation : attribut : «cascade» (~CSS) • Content • Remplacement, sélection de langue Introduction Objectifs -Composition -Adaptabilité -Synthèse Modèle concret -Présentation d'UIML -Motivations -Limites Modèle abstrait -Motivations -Proposition -Synthèse Conclusion Jeremy Fierstone / Equipe Rainbow / 16
Modèle concret - Motivations (2) • Exemple de composition • <template> • <restructure at-part= « Top » how= « replace »> • <template> • <part id = « Nom » class= « JTextField »/> • <part id = « Prenom » class= « JTextField »/> • </template> • </restructure> • </template> • <uiml> • <interface> • <structure> • <part id= « Main » class= « Frame »> • <part id= « Top » class= « Panel »/> • </part> • </structure> • </interface> • </uiml> Introduction Objectifs -Composition -Adaptabilité -Synthèse Modèle concret -Présentation d'UIML -Motivations -Limites Modèle abstrait -Motivations -Proposition -Synthèse Conclusion Jeremy Fierstone / Equipe Rainbow / 17
Modèle concret - Motivations (3) • Exemple de composition Introduction Objectifs -Composition -Adaptabilité -Synthèse Modèle concret -Présentation d'UIML -Motivations -Limites Modèle abstrait -Motivations -Proposition -Synthèse Conclusion Main Top Jeremy Fierstone / Equipe Rainbow / 18
Modèle concret - Motivations (4) • Composition: • Objectifs : IHMs • Indépendantes • Utilisation de «template» • Composables • Utilisation de «template» + «restructure» • Interagissantes • Interopérables • But fondamental d'UIML • Dérivables • Utilisation de template • Fusionnables (attribut «cascade», «union», «replace») Introduction Objectifs -Composition -Adaptabilité -Synthèse Modèle concret -Présentation d'UIML -Motivations -Limites Modèle abstrait -Motivations -Proposition -Synthèse Conclusion Jeremy Fierstone / Equipe Rainbow / 19
Modèle concret - Motivations (5) • Adaptabilité: • Environnement • Mobilité • Plusieurs interfaces UIML • Pannes • Langues et styles • Template, propagation • IHMs • Interopérables et uniformes • But fondamental d'UIML • Mais liaison étroite avec le vocabulaire • Adaptables (ex : relation 1-1 / 1-n) Introduction Objectifs -Composition -Adaptabilité -Synthèse Modèle concret -Présentation d'UIML -Motivations -Limites Modèle abstrait -Motivations -Proposition -Synthèse Conclusion Jeremy Fierstone / Equipe Rainbow / 20
Modèle concret - Limites (1) • Interopérabilité • Ex : Java Swing • <template> • <part id = « Nom » class= « JTextField »/> • <part id = « Bouton » class= « JButton »/> • </template> • Ex : Java Awt • <template> • <part id = « Nom » class= « TextField »/> • <part id = « Bouton » class= « Button »/> • </template> • Ex : HTML • <template> • <part id = « Nom » class= « InputField »/> • <part id = « Lien » class= « Anchor »/> • </template> Introduction Objectifs -Composition -Adaptabilité -Synthèse Modèle concret -Présentation d'UIML -Motivations -Limites Modèle abstrait -Motivations -Proposition -Synthèse Conclusion Jeremy Fierstone / Equipe Rainbow / 21
Modèle concret - Limites (2) • Adaptabilité • Différentes dispositions pour un même composant Introduction Objectifs -Composition -Adaptabilité -Synthèse Modèle concret -Présentation d'UIML -Motivations -Limites Modèle abstrait -Motivations -Proposition -Synthèse Conclusion Jeremy Fierstone / Equipe Rainbow / 22
Modèle concret - Limites (3) • Adaptabilité • Relation 1-1 / 1-n • <template> • <part id = « Nom » class= « JTextField »/> • <part id = « Prenom » class= « JTextField »/> • </template> • <template> • <part id = « table » class= « JTable »/> • </template> Introduction Objectifs -Composition -Adaptabilité -Synthèse Modèle concret -Présentation d'UIML -Motivations -Limites Modèle abstrait -Motivations -Proposition -Synthèse Conclusion Nom Pr₫nom Instance C1 Instance C2 Jeremy Fierstone / Equipe Rainbow / 23
Modèle abstrait - Motivations • Objectifs: • Interopérabilité totale • Interface vocale, graphique, braille, ... • Proposer un modèle le plus générique • Généraliser les formulaires de saisie • Générer l'UIML : • Ajouter du style (dépend du média) • Couleurs, tailles, disposition -> GUI • Automates Etats / Transitions -> Voix • ... • Ajouter du comportement • Boutons, liens, sélection -> GUI • Touche DTMF, Token -> voix ... Introduction Objectifs -Composition -Adaptabilité -Synthèse Modèle concret -Présentation d'UIML -Motivations -Limites Modèle abstrait -Motivations -Proposition -Synthèse Conclusion Jeremy Fierstone / Equipe Rainbow / 24
Modèle abstrait - Proposition • Fonctionnalités (pour un formulaire) • Field : texte simple • Accès • Read : Label, Texte (à lire ou entendre) • Read / Write : Field • Select : Liste, choix (radio boutons, DTMF) • Type: string, int, double • List: • List de Fields (Select) : choix multiples • List de Fields (Read/Write) : liste de champs • Sequence: • Sequence de fields : colonnes d'un tableau • List de sequence de fields : tableau 2D Introduction Objectifs -Composition -Adaptabilité -Synthèse Modèle concret -Présentation d'UIML -Motivations -Limites Modèle abstrait -Motivations -Proposition -Synthèse Conclusion Jeremy Fierstone / Equipe Rainbow / 25
Modèle abstrait - Synthèse (1) • Limites de l'approche : • Comportement • Contenu • Style • Apports de l'approche : • Composition plus facile • Composition au niveau du modèle abstrait • Adaptation possible • Différentes dispositions possibles • Relation 1-1 / 1-n • Exemple : • Sequence de fields (nom, prenom) • List de sequence de fields (tableau) Introduction Objectifs -Composition -Adaptabilité -Synthèse Modèle concret -Présentation d'UIML -Motivations -Limites Modèle abstrait -Motivations -Proposition -Synthèse Conclusion Jeremy Fierstone / Equipe Rainbow / 26
Modèle abstrait - Synthèse (2) • Sequence de fields (nom, prenom) Introduction Objectifs -Composition -Adaptabilité -Synthèse Modèle concret -Présentation d'UIML -Motivations -Limites Modèle abstrait -Motivations -Proposition -Synthèse Conclusion • List de sequence de fields (tableau) Nom Prénom Instance C1 Instance C2 Jeremy Fierstone / Equipe Rainbow / 27
Conclusion (1) • Composition • Contexte : composants • Hétérogènes • Externes à l'application • Indépendants les uns des autres • Objectifs : IHMs • Indépendantes • Composables • Interagissantes • Interopérables • Dérivables • Fusionnables (ex : menu) Introduction Objectifs -Composition -Adaptabilité -Synthèse Modèle concret -Présentation d'UIML -Motivations -Limites Modèle abstrait -Motivations -Proposition -Synthèse Conclusion Jeremy Fierstone / Equipe Rainbow / 28
Conclusion (2) • Composition • Propositions: • Service d'interactions pour UIML • Interactions entre templates • Ajout de règles en ISL = Ajout de règles en UIML • Atelier de composition Introduction Objectifs -Composition -Adaptabilité -Synthèse Modèle concret -Présentation d'UIML -Motivations -Limites Modèle abstrait -Motivations -Proposition -Synthèse Conclusion Jeremy Fierstone / Equipe Rainbow / 29
Conclusion (3) • Adaptabilité • Environnement • Mobilité • Pannes • Langues et styles • IHMs • Interopérables et uniformes • Totalement avec le modèle abstrait • Adaptables (ex : relation 1-1 / 1-n) • Modèle abstrait Introduction Objectifs -Composition -Adaptabilité -Synthèse Modèle concret -Présentation d'UIML -Motivations -Limites Modèle abstrait -Motivations -Proposition -Synthèse Conclusion Jeremy Fierstone / Equipe Rainbow / 30
Conclusion (4) • Objectifs: • Finaliser le modèle abstrait • Spec • Générateur / composeur • Analyse / Conception de l'atelier de composition et d'intégration de composants • Application d'exemple Introduction Objectifs -Composition -Adaptabilité -Synthèse Modèle concret -Présentation d'UIML -Motivations -Limites Modèle abstrait -Motivations -Proposition -Synthèse Conclusion Jeremy Fierstone / Equipe Rainbow / 31