AMENITIES es una metodologa, basada en modelos de comportamiento y
tareas, para el anlisis, diseo y desarrollo de sistemas cooperativos
Esta metodologa est centrada en el modelado inicial del sistema, usa el
punto de vista de los usuarios y tiene muy en cuenta aspectos relacionados con el grupo (conciencia de grupo, relaciones entre usuarios, dinmica del grupo, representacin de aspectos sociales, etc). A pesar del potencial que nos brinda esta metodologa, cada vez que modelamos un nuevo sistema hay que partir prcticamente de cero. Sin embargo, durante el modelado conceptual de estos sistemas suelen aparecer conceptos y escenarios comunes que deben ser descritos reiteradamente. Capturar dichas situaciones, representarlas y documentarlas para facilitar su posterior reutilizacin en otros proyectos es de un gran valor, tanto desde el punto de vista del proceso como de la propia especificacin.
Dentro del modelo de desarrollo propuesto se distinguen tres fases.
Una primera fase de obtencin y representacin del modelo de requisitos, donde se describen los elementos ms representativos del sistema, usando tcnicas como la etnografa aplicada (traduce resultados empricos en ideas para nuevos sistemas), los casos de uso (identifican procesos y tareas relevantes) o modelos tericos (permiten el anlisis de actividades de cooperacin y propiedades abstractas relacionadas con aspectos de diseo). En una segunda fase se realiza el modelo cooperativo del sistema, modelo conceptual que constituye el ncleo central de la metodologa. Su propsito es dar una descripcin del sistema independientemente de su implementacin, proporcionando as una mejor comprensin del dominio del problema, dada la complejidad que caracteriza a este tipo de sistemas. La descripcin es realizada usando una notacin basada en UML y que se denomina COMO-UML [8]. El modelo cooperativo representa el sistema mediante cuatro vistas realizadas bajo diferentes niveles de abstraccin:
Vista organizacional. Por medio de los llamados diagramas de
organizacin, los cuales estn basados en los diagramas de estados de UML, se modela la estructura esttica y dinmica de la organizacin del sistema. Los estados representan los diferentes roles que pueden
desempear los miembros en la organizacin y las transiciones reflejan
los posibles cambios de rol en virtud del cumplimiento de ciertas restricciones. Estas restricciones pueden ser capacidades (restricciones cognitivas impuestas a un actor para participar bajo un rol determinado) o leyes (restricciones impuestas por la propia organizacin que identifican las reglas sociales que deben ser preservadas en el grupo). Vista cognitiva. Representa las tareas que puede llevar a cabo cada miembro del grupo en el escenario colaborativo. Por un lado se define la interfaz del rol, el cual incluye las caractersticas ms relevantes del conjunto de tareas a realizar (su naturaleza cooperativa, mecanismos de activacin y modos de sincronizacin, interrupcin de unas tareas por otras, etc.), y por otro lado se describen las tareas mediante diagramas de actividades que reflejan los participantes, secuencialidad, concurrencia, optatividad, etc. En esta vista pueden aparecer elementos de las vistas de informacin (documentos, datos, recursos, etc.) y de interaccin (protocolos). Vista de interaccin. Se analiza la forma de comunicacin entre participantes y los recursos usados mediante protocolos de interaccin de alto nivel. Vista de la informacin. Refleja la informacin que es compartida en el escenario o que se utiliza para la comunicacin (documentos, eventos, recursos, etc.). Esta informacin se puede describir a travs de los diagramas de clases y de interaccin de UML.
A partir del modelo cooperativo se puede construir una mquina de estados en
UML y traducirla a una red de Petri coloreada (CPN) que permitira el anlisis y verificacin de determinadas propiedades (interbloqueos, alcanzabilidad, etc.). En una ltima fase, se pasara del modelo cooperativo a un diseo inicial del sistema basndonos en una arquitectura [9] que permite integrar de manera sencilla el modelo previamente propuesto. III. LA INTEGRACIN DE PATRONES DE SOFTWARE CON AMENITIES Capturamos, representamos y documentamos conceptos y escenarios comunes que aparecen a menudo durante el modelado conceptual de este tipo de sistemas, para despus seleccionarlos y aplicarlos en distintos proyectos llevados a cabo a travs de dicha metodologa Los patrones pueden aplicarse en las diferentes vistas del sistema que la metodologa proporciona. Habitualmente, comenzamos aplicando patrones durante el modelado de la estructura organizativa del sistema (vista organizacional). Posteriormente, identificamos tareas de la vista cognitiva que siguen patrones de conducta determinados y en los que la utilizacin de recursos tambin puede ser generalizada. Por ltimo, usamos patrones que especifican protocolos de comunicacin o coordinacin para describir procesos de comunicacin usados en la vista de interaccin.
UML usa colaboraciones parametrizadas que permiten especificar estructuras
formadas por clases/objetos reutilizables en una etapa de diseo orientado a objetos. Durante el modelado de un sistema cooperativo, adems de objetos y clases, usamos otros tipos de elementos (estados, actividades, paquetes, eventos, actores, roles, etc.) que nos permiten reflejar muchos otros aspectos relevantes para esta clase de sistemas (flujos de trabajo, estructura social de los usuarios, dinmica de la organizacin, protocolos sociales, cooperacin entre actores, etc.), los cuales son recogidos en fases tempranas de modelado. Para esto de define un profile en el que los patrones se consideran modelos genricos parametrizados (de cualquier tipo) que actan como plantillas flexibles para la construccin y/o descripcin de familias de modelos semejantes (instancias del patrn).
objetivoo de facilitar la descripcin y reutilizacin de conceptos y escenarios
comunes que podemos encontrar durante la aplicacin de esta metodologa. Los patrones los empleamos como piezas de conocimiento reutilizable para agilizar la construccin y especificacin de unos modelos a partir de otros (modelo del patrn), dando lugar a modelos ms comprensibles y fciles de mantener. Al mismo tiempo, stos nos proveen de un vocabulario comn, ayudando en la deteccin, comunicacin y discusin de los problemas tpicos de modelado.