1 / 31

R a i n b o w - Arcad

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

aden
Télécharger la présentation

R a i n b o w - Arcad

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Rainbow - Arcad Composition de composants et IHMs composites 23/05/2002 Jeremy Fierstone / Equipe Rainbow / 1

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. 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

  29. 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

  30. 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

  31. 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

More Related