Catalogue de Pattern pour le CSCW La création d application dans le cadre du CSCW (Computer Supported Cooperative Work), ou TCAO en français (Travail collaboratif assisté par ordinateur) a donné lieu à un grand nombre d expériences. Pour la rendre plus performante, et dans la perspective d une approche MDA (Model Driven Architecture), il est indispensable de recenser les travaux effectués, et de disposer d informations systèmatiques sur ce qui peut être réutilisé. Un élément prépondérant de réutilisation en génie logiciel est le Design Pattern, qui présente une solution à un problème récurent. La plupart des publications sur le CSCW présentent les caractéristiques des solutions proposées sous cette forme. Il est donc possible d en établir un catalogue et par conséquent d en faciliter la réutilisation. Certains de ces Patterns peuvent être utilisables dans des cas d applications génériques. D autres sont plus spécifiques au CSCW. 1
Table des matières 1 Sur ce Catalogue 3 1.1 Types de Pattern........................... 3 1.2 Description des Patterns....................... 3 1.3 Identification des Patterns...................... 3 1.4 Liste des fonctionnalités....................... 3 2 Les Patterns 5 2.1 Le framework DyCE......................... 5 2.1.1 Publication.......................... 5 2.1.2 Le Pattern DyCE01 1.................... 5 2.1.3 Le Pattern DyCE01 2.................... 6 2.1.4 Le Pattern DyCE01 3.................... 7 2.1.5 Le Pattern DyCE01 4.................... 8 2.1.6 Le Stéréotype DyCE01 5.................. 9 2.1.7 Le Pattern DyCE01 6.................... 10 2.1.8 Le Pattern DyCE01 7.................... 11 2.1.9 Le stéréotype DyCE01 8................... 11 2.1.10 Le Stéréotype DyCE01 9.................. 12 2.1.11 Le Stéréotype DyCE01 10.................. 13 2.1.12 L extension UML DyCE01 11................ 14 2.2 Le framework XCHIPS........................ 16 2.2.1 Publication.......................... 16 2.2.2 Le Pattern XCHIPS01 1................... 16 2.2.3 Le Pattern XCHIPS01 2................... 16 2.2.4 Le Pattern XCHIPS01 3................... 17 2.3 Doc2U................................. 18 2.3.1 Publication.......................... 18 2.3.2 Pattern Doc2U05 1...................... 18 2.3.3 Doc2U05 2.......................... 19 2.3.4 Doc2U05 3.......................... 20 2.4 Métamodèle AMF [Vaisman02]................... 21 2.5 Support d activité [Bourguin].................... 22 3 Bibliographie 24 2
1 Sur ce Catalogue 1.1 Types de Pattern Afin de ne pas pas restreindre la réutilisation des modèles existants à des modèles qui peuvent prétendre à l appellation de Design Pattern, le type de modèle est précisé : Pattern : Modèle de classe ; peut prétendre à l appellation de Design Pattern, Stéréotype : exemple typique de mise en oeuvre d une solution logicielle ; ce ne sont pas des Design Pattern, mais illustrent certaines fonctionnalités des applications présentées, Extension UML : il s agit d un profil UML particulier, Modèle : Modèle d un domaine particulier, peut servir de méta-modèle. 1.2 Description des Patterns La description des patterns comprend les rubriques suivantes : : le nom (explicite) du Pattern, Fonctionnalités : les fonctionnalités que ce Pattern permet de mettre en oeuvre, : les Patterns qui sont utilisés conjointement, : liens avec les Pattern utilisés conjointement, : type d application pour lequel le Pattern a été développé. Attention, cette indication n est pas restrictive au niveau de l usage du Pattern, : outils ou autres briques logicielles nécessaires pour exploiter les fonctionnalités mises en oeuvre par ce Pattern. 1.3 Identification des Patterns Les Pattern sont identifiés par la publication dans laquelle ils ont été présentés, ainsi que par leur ordre d apparition. Ce publications sont : DyCE, la thèse A Framework for Developing Component-based Co-operative Applications de D. Tietze, 2001, XCHIPS, l article Organizing Shared Enterprise Workspaces Using Component- Based Cooperative Hypermedia, de Jessica Rubart, Jörg M. Haake, Daniel A. Tietze, Weigang Wang, 2001. 1.4 Liste des fonctionnalités Les fonctionnalité suivantes ont été formalisées sous la forme de Pattern : 3
Fonctionnalité Pattern accès à des documents non partagés XCHIPS01 3 composant mobile XCHIPS01 2 lien relaché entre objets XCHIPS01 2 objet hypermedia XCHIPS01 1 référence sur objet partagé XCHIPS01 3 représentation de données complexes XCHIPS01 1 représentation d un workflow XCHIPS01 1 sémantique des objets XCHIPS01 1 session en tant qu objet partagé XCHIPS01 3 modèle de données complexes DyCE01 1, DyCE01 4 notification de modifications DyCE01 1 réplication des objets DyCE01 2 transactions DyCe01 3 opération de modification, lecture, écriture DyCe01 3 undo DyCe01 3 composants DyCE01 4 objets de modèle de domaine DyCE01 4 tâche DyCE01 6 session DyCE01 7 4
2 Les Patterns Pour des raisons de clarté, les Patterns présentés sont classés en fonction du cadre dans lequel ils ont été créés. 2.1 Le framework DyCE 2.1.1 Publication Le framwork DyCE a été présenté dans la thèse de Daniel Tietze : A Framework for Developing Component-based Co-operative Applications, 2001. 2.1.2 Le Pattern DyCE01 1 Modèle de représentation d objet Fonctionnalités Modèle de données complexes, mécanisme d évènement de notification de modifications des données et des processus de manipulation des données Access Object [BCM 95], modèle de tache sta- tique Slots Application cooperative basée composant - (uniquement logique métier de manipulation de ces données) 5
2.1.3 Le Pattern DyCE01 2 ObjectManager Fonctionnalités Gestion de la réplication des objets, au niveau client et au niveau serveur. Le niveau serveur se caractérise par la gestion de la persistence, et la mise à disposition des objets pour les clients. Application cooperative basée composant - 6
2.1.4 Le Pattern DyCE01 3 Modèle objet de transaction Fonctionnalités Transactions, affichage et validation ; opération de modification, de lecture, d écriture (création et effacement), avec possibilité de undo Application cooperative basée composant - 7
2.1.5 Le Pattern DyCE01 4 Composants dans le framework DyCE Fonctionnalités Composants (MobileComponent, classe mère de tous les composants cooperatifs), Objets (ModelObject, classe mère des classes de modèle de domaine), Slots (RObject et Slot, classes de données), évènements de notification de modification de composant. Application cooperative basée composant - (classes génériques qui seront implémentées par les éléments du fra- mework) 8
2.1.6 Le Stéréotype DyCE01 5 Eléments du modèle de tâches statique (stéréotype UML) Fonctionnalités Editeur de document, outil de visualisation de structure, section de document Modèle de représentation d objet Slot Application cooperative basée composant implémentation des outils 9
2.1.7 Le Pattern DyCE01 6 Modèle de tâche Fonctionnalités partagé Tâche, publiée par un composant et appliquée à un objet Elément de modèle de tâche statique Composant Application cooperative basée composant - (implémentation des tâches lors du développement du composant) 10
2.1.8 Le Pattern DyCE01 7 Modèle d information de session Fonctionnalités Session, Tuple d utilisateur, liaison des sessions avec les composants, les sessions et les données d objet, modèle de tâche Composants du framework DyCE, représentation composants, données, tâches (respec- tivement) Application cooperative basée composant - (implémentation de la session) 2.1.9 Le stéréotype DyCE01 8 Sessions actives (stéréotype UML - diagramme de déploiement) Fonctionnalités Edition d un document par plusieurs utilisateurs modèle de tâche, modèle d information de ses- sion Tâche, session (respectivement) Application cooperative basée composant 11
Gestion de la concurence d accès par les composants 2.1.10 Le Stéréotype DyCE01 9 Stérétype UML pour des composants actifs sur des noeuds spécifiques Fonctionnalités Complément du Pattern DyCE01 8 Application cooperative basée composant 12
2.1.11 Le Stéréotype DyCE01 10 Stéréotype UML de composant coté serveur Fonctionnalités Extension des Pattern DyCE01 8, DyCE01 9 Application cooperative basée composant 13
2.1.12 L extension UML DyCE01 11 Extension d UML pour les composants groupware Section de document, données de domaine, éditeur de docu- Fonctionnalités ment Application cooperative basée composant 14
15
2.2 Le framework XCHIPS 2.2.1 Publication Le framework XCHIPS a été présenté dans l article suivant : Organizing Shared Enterprise Workspaces Using Component-Based Cooperative Hypermedia, Jessica Rubart, Jörg M. Haake, Daniel A. Tietze, Weigang Wang 2001 2.2.2 Le Pattern XCHIPS01 1 Hypermedia partagé avec support de processus Fonctionnalités Sémantique des objets, représentation de données complexes, représentation d un workflow, objet hypermedia composants groupware, wrapper Objet partagé, objet hypermedia Application coopérative hypermédia basée composant Outil de gestion de workflow capable d exploiter ces composants 2.2.3 Le Pattern XCHIPS01 2 Composants de groupware 16
Fonctionnalités Lien relaché entre objets, composant mobile wrapper Hypermedia partagé avec support de processus, Objet partagé Application coopérative hypermédia basée composant Outil de manipulation des objets partagés capable de gérer les liens entre composants 2.2.4 Le Pattern XCHIPS01 3 Wrapper Fonctionnalités Référence sur objet partagé, accès à des documents non partagés (avec locking pour résoudre la question de la concurrence), session en tant qu objet partagé composants groupware Hypermedia partagé avec support de processus, Objet partagé, objet hypermedia Application coopérative hypermédia basée composant - (uniquement accès à la classe de référence) 17
2.3 Doc2U 2.3.1 Publication Docu2 est un framework de développement collaboratif destiné à supporter le démarrage de la collaboration. Il a été présenté dans la thèse de A. L. Morán y Solares, Support pour la Collaboration Potentielle et Réelle dans la Conception de Collecticiels Répartis. Cette thèse a été soutenue le 20.01.2005 à l INPG Grenoble. 2.3.2 Pattern Doc2U05 1 Système de présence Fonctionnalités utilisateurs monitorisation et diffusion des informations de présence des Système de messagerie Structure identique Messagerie instantanée Système de messagerie instantanée 18
2.3.3 Doc2U05 2 Système de messagerie instantannée Fonctionnalités Emission/réception de messages Système de présence Structure identique Messagerie instantanée Système de présence 19
2.3.4 Doc2U05 3 Modèle d Espace Collaboratif Fonctionnalités Support de la collaboration potentielle (qui peut avoir lieu en fonction des personnes, des outils, etc., présents) et réelle Application avec support de collaboration potentielle et réelle 20
2.4 Métamodèle AMF [Vaisman02] Méta-modèle AMF Fonctionnalités Application modélisée par AMF. 21
2.5 Support d activité [Bourguin] Méta-modèle DARE pour le support d activité. Fonctionnalités Représentation de l exécution d une tâche, selon des outils et des rôles. Extension des classes pendant l exécution. Application collaborative évolutive 22
23
3 Bibliographie [BCM95] Georges Brun-Cottan and Mesaac Makpangou. Adaptable Replicated Objects in Distributed Environments. Rapport de Recherche 2593, Institut National de la Recherche en Informatique et Automatique, Rocquencourt (France), May 1995. [Bourguin] SUPPORTING HUMAN ACTIVITIES The Meta-Level Issue Grégory Bourguin, Xavier Le Pallec. [RHTW01] Organizing Shared Enterprise Workspaces Using Component-Based Cooperative Hypermedia, Jessica Rubart, Jörg M. Haake, Daniel A. Tietze, Weigang Wang, 2001. [Tietze01] Framework for Developing Component-based Co-operative Applications, D. Tietze, 2001, [Vaisman02] TCAO Capillaire : apports du modèle AMF-C, Gérald VAIS- MAN, Rapport de DEA, Laboratoire ICTT, 2002. 24