IX Congreso Internacional Interaccin, Albacete 9-11 de Junio de 2008
Grupo LoUISE-Universidad de Castilla-La Mancha
Una Propuesta Metodolgica basada en Taxonomas para el Desarrollo de Sistemas Groupware Interactivos William J. Giraldo 2 , Ana I. Molina 1 , Manuel Ortega 1 , Csar A. Collazos 3
1 Departmento de Sistemas y Tecnologas de la Informacin. Universidad Castilla La Mancha. {AnaIsabel.Molina,Manuel.Ortega}@uclm.es 2 Ingeniera de Sistemas y Computacin, Universidad del Quindo, Quindo, Colombia wjgiraldo@uniquindio.edu.co 3 Grupo de investigacin IDIS, Universidad del Cauca, Popayn, Colombia. ccollazo@unicauca.edu.co Abstract. En este artculo se describe una taxonoma para el diseo de sistemas groupware interactivos. Dicha taxonoma define los objetivos, mtodos y principios para la clasificacin de modelos y facilita la integracin de los mismos. En concreto, mostramos el proceso de integracin de dos notaciones como son CIAN, que contempla aspectos de colaboracin e interaccin persona- computador, y UML, que permite especificar la funcionalidad de los sistemas groupware. Dicho proceso de integracin se apoya en una herramienta software desarrollada a tal efecto denominada CIAT. Keywords: Desarrollo basado en modelos, groupware, Interaccin Persona- Ordenador, taxonoma, propuesta metodolgica. 1 Introduccin El desarrollo de sistemas groupware de carcter interactivo integra disciplinas como la Ingeniera de Software, el CSCW (Computer Supported Cooperative Work), y la Ingeniera de la Usabilidad. Los implicados en el desarrollo de estos sistemas provienen de distintas disciplinas, abordan distintas perspectivas durante el diseo y requieren informacin especfica, generando igualmente artefactos concretos [1, 2]. Dicho proceso multidisciplinar de desarrollo es, en s mismo, un proceso colaborativo en el cual cada persona involucrada necesita un soporte para el diseo de artefactos desde mltiples perspectivas y distintas abstracciones. La informacin especificada por cada uno de ellos, en su espacio de trabajo, es un complemento para el modelado realizado en los espacios de trabajo del resto de integrantes del equipo de desarrollo. Aunque en la actualidad existe un nmero creciente de propuestas para el desarrollo de sistemas colaborativos, contina existiendo una brecha entre los procesos de desarrollo de la funcionalidad de dichos sistemas y el desarrollo de la interfaz de usuario que le da soporte [3]. 50 W. J. Giraldo, A. I. Molina, M. Ortega, C. A. Collazos Con el objetivo de soportar el modelado de sistemas de apoyo al trabajo en grupo se cre una propuesta metodolgica, denominada CIAM [4]. CIAM (Collaborative Interactive Applications Methodology) adopta diferentes puntos de vista para crear modelos de sistemas groupware interactivos, y propone una notacin especfica denominada CIAN [1], la cual promueve el modelado de la colaboracin, la comunicacin y la coordinacin. CIAN soporta adecuadamente el modelado de la colaboracin, pero no permite modelar atributos o cualidades 1 del sistema como son la funcionalidad, del modo en que lo hace UML. Por otro lado, ni UML ni RUP estn pensados para un diseo de interfaces de sistemas interactivos con caractersticas de usabilidad [5]. Cuando en el desarrollo de software se tienen en cuenta varios aspectos, tales como la interaccin con el usuario, la colaboracin y la funcionalidad, no es fcil identificar la relacin existente entre clases u objetos contenidos en los modelos que especifican dichos aspectos, dado que los distintos implicados en el proceso de desarrollo las conceptualizan de manera diferente. As, por ejemplo, mientras que para un etngrafo un objeto corresponde a un atributo dentro de una actividad en un diagrama de Inter-Accin 2 en CIAN, para un analista de datos el mismo objeto corresponde a una entidad de negocio en un diagrama de objetos de negocio en UML. De cara a completar el desarrollo de los sistemas groupware, el modelado de la interaccin y la colaboracin, soportado por CIAN, debe complementarse adecuadamente con el modelado de la funcionalidad, que se basa en el uso de la notacin estndar UML. Nuestro propsito es integrar la informacin especificada con CIAN con la informacin recogida en los modelos UML, y de esta manera, reducir la brecha existente entre el desarrollo de la interfaz y el proceso de desarrollo de software, as como el mapping entre ambos tipos de representacin. Para alcanzar este propsito se propone una taxonoma que define mtodos, reglas, principios y lenguajes para la clasificacin y organizacin de toda la informacin necesaria para la especificacin de los sistemas groupware. Este artculo est organizado de la siguiente forma: La seccin 2 introduce brevemente el planteamiento del problema al que pretendemos dar solucin. La seccin 3 presenta algunos trabajos relacionados. La seccin 4 muestra la taxonoma propuesta. Finalmente, se exponen las conclusiones extradas del trabajo desarrollado as como el trabajo futuro que se desprende del mismo. 2 Trabajos relacionados El CSCW encuentra sus bases en los conceptos de colaboracin, comunicacin, cooperacin y coordinacin, entre otros. Estos conceptos han sido relacionados con los conceptos de espacio y tiempo, lo cual ha dado lugar a distintas clasificaciones de las herramientas CSCW. La primera clasificacin es planteada por Johansen [6]. A partir de sta se han presentado distintas variaciones en las cuales se definen nuevas
1 Las cualidades son cada una de las caractersticas, atributos o aspectos que hacen que la especificacin de un sistema se enriquezca. 2 Los diagramas de Inter-Accin de CIAM modelan los procesos y actividades a desarrollar en el contexto del trabajo en grupo. La especificacin de cada actividad incluye los roles y objetos implicados en su desarrollo, as como la secuenciacin existente entre ellas. Una Propuesta Metodolgica Basada en Taxonomas para Groupware 51 categoras que relacionan los conceptos base del CSCW antes mencionados, en funcin del tiempo y el lugar. Sin embargo, no siempre es posible ubicar herramientas simples, y menos an sistemas complejos, en dichas categoras. Penichet [7] presenta una taxonoma en la que es posible clasificar una funcin, una herramienta o un sistema 3
con respecto a las caractersticas espacio-temporales y a las caractersticas propias de los sistemas CSCW como colaboracin, comunicacin y coordinacin, Fig. 1(a). Esta propuesta, en cierto modo, elimina algunas discrepancias presentadas en las clasificaciones anteriores, permitiendo as separar en categoras independientes tanto los aspectos de colaboracin, comunicacin y coordinacin, como el tiempo y lugar en que dichos aspectos se desarrollan.
Fig. 1. Clasificacin de las cualidades de una sistema groupware interactivo. 3 Taxonoma para sistemas groupware interactivos Todas estas clasificaciones, o taxonomas, han sido utilizadas para clasificar las funciones o subsistemas que dan soporte al trabajo colaborativo, sin embargo no han sido utilizadas para clasificar la informacin expresada en los modelos que especifican dichos sistemas. Nos planteamos crear una taxonoma con este objetivo. Dicha taxonoma difiere del resto en el hecho de que proporciona un marco para la clasificacin de los distintos aspectos o facetas a considerar durante el modelado de un sistema groupware interactivo, as como por favorecer la adecuada integracin y mapeo entre la informacin expresada en los diferentes modelos. La siguiente seccin describe la taxonoma que hemos diseado. Nuestra propuesta parte de la hiptesis de que un sistema groupware interactivo puede ser clasificado y, por lo tanto, modelado mediante una o varias capas, conjuntos o familias de especificaciones, en cada una de las cuales se expresan una o varias cualidades del mismo. Dicha idea, expresada de forma grfica en la Fig. 1(d) da lugar a la definicin de nuestra taxonoma. Para sistemas con una capa, sta necesariamente representara todas las cualidades del mismo Fig. 1(b). Esta hiptesis sugiere que un sistema CSCW existente puede ser reemplazado por un conjunto de componentes
3 Esta distincin es necesaria porque algunos de los servicios necesarios en CSCW pueden presentarse como una funcionalidad, como un componente software incorporado o como un sistema o aplicativo software por si mismo. Un chat es un ejemplo. 52 W. J. Giraldo, A. I. Molina, M. Ortega, C. A. Collazos software que por separado soportan una o varias de estas cualidades y que sean integrables entre s para completarlo. Por lo tanto, una capa por s sola podra llegar a modelar un componente software completamente funcional. Nuestra propuesta no solamente est orientada al modelado e integracin de componentes de este tipo, sino tambin, a definir un mtodo mediante el cual se pueda tener diversas abstracciones de un sistema que modelen, por separado, diversas cualidades a potenciar en el mismo. Las capas de un sistema CSCW pueden compartir elementos de modelado, puesto que cada una es simplemente una realizacin 4 (delimitacin, o abstraccin) de una o varias cualidades. En la Fig. 1(c) se observa una capa que tiene como propsito integrar todos los modelos que estn relacionados con la usabilidad del sistema. Otra hiptesis que se plantea es que la taxonoma podra servir de base comn y punto de conexin entre distintos procesos de desarrollo y propuestas de modelado para resolver, en gran medida, el problema de integracin existente entre ellas. 3.1 Integracin entre capas Aunque nuestra propuesta de integracin, basada en el uso de la taxonoma propuesta, puede aplicarse a un amplio nmero de notaciones, cada una de ellas adecuada para especificar distintos aspectos del sistema, nuestro inters inicialmente se centra en la integracin de las notaciones CIAN y UML, tal y como se ha apuntado anteriormente.
Fig. 2. Posibles escenarios de integracin de las propuestas CIAN y UML. La integracin o separacin se lleva a cabo mediante una capa de integracin, cuyo propsito es almacenar la informacin til y relevante proveniente de ambas notaciones. Dicha capa clasifica la informacin de los elementos de modelado comunes en ambas notaciones y los organiza en diversas perspectivas y vistas. Este proceso de integracin podra realizarse de distintas formas. Algunos de los posibles escenarios de integracin se describen a continuacin: (1) Se inicia el modelado con diagramas en CIAN con el objetivo de especificar la interfaz colaborativa. Este modelo especifica la colaboracin, las tareas de los usuarios, los objetos, el paso de informacin, la coordinacin de las actividades, la relacin entre interfaces y tareas, etc.
4 La realizacin es un mecanismo utilizado en el RUP para delimitar o demarcar el conjunto de elementos de modelado que implementan una especificacin. Este mecanismo se usa principalmente en los casos de uso. Una realizacin por tanto es una vista de todas las clases que implementan una funcionalidad. Una clase puede participar en varias realizaciones. Una Propuesta Metodolgica Basada en Taxonomas para Groupware 53 Posteriormente, se contina el diseo en UML con el objetivo de especificar la funcionalidad. En la Fig. 2 (a) se ilustra este proceso. (2) Se inicia el diseo en UML con el objetivo de especificar la funcionalidad. Posteriormente, contina el diseo en CIAN con el objetivo de especificar la interfaz colaborativa. En la Fig. 2 (b) se ilustra este proceso. (3) Se combinan los dos escenarios anteriores. En este caso son necesarias transformaciones adicionales dentro de la capa de integracin para sincronizar los modelos que se elaboran en paralelo, Fig. 2 (c). 3.2 Definicin de la capa de integracin La capa de integracin que proponemos tiene su base en el Framework de Zachman [8]. Dicho Framework propone una taxonoma sistemtica que permite asociar conceptos que describen el mundo real con los que describen su respectivo sistema de informacin y su posterior implementacin [9]. Esta taxonoma est definida en dos dimensiones organizadas en perspectivas y vistas. De cara a facilitar la explicacin se consideran nicamente las perspectivas de modelo de negocio, modelo de sistema y modelo de tecnologa y las vistas de datos, procesos, red y personas. La interseccin de vistas y perspectivas da lugar a 12 celdas de modelado, (Fig. 3). Cada celda provee un contenedor para los modelos que abordan una determinada perspectiva y vista. Se provee una representacin desde distintos puntos de vista, en diferentes niveles de granularidad, generalidad y abstraccin. Una perspectiva es una representacin arquitectnica en un nivel de abstraccin especfico y representa un conjunto de restricciones fsicas o lgicas que puedan afectar el desarrollo de un sistema en ese nivel. Esta clasificacin por perspectivas permite una independencia entre los distintos niveles de abstraccin, sin embargo, es necesario contar con una arquitectura slida que permita su posterior integracin. MDA (Model Driven Architecture) [10] es una arquitectura que promueve el diseo guiado por modelos y, tal y como puede observarse en la Fig. 3, existe una relacin entre las perspectivas y los niveles de MDA. Frankel et al [11] describen como se puede mapear el Framework de Zachman con MDA.
Fig. 3. Estructura de la capa de integracin El concepto de vista, o abstraccin, es un mecanismo utilizado por los diseadores para entender un aspecto de un sistema. Un punto clave en las arquitecturas de software 54 W. J. Giraldo, A. I. Molina, M. Ortega, C. A. Collazos (perspectivas) es el soporte para el manejo de distintos niveles de abstraccin. La abstraccin es la herramienta que permite a los desarrolladores de software manejar la complejidad de sus desarrollos. Es por ello que nos enfocamos, en primer lugar, en las abstracciones y, posteriormente, en las implementaciones que se derivan de dichas abstracciones [12]. As, por ejemplo, la vista de datos provee modelos con informacin acerca del dominio del sistema a desarrollar. Por otro lado, la vista de procesos incluye modelos que representan los procesos y funcionalidades del sistema. Para capturar todos los requisitos de un sistema software es necesario contemplar mltiples vistas. Las cualidades son cada una de las caractersticas, atributos o aspectos que hacen que la especificacin de un sistema se enriquezca, y por ende, permite diferenciar un sistema de otro. En el contexto de nuestra taxonomia los 'atributos de calidad pueden considerarse como cualidades. Para controlar la integridad, la unicidad, la consistencia y la recursividad de la informacin especificada, la taxonoma define una serie de reglas. En este sentido se han adoptado y refinado las siete reglas del Framework de Zachman [9]. Algunos ejemplos de estas reglas son: (R 2 ) El conjunto de las celdas en cada vista columna- se gua por un metamodelo nico. (R 5 ) La composicin o integracin de todos los modelos de las celdas en una fila constituye un modelo completo desde esa perspectiva. (R 7 ) La lgica es recursiva.
Fig. 4. Niveles del MOF y su relacin con la taxonoma 3.3 Estructura de las notaciones en la capa de integracin MDA provee la estructura conceptual mediante la cual se especifican las notaciones o lenguajes de dominio especfico, DSL (Domain-Specific Language)) utilizados en cada una de las celdas de la capa de integracin. Adicionalmente, permite implementar dichas notaciones por medio de herramientas software para aplicaciones especficas, dentro de un enfoque arquitectnico [13], Fig. 4 (a). Por tanto, cada uno de los modelos de las celdas est relacionado con su respectivo metamodelo (DSL). Todos los modelos en MDA estn relacionados gracias a que se basan en un metamodelo ms abstracto denominado MOF (Meta Object Facility) [10]. El uso de MOF facilita la definicin de las transformaciones necesarias en la integracin de modelos. Las transformaciones que se llevan a cabo son del tipo Modelo a Modelo Una Propuesta Metodolgica Basada en Taxonomas para Groupware 55 (M2M) o Modelo a Texto (M2T) (Fig. 4 (c)), las cuales pueden realizarse entre celdas de dos diferentes capas, en una misma capa, en sentido horizontal -misma perspectiva- o vertical -misma vista-. La integracin entre capas que utilicen las notaciones UML y CIAN es posible gracias a que estos son coherentes con los niveles de MDA, ver figura 4(b).
Fig.5. Modelos de la Celdas de la capa de integracin. La capa de integracin posee un conjunto de celdas con informacin que debe estar relacionada tanto a nivel de vistas como de perspectivas. Por lo tanto, se especifica un metamodelo base (Fig. 5 (c)) para conservar la consistencia de los modelos en celdas de una misma vista regla2- y para la integracin o composicin de los modelos en las celdas de una misma fila regla 5-, desempeando una funcin de integracin a nivel de perspectiva. Puede especificarse un metamodelo base distinto para cada capa de integracin, eso depende de la naturaleza de la familia de lenguajes (DSL) que est especificando dicho metamodelo base. Por ejemplo, al integrar UML y CIAN se podra crear una sola capa de integracin para almacenar la informacin comn til en la integracin. Sin embargo, se podra tener una capa de integracin por cada notacin, proporcionando un beneficio adicional porque se puede exponer la informacin que una notacin brinda a las dems y no solo a una en especial. Mltiples capas de integracin pueden coexistir en un sistema. Una capa de integracin puede estar asociada directamente a una capa -ver Fig. 1-, a una notacin o a una cualidad. Esto supone una nueva dimensin en la taxonoma. Esta dimensin se establece para agrupar el conjunto de capas de integracin que conforman un sistema groupware interactivo. Cada nivel en esta dimensin representa un conjunto o familia de lenguajes de dominio especfico que intenta modelar una o varias cualidades del sistema. Fig. 5(b). La integracin entre capas se realiza mediante transformaciones definidas para cada notacin. MDA propone la transformacin de modelos para reducir la complejidad del diseo de software [13, 14]. En la Fig. 6 (a) se ilustra un ejemplo de transformacin en el cual se extrae informacin de un diagrama en CIAN y se rellena la capa de integracin. La estructura de las notaciones se representa mediante unas cajas que 56 W. J. Giraldo, A. I. Molina, M. Ortega, C. A. Collazos contienen metamodelos a nivel M3 y M2. La celda con el diagrama en CIAN sociograma- est en el nivel M1 (Modelo), el cual est definido por la notacin CIAN, la cual a su vez, est definida como un UML-Profile en el nivel M2 (metamodelo). La transformacin tiene como metamodelo de entrada a CIAN y como metamodelo de salida el DSL definido para dichas celdas. En la Fig. 6 (b) se ilustra el proceso contrario que consiste en transformar modelos desde la capa de integracin para generar diagramas UML. Hay que aclarar que no siempre se podrn obtener diagramas completos en UML, generalmente se genera informacin parcial de elementos de modelado, la cual sirve como punto de partida para el posterior modelado en UML.
Fig. 6. integracin entre CIAM y UML 3.4 Ejemplo de Integracin entre capas. La Fig. 7 ilustra la integracin de modelos de CIAN y UML usando CIAT (Collaborative Interactive Applications Tool). CIAT es una herramienta basada en Eclipse que ayuda a los desarrolladores a especificar modelos en CIAN. En particular se muestra el proceso de integracin del diagrama denominado Sociograma de CIAN y su correspondiente representacin en notacin UML. La informacin relativa a los roles y relaciones entre los miembros de la organizacin mostrados en el Sociograma se procesa por medio de las transformaciones para generar informacin parcial del modelo de negocio y del modelo de sistema. Esta informacin se clasifica en estas dos perspectivas para la vista personas principalmente. Cada actor en CIAN puede representar tanto un Business Actor como un System Actor en UML. Las relaciones de dependencia y asociacin no tienen una representacin directa en UML, sin embargo, su informacin debe ser almacenada para generar otros artefactos. La perspectiva del modelo de negocio se presenta en la Fig. 7 (b), en la cual se ha rellenado informacin para las vistas de datos, procesos, red y personas. Esta informacin es generada a partir de varios diagramas en CIAN. En primer lugar, la columna de personas (people) de la capa de integracin se ha rellenado con informacin del sociograma, ver Fig. 7 (a), posteriormente, a partir de la informacin de la capa de integracin en la columna personas (people), para este caso, se ha generado el diagrama de actores de negocio en UML, ver Fig. 7 (c). Los nombres de los elementos de modelado que se almacenan en esta capa son numerados tanto de forma automtica como manual. Una Propuesta Metodolgica Basada en Taxonomas para Groupware 57 4 Conclusiones El desarrollo de sistemas de soporte al trabajo en grupo resulta una tarea compleja, entre otros motivos, dada la naturaleza de los grupos involucrados en dicho proceso, cuyos integrantes suelen provenir de distintas reas de conocimiento. Las necesidades de los distintos miembros del equipo de desarrollo, as como los artefactos manipulados, es decir, la perspectiva adoptada durante el desarrollo, vara para cada uno de ellos. De igual forma, a la hora de desarrollar el sistema software existen distintos aspectos o cualidades a potenciar (usabilidad, soporte a la colaboracin, funcionalidad, etc). Por otro lado, la posibilidad de trabajar con distintas abstracciones (vistas) facilita el manejo de la complejidad en el desarrollo de los sistemas. Contemplar todas estas posibilidades ha dado lugar a una propuesta basada en la definicin de una taxonoma tridimensional (perspectivas-vistas-cualidades) que facilita la integracin de las notaciones empleadas por distintos miembros del equipo de desarrollo, que soportan el modelado de distintos aspectos y que trabajan a distintos niveles de abstraccin, as como la definicin de transformaciones entre ellas. Desde otro punto de vista, dicha taxonoma puede ser igualmente empleada como una adecuada herramienta de clasificacin de notaciones. Sera, en este caso, posible definir mtricas, indicadores o ndices de cobertura para cada una de las cualidades, perspectivas y/o niveles de abstraccin soportados por un artefacto de especificacin concreto. En particular, en este artculo se ha mostrado la aplicacin de dicho marco de integracin a dos notaciones como son UML, que da un soporte adecuado al modelado de la funcionalidad del sistema y CIAN, que se centra en el modelado de la colaboracin y la interaccin con el usuario. Extrapolando los resultados de integracin de ambas propuestas a otras notaciones existentes en la bibliografa se podra concluir que la taxonoma propuesta hace posible la conexin entre propuestas provenientes del campo de la Ingeniera del Software y de la Interaccin Persona-Ordenador. Se ha desarrollado una herramienta software denominada CIAT, que implementa las ideas aqu presentadas. Dicha herramienta no solo permite la edicin de modelos en notacin CIAN, sino que realiza la integracin y transformacin de los modelos al estndar UML, empleando como artefacto intermediario la taxonoma propuesta. 58 W. J. Giraldo, A. I. Molina, M. Ortega, C. A. Collazos
Fig. 7. Ejemplo de integracin entre CIAN y UML usando la herramienta CIAT. Agradecimientos Este trabajo ha sido financiado por la Universidad Castilla-La Mancha y la Junta de Comunidades de Castilla-La Mancha en los proyectos mGUIDE (PBC08-0006-512) y M-CUIDE (TC20080552) y por la Universidad del Quindo (Colombia). Referencias 1. Molina, A.I., M.A. Redondo, and M. Ortega. A conceptual and methodological framework for modeling interactive groupware applications. In 12th International Workshop on Groupware (CRIWG 2006). 2006. Valladolid. Spain: Springer-Verlag (LNCS). 2. Gutwin, C. and S. Greenberg. Design for Individuals, Design for Groups: Tradeoffs between power and workspace awareness. in $&0&6&:. 1998. Seattle: ACM Press. 3. Molina, A.I., et al. A proposal of integration of the GUI development of groupware applications into the Software Development Process. in 13th International Workshop on Groupware (CRIWG'2007). 2007. Bariloche (Argentina): Lecture Notes in Computer Science. Springer-Verlag. 4. Molina, A.I., M.A. Redondo, and M. Ortega, CIAM: A methodology for the development of groupware user interfaces. Journal of Universal Computer Science(JUCS), 2007. 5. IBM_Rational, Too Navigator (Rational Unified Process). 2003. 6. Johansen, R., Groupware: Computer support for business teams. 1988: New York: The Free Press. 7. Penichet, V.M.R., et al., A Classification Method for CSCW Systems. Electronic Notes in Theoretical Computer Science, 2007. Una Propuesta Metodolgica Basada en Taxonomas para Groupware 59 8. Zachman, J.A., A Framework For Information Systems Architecture. IBM Ssystems Journal, 1987. 26(3). 9. Sowa, J.F. and J.A. Zachman, Extending and formalizing the framework for information systems architecture. IBM Syst. J, 1992: p. 590-616. 10. Miller, J. and J. Mukerji. MDA Guide Version 1.0.1. 2003 [cited 08-07-2007; Available from: http://www.appdevadvisor.co.uk/express/vendor/domain.html. 11. Frankel, D.S., et al. (2003) The Zachman Framework and the OMG's Model Driven Architecture. MDA Journal 12. Kaisler, S.H., Software Paradigms. 2005: John Wiley & Sons, Inc. 13. Frankel, D.S. (2004) An MDA Manifesto. MDA Journal 14. Jouault, F. and I. Kurtev. On the architectural alignment of ATL and QVT. in Proceedings of the 2006 ACM symposium on Applied computing. 2006. Dijon, France: ACM.