MOSKitt es una herramienta CASE libre desarrollada por la Conselleria de Infraestructuras y Transporte de la Generalitat Valenciana para dar soporte a la metodología gvMétrica. MOSKitt utiliza la plataforma Eclipse para proveer editores gráficos y textuales, soporte a la persistencia de modelos, transformación de modelos, y generación de documentación y código a partir de modelos. La arquitectura modular de MOSKitt la convierte en una plataforma extensible para construir herramientas de modelado.
2. ¿QUÉ ES MOSKITT?
Modeling Software KIT (MOSKitt) es una herramienta CASE
LIBRE, basada en Eclipse que está siendo desarrollada por la
Conselleria de Infraestructuras y Transporte (CIT) para dar
soporte a la metodología gvMétrica (una adaptación de
Métrica III a sus propias necesidades). gvMétrica utiliza
técnicas basadas en el lenguaje de modelado UML.
Su arquitectura de plugins la convierte no sólo en una
Herramienta CASE sino en toda una Plataforma de Modelado
en Software Libre para la construcción de este tipo de
herramientas.
MOSKitt se desarrolla en el marco del proyecto gvCASE, uno
de los proyectos integrados en gvPontis, el proyecto global de
la CIT para la migración de todo su entorno tecnológico a
Software Libre.
3. EL PROYECTO MOSKITT
PRINCIPIOS BÁSICOS
MOSKitt está siendo desarrollada siguiendo los siguientes principios
básicos:
MOSKitt es una solución en Software Libre cuyo desarrollo actual y
futuro debe mantener esta misma filosofía.
MOSKitt pretende construir un marco para contribuir a las
comunidades del software libre utilizando estándares siempre que sea
posible, facilitando la interoperabilidad con otras herramientas además
de ser una solución multiplataforma.
MOSKitt está diseñada siguiendo una arquitectura modular para que
pueda ser fácilmente extendida y/o adaptada en un futuro.
MOSKitt se está desarrollando siguiendo gvMétrica.
4. FUNCIONALIDADES CLAVE
Para dar soporte a gvMétrica se sigue un enfoque dirigido por modelos,
de forma que las tareas principales a las que debe dar soporte MOSKitt
son las siguientes:
Edición gráfica de modelos.
Soporte a la persistencia.
Soporte al Trabajo colaborativo y versionado de modelos.
Transformación, Trazabilidad y Sincronización de modelos.
Generación de Documentación y de Código DDL a partir de modelos.
Soporte al Proceso de Desarrollo definido por gvMétrica, guiando a
los usuarios en los distintos pasos que deben realizar para llevar a cabo
sus tareas.
5. ARQUITECTURA
La Arquitectura de MOSKitt consta de tres capas bien definidas:
• Una capa de Infraestructura Tecnológica que permite procesar,
manipular y gestionar los modelos editados a través de la capa de
Herramientas.
• Una capa de Herramientas que proporciona los diferentes Editores
(gráficos y textuales) incluidosen los Módulos funcionales de MOSKitt
propiamente dichos.
• Una capa de Soporte al Proceso en MOSKitt le proporciona la capacidad
de automatizar los diferentes procesos de desarrollo de software.
7. MODULOS
MÓDULOS DE SOPORTE AL PROCESO
Inicialmente en el desarrollo de MOSKitt se incluirá el soporte al proceso
de desarrollo de software propuesto por gvMétrica para la
automatización de Procesos Administrativos a través de su módulo:
MOSKitt-gvMétrica: Soporte al proceso de desarrollo definido
por gvMétrica. MOSkitt asiste a los distintos participantes en
el proceso de desarrollo durante la generación de cada uno de
los productos definidos por la metodología. Este módulo definirá
la semántica de los enlaces entre los modelos definidos a través
de los distintos modeladores proporcionados por la herramienta.
Soporte a la definición y ejecución de los procesos de desarrollo
permitiendo tanto la invocación de los diferentes módulos para la
elaboración de los recursos a producir en cada una de las tareas
como para la generación automática de algunos de ellos. Definición del
proceso establecido por gvMétrica.
No obstante, la arquitectura de MOSKitt permitirá que en proyectos
futuros se extienda para asistir cualquier otro modelo de proceso.
8. MODULOS
MÓDULOS DE INFRAESTRUCTURA
Los plugins que permiten procesar, manipular y gestionar modelos son los
siguientes:
MOSKitt-TrManager: El módulo gestor de transformaciones proporciona
mecanismos para declarar e invocar transformaciones en el entorno Eclipse.
Este módulo, utilizado en MOSKitt para gestionar las transformaciones de
modelos, define tanto (1) una interfaz programática (API) para listar y
ejecutar transformaciones como (2) un explorador de transformaciones y un
asistente gráfico para interactuar con los usuarios que deseen ejecutar
transformaciones.
MOSKitt-ModelSync: El módulo de soporte a la sincronización de modelos
implementa infraestructura para definir la sincronización entre modelos que
han sido transformados y trazados. Cuando un modelo trazado es
modificado, este módulo explota la información de las trazas para notificar a
los sincronizadores registrados de la necesidad de actualizar los modelos
relacionados. De esta manera es posible, por ejemplo, mantener la
consistencia entre modelos tras su transformación inicial.
9. MODULOS
MÓDULOS DE INFRAESTRUCTURA (Cont)
MOSKitt-MDT Common: Este módulo proporciona infraestructura adicional y
plantillas de generación para los editores gráficos de modelos basados en
GMF. Entre la funcionalidad proporcionada se puede destacar:
• Soporte al almacenamiento de múltiples diagramas en un único archivo y la
navegación entre ellos.
• Soporte a las vistas parciales (filtrado) de los elementos mostrados en los
diagramas.
• Soporte al “copiar y pegar” entre compartimentos.
• Soporte al “drag&drop”.
• Actualización de referencias en los diagramas al modificar el nombre de un
archivo de modelo EMF.
MOSKitt-IDE: Este módulo proporciona dos grupos de funcionalidades. Por
una parte define vistas basadas en el Common Navigation Framework (CNF)
de Eclipse para (1) la exploración y manipulación de modelos basados en
EMF y (2) la exploración y manipulación de los recursos del espacio de
trabajo. Por otra parte implementa infraestructura basada en el mecanismo
de ayuda de Eclipse para asociar descripciones cuando se seleccionan algún
elemento de modelado, incluso desde editores gráficos basados en GMF.
10. MODULOS
MÓDULOS FUNCIONALES (HERRAMIENTAS)
Siguiendo una arquitectura modular, MOSKitt está compuesto por los siguientes
módulos funcionales:
MOSKitt-UML2: Modelador de UML 2.0 con soporte a la edición de
Diagramas de Clases, de Casos de Uso, de Secuencia, de Actividad, de
Estados y de Perfiles.
MOSKitt-DB:Modelador de Esquemas de Bases de Datos Relacionales:
edición gráfica de los esquemas de bases de datos relacionales, con soporte
a los niveles lógico y físico, generación de código DDL e ingeniería inversa a
partir de esquemas Postgresql 8.X, MySql 5, Oracle 8i y Oracle 10.
MOSKitt-EIU: Modelador de Interfaces de Usuario con la posibilidad de
utilizar Patrones ya predefinidos. Generación de prototipos no funcionales.
MOSKitt-MPR: Módulo para Modelado de Procesos, incluye editor BPMN.
Extensión para especificación de Procedimientos Administrativos de la
Administración Pública Valenciana.
11. MODULOS
MÓDULOS FUNCIONALES (HERRAMIENTAS) (Cont)
MOSKitt-REQ: Modelador de Requisitos para la generación y mantenimiento
de un catálogo de requisitos, enlace de requisitos con los modelos, jerarquía
entre requisitos, trazabilidad entre requisitos y casos de uso, generación de
matrices de trazabilidad.
MOSKitt-WBS: Editor de EDT, (Estructura de Descomposición de Trabajo o
Estructura de Desglose del Trabajo, en inglés Work Breakdown Structure,
WBS). Es una estructura exhaustiva, jerárquica y descendente formada por
los entregables y las tareas necesarias para completar un proyecto.
MOSKitt-RMP: Repositorio con soporte para el trabajo colaborativo:
concurrencia, seguridad basada en roles, almacenamiento, mantenimiento y
versionado tanto de modelos como de otro tipo de productos propuestos por
la metodología.
MOSKitt-Interop: Módulo de Interoperabilidad que permitirá a MOSKitt
interoperar con otras herramientas comenzando por aquellas actualmente
utilizadas por la CIT, en este sentido ya ha sido implementada la importación
de modelos UML definidos con PowerDesigner.
12. TECNOLOGÍA EMPLEADA
MOSKitt se ha desarrollado sobre la plataforma Eclipse siendo su amplio
ecosistema de plug-ins uno de los grandes valores que han sido
potenciados en el proyecto. Algunos de los proyectos de Eclipse que se
han utilizado (o se planea utilizar) durante la construcción de la
herramienta MOSKitt son:
Principalmente (que no exclusivamente) los plug-ins del
proyecto Eclipse Modeling Project (EMP):
Los editores gráficos de la herramienta se han desarrollado utilizando
las posibilidades ofrecidas por Graphical Modeling Framework (GMF).
En aquellos casos en los que no se ha podido contar con la base de un
metamodelo existente, han sido desarrollados nuevos metamodelos
haciendo uso de Eclipse Modeling Framework (EMF). Graphical Editing
Framework (GEF) es otro plug-in de Eclipse Modeling Project (EMP)
muy utilizado en la construcción de MOSKitt donde los editores gráficos
generados por GMF/GEF son modificados para satisfacer las
necesidades del proyecto. También se ha sido utilizado el Validation
Framework para la construcción de las restricciones del modelo.
13. TECNOLOGÍA EMPLEADA
UML2 Tools:
Se han adaptado los editores gráficos de UML2 proporcionados por este proyecto para
construir los de MOSKitt y se han construido con GMF nuevos editores gráficos de
UML2 como es el caso del Editor de Diagramas de Casos de Uso y el de Secuencia. Por
supuesto se ha utilizado también el proyecto UML2 (una implementación del
metamodelo estándar de UML 2.0) el cual ha sido enriquecido con nuevas validaciones
del metamodelo.
Model to Model (M2M) and Model to Text (M2T) Transformations:
Para manipular los modelos se han utilizado los lenguajes y herramientas
proporcionados por estos proyectos. Aunque nuestra intención es proporcionar un
Servidor de Transformaciones que proporcione a la herramienta independencia respecto
del lenguaje de transformación utilizado, actualmente se está empleando Atlas
Transformation Language (ATL) para implementar las transformaciones Modelo a
Modelo y Xpand2 para implementar las transformaciones Modelo a Texto.
Data Tools Platform Project (DTP):
Se ha desarrolado un editor gráfico basado en GMF utilizando como base el
metamodelo del proyecto DTP para especifidar esquemas de bases de datos
relacionales. La herramienta también da soporte a la generación de estos esquemas y a
la ingeniería inversa de los mismos.
14. TECNOLOGÍA EMPLEADA
TOPCASED:
Del proyecto TOPCASED se han reutilizado las pestañas de propiedades
de los elementos de UML2, las cuales han sido adaptadas para que
puedan ejecutarse con diagramas basados en GMF.
Tecnología EMF:
Se emplan proyectos como EMF Compare para comparar modelos EMF,
EMF Search para lanzar consultas sobre Modelos basados en EMF y
AMW (Atlas Model Weawer) que permite establecer relacionones entre
modelos.
The Common Navigator Framework (CNF):
CNF, proporciona un visor de propósito general y extensible que ha sido
empleado en el desarrollo del Navegador de Modelos de MOSKitt.
15. TECNOLOGÍA EMPLEADA
SOA Tools Platform (STP):
MOSKitt utiliza BPMN, un subproyecto dentro de STP el cual proporciona un
editor de BPMN basado en GMF y un conjunto de herramientas para modelar
procesos de negocio utilizando la notación BPMN.
Se han utilizado exclusivamente plug-ins con licencias que permiten su uso libre
(principalmente EPL) potenciando en MOSKitt los siguientes aspectos:
la reutilización de determinados proyectos Eclipse.
la adaptación de algunos de sus plug-ins para ajustarlos a las necesidades
del proyecto.
la creación de proyectos satélite para extender la funcionalidad de los ya
existentes.
Siguiendo con este esquema, se prevee la creación de futuros proyectos para
extender la funcionalidad de la propia herramienta MOSKitt.
En este marco, la CIT se ha convertido en Miembro Asociado de la Fundación
Eclipse para lo cual se le exige aportar un valor añadido a este Ecosistema.