93
M O SKitt: El M odeling M O SKitt: El M odeling Software Kitt Software Kitt H erramienta de M odelado U M L y H erramienta de M odelado U M L y Soporte a la Ingeniería del Software Soporte a la Ingeniería del Software Javier M uño z, Bego ña Bo net [email protected], [email protected]

MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Embed Size (px)

Citation preview

Page 1: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

M OSKitt: El M odeling M OSKitt: El M odeling Software KittSoftware Kitt

Herramienta de M odelado UM L yHerramienta de M odelado UM L ySoporte a la Ingeniería del SoftwareSoporte a la Ingeniería del Software

Jav ie r M u ñ o z, B e go ñ a B o n e [email protected], [email protected]

Page 2: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Contenido• Motivación del proyecto e historia

• Desarrollo de Software Dirigido por Modelos

• Herramientas de Análisis y Diseño

• Tecnologías para Construcción de Herramientas

• Soporte a la Ejecución de Métodos de Desarrollo

• Extensibilidad y Adaptaciones de MOSKitt

• La Comunidad del Proyecto MOSKitt

• Futuro del Proyecto

Page 3: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Contenido• Motivación del proyecto e historia

• Desarrollo de Software Dirigido por Modelos

• Herramientas de Análisis y Diseño

• Tecnologías para Construcción de Herramientas

• Soporte a la Ejecución de Métodos de Desarrollo

• Extensibilidad y Adaptaciones de MOSKitt

• La Comunidad del Proyecto MOSKitt

• Futuro del Proyecto

Page 4: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Antecedentes• gvPontis: Migración a Software Libre (2003-2008)

• gvMétrica: Metodología de Desarrollo (2004-2006)

➢ Plantillas -> Documentos

➢ ¿Herramientas?

✔ Proceso✔ Roles✔ Técnicas ✔ M étodos✔ Recursos E/S✔ Herramientas

Page 5: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Antecedentes• ¿Qué Técnicas/Lenguajes?

- UML y BD

• ¿Qué Métodos para aplicar estas técnicas?

• ¿Qué Herramientas?

- CASE tradicional como PowerDesigner (insuficiente)

• ¿Cómo adaptar los métodos a las herramientas?

- Uso de perfiles, Guías metodológicas (pesado de documentar y dificultades para transmitir todo el proceso)

Necesidad: Herramienta (libre) de soporte a gvMétrica

para el personal de la CIT

Page 6: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

- Económica: Alto coste de las licencias de PowerDesigner (Sybase).

- Imposibilidad de reutilizar el conocimiento obtenido con MaPA en los análisis posteriores con PowerDesigner.

- Carencias a la hora de dar soporte a gvMétrica para:

• Construir los modelos propuestos en la Metodología.

• Automatizar la generación de los productos de salida propuestos por gvMétrica (modelos y documentos)

• Potenciar el trabajo colaborativo: Homogeneizar el modo de trabajo, compartir modelos, documentos y recursos en general entre TODO el equipo de desarrollo.

• Soportar diferentes roles en el equipo de desarrollo.

• Intercambiar información de unas herramientas de la CIT a otras, para trabajar de un modo homogéo.

Motivación

Page 7: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Solución: Proyecto gvCASE• Proyecto gvPontis

Proyecto de CIT para migrar a Software Libre

• Estudio del ecosistema de herramientas CASE libres:

Abril 2006

No se encontrar una herramienta que soportara la mayoría de los requisitos

• Decisión: Nueva herramienta CASE libre La Universidad Politécnica de Valencia propone Eclipse como

plataforma base

Proyecto gvCASE: Abril 2007

Page 8: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Objetivo del Proyecto

• Método de desarrollo de software Es la aplicación de la Ingeniería al Desarrollo de Software

Utiliza Técnicas de Modelado (planos del software)

Establece unos Pasos para utilizar las técnicas

Crear una herramienta libre de soporte al método de desarrollo

de software gvMétrica

Crear una herramienta libre de soporte al método de desarrollo

de software gvMétrica

Page 9: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Beneficios Esperados

- Abaratamiento de costes

- Estandarización del trabajo

- Reutilización del conocimiento

- Reducción de documentación de análisis/diseño poco útil

- Automatización del Proceso de Desarrollo de Software

• Incremento de la Calidad del Software

• Mejora de la productividad del equipo.

Page 10: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

• Solución adoptada: PROYECTO gvCASE (2007)

- Desarrollo Propio en Software Libre -> MOSKitt

- Asesoramiento de la U.P.V

• ¿Qué Enfóque Técnico? → Desarrollo Dirigido por Modelos

- Modelos

• Estándares: UML2, BPMN ....

• Propios: DSL's

- Transformaciones

• Modelo a Modelo (M2M)

• Modelo a Texto (M2T)

• ¿Qué Enfoque Tecnológico?: Eclipse

- Eclipe Modeling Project (EMP) : EMF, GEF, GMF...

- UML2 etc...

Objetivo: Herramienta

Page 11: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

¿Qué NO es MOSKitt?• No es un dibujador (como Visio o Dia)

Aunque hace dibujos/diagramas

• No es un entorno de desarrollo Aunque está basado en Eclipse

• No es sólo un editor de UML2 Aunque tiene un editor UML2

• No es mágico, ni tecnología alienígena Aunque puede usarse para generar automáticamente aplicaciones

software

Page 12: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Estrategia de Desarrollo

Publicación de versiones (0.3.0 a 1.1.1) en:http://www.moskitt.org

• Desarrollo por versiones: 1 versión x 4 meses:

- 3 meses de desarrollo + 1 mes de pruebas

• Situación Actual (Febrero 2010):

- Última Versión Publicada: 1.1.1 (Febrero 2010)

- Próxima versión a Publicar 1.3.0 (Mayo 2010)

- Iniciados nuevos contratos:

• Generación de Código a gvHidra (php) y gvNix (Java)

• Desarrollo de un Sketcher para facilitar la definición de IU's.

1.0.0

2.0.0

4/2007 9/2007 5/2008 7/2009 5/201 0 3/201 1

1.3.0 2.0.00.5.00.1.0

Page 13: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Enfoque de DesarrolloInvocación de otrasherramientas

Plataforma LIBREpara la constucción

de herramientasC ASE con soporte al proceso de desarrollo

• Enfoque de desarrollo

• Arquitectura de plugins de Eclipse

Page 14: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Contenido• Motivación del proyecto e historia

• Desarrollo de Software Dirigido por Modelos

• Herramientas de Análisis y Diseño

• Tecnologías para Construcción de Herramientas

• Soporte a la Ejecución de Métodos de Desarrollo

• Extensibilidad y Adaptaciones de MOSKitt

• La Comunidad del Proyecto MOSKitt

• Futuro del Proyecto

Page 15: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Contenido• Motivación del proyecto e historia

• Desarrollo de Software Dirigido por Modelos

• Herramientas de Análisis y Diseño

• Tecnologías para Construcción de Herramientas

• Soporte a la Ejecución de Métodos de Desarrollo

• Extensibilidad y Adaptaciones de MOSKitt

• La Comunidad del Proyecto MOSKitt

• Futuro del Proyecto

Page 16: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

¿Qué es DSDM?• Desarrollo de Software Dirigido por Modelos

No es@s modelos

• Conceptos Similares Model Driven Engineering Model Driven Architecture Generative Programming

h t t p ://w w w .f l ic k r .c o m /p h o t o s/90349435@ N 00/3374427508/h t t p ://w w w .f l ic k r .c o m /p h o t o s/90349435@ N 00/337361 3 1 25/

Page 17: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

¿Por qué DSDM?• Hacer Software es Complejo

El problema que se debe solucionar ES complejo

El cliente habla conconceptos del problema

El desarrollador utilizaconceptos de la tecnología

Page 18: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

¿Por qué DSDM?• Mismo problema Misma Solución→

No inventarse cada vez una solución

Page 19: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

¿Por qué DSDM?• Ejemplo patrón

Aplicaciones Gestión Información

Problema: Propiedad de una Entidad

Solución:

➢ Añadir columna en BBDD

➢ Añadir widget en interfaz de usuario

➢ Añadir comprobaciones de tipo

➢ Añadir columna en selects, inserts y updates

Page 20: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

¿Por qué DSDM?

• La solución Describir problema utilizando conceptos del problema

Aplicar automáticamente lo patrones de solución

• Evitar El usuario explica el problema

El programador intenta entender el problema

Mentalmente, resolver el problema con la tecnología

Copiar, pegar y adaptar una solución que se aplicó anteriormente

Page 21: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

¿Cómo aplicar DSDM?1. Definir lenguaje para el dominio

Nuevo lenguaje de dominio específico (DSL) Extender lenguaje de propósito general (UML con perfiles)

2. Identificar patrones ¿Cómo implementar cada problema?

3. Implementar generadores A partir de descripciones del problema, aplican los

patrones y producen soluciones (código fuente)

Page 22: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

¡¡DSDM no es la panacea!!

Analizar costes (inversión vs beneficio):

¿Aplicación singular o repetible?

¿Personal formado?

¿Modelar y generar 100%?

Crear lenguaje +Identificar patrones +

Implementar generador

ProgramaciónCopy&PasteVS

Page 23: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

¿MOSKitt para DSDM?

MOSKitt + Eclipse Modeling Project

Infraestructura para desarrollar: Editores Gráficos Editores Formularios Generadores de Código

Page 24: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Contenido• Motivación del proyecto e historia

• Desarrollo de Software Dirigido por Modelos

• Herramientas de Análisis y Diseño

• Tecnologías para Construcción de Herramientas

• Soporte a la Ejecución de Métodos de Desarrollo

• Extensibilidad y Adaptaciones de MOSKitt

• La Comunidad del Proyecto MOSKitt

• Futuro del Proyecto

Page 25: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Contenido• Motivación del proyecto e historia

• Desarrollo de Software Dirigido por Modelos

• Herramientas de Análisis y Diseño

• Tecnologías para Construcción de Herramientas

• Soporte a la Ejecución de Métodos de Desarrollo

• Extensibilidad y Adaptaciones de MOSKitt

• La Comunidad del Proyecto MOSKitt

• Futuro del Proyecto

Page 26: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Editor UML2• Modelado UML2

D. Clases D. Secuencia D. Estados D. Actividad D: Casos Uso D. Perfiles

• Aplicación Perfiles

• Multidiagrama

Page 27: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Modelado de Base de Datos

• Modelado DB

Tablas

Vistas

Usarios

Roles

Grupos• Generación DDL

MySQL

PostgreSQL

Oracle• Ingeniería

Inversa

Page 28: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Modelado de Procesos (BPMN)

• Modelado BPMN

Procedimientos Tareas y flujos

de documentos Multidiagrama

• Modelo Documentos

Familias de documentos

Plantillas

Page 29: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Modelado de Interfaz de Usuario

• Modelado Interfaz Usuario

Vistas del Sistema

Unidades de Interacción

Navegación

Opciones Presentación

Patrones

Page 30: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Contenido• Motivación del proyecto e historia

• Desarrollo de Software Dirigido por Modelos

• Herramientas de Análisis y Diseño

• Tecnologías para Construcción de Herramientas

• Soporte a la Ejecución de Métodos de Desarrollo

• Extensibilidad y Adaptaciones de MOSKitt

• La Comunidad del Proyecto MOSKitt

• Futuro del Proyecto

Page 31: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Contenido• Motivación del proyecto e historia

• Desarrollo de Software Dirigido por Modelos

• Herramientas de Análisis y Diseño

• Tecnologías para Construcción de Herramientas

• Soporte a la Ejecución de Métodos de Desarrollo

• Extensibilidad y Adaptaciones de MOSKitt

• La Comunidad del Proyecto MOSKitt

• Futuro del Proyecto

Page 32: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Gestor de Transformaciones

• Registro Transformaciones

Visualización

Organización

Priorización

Ejecución Transformaciones

Solicitud parámetros

Resultados validación y ejecución

Page 33: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Exploradores de Modelos

• Exploración de modelos

Sincronización con los editores gráficos

Filtrados por diagramas

Agrupación por tipo

• Edición de modelos

Drag&Drop a los editores gráficos

Duplicación de elementos

Manipulación diagramas

Gestión de elementos (creación, eliminación, etc.)

Page 34: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Extensiones Funcionalidad Editores Gráficos

• Soporte completo al Copy&Paste

• Integración de editores

• Soporte al multi-diagrama

• Filtrado de elementos por tipo

• Canvas mutantes

• Mejoras de eficiencia (cacheo)

• Mejor gestión de colores y estilos

Page 35: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Editores de Formularios para Modelos

• Soporte edición modelos Ecore

Cargar/Salvar modelos

• Edición de Propiedaes

Tipos Básicos (string, boolean, enumerados, etc.)

Colecciones

Referencias

➢ univaluadas

➢ multivaluadas

• Gestión Maestro/Detalle

EMFPropertyStringComposite

EMFPropertyEReferenceComposite

EMFEObjectComposite

EMFContainedCollectionEditionComposite

Page 36: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Contenido• Motivación del proyecto e historia

• Desarrollo de Software Dirigido por Modelos

• Herramientas de Análisis y Diseño

• Tecnologías para Construcción de Herramientas

• Soporte a la Ejecución de Métodos de Desarrollo

• Extensibilidad y Adaptaciones de MOSKitt

• La Comunidad del Proyecto MOSKitt

• Futuro del Proyecto

Page 37: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Contenido• Motivación del proyecto e historia

• Desarrollo de Software Dirigido por Modelos

• Herramientas de Análisis y Diseño

• Tecnologías para Construcción de Herramientas

• Soporte a la Ejecución de Métodos de Desarrollo

• Extensibilidad y Adaptaciones de MOSKitt

• La Comunidad del Proyecto MOSKitt

• Futuro del Proyecto

Page 38: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

ModelosAnálisis/Diseño

UML2

ModeloInterfaz Usuario

ModeloBBDD

Relacional

CódigoPrototipo

DB PostgreSQL

ModeloProcesos(BPMN)

DB MySQL

DB Oracle

DDL PostgreSQL

DDLMySQL

DDLOracle

➔Editores Gráficos➔Transformaciones➔Ingeniería Inversa➔Importación de modelos

ModeloWBS (GP)

M aPA Invocación de otrasherramientas

Editor de Procesos

(Dashboard Editor)

Intérprete de Procesos (Dashboard Interpreter)

Métodos+

Ayuda

Soporte al método

Page 39: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Soporte al método

Definición y EjecuciónTareas de Desarrollo

Cheatsheets

Transformacionesde Modelos

UML BD

BPMN UML

Page 40: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Modelado de Métodos de Desarrollo de Software

• Modelado Métodos

Tareas

Recursos

Dependencias

Acciones

Visualización estado desarrollo

Page 41: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Elementos del lenguaje:

• Tareas

• Dependencias entre tareas: ¡Dependencias de Recursos!

• Recursos E/S, Referencias a Recursos -> Recursos Físicos (Ficheros)

• Acciones: - abrir Editor, lanzar Transformación, invocar aplicación externa.

- Acceso al resto de la documentación...

Definición de un Proceso

Page 42: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

(1)

•Enlazar Recursos

•Editar Recursos

(3) Abrir Cheatsheet (Guías) Abrir Ayuda

(2)(3)

(1)

(2) Abrir Editores (graf. Y form.)

Ejecución de un Proceso

Page 43: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

• Cada Proyecto tiene su propio Proceso en ejecución (su estado)

• Abrir, Editar recursos y referencias a recursos

• Enlazar/Desenlazar Recursos del Dashboard de Rec.Físicos

• Abrir las Guías de ayuda

• Invocar a los Editores (gráficos, formularios...)

• Lanzar Transformaciones etc...

Ejecución de un Proceso

Page 44: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Estados de los Recursos

N o t T o D o

Est ad o s:

- Pen d ie n t e

- Em p e zad o

- T e r m in ad o

- M o d i f ic ad o u n a ve z t e r m in ad o

- N o h ay q u e h ace r lo

Ejecución de un Proceso

Page 45: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Estados de las Tareas

Ejecución de un ProcesoEst ad o s:

- Pen d ie n t e

- Em p e zad a

- T e r m in ad a

- M o d if ic ad o algú n r e c u r so u n a ve z t e r m in ad a

- En Esp e r a d e q u e algu n a d ep en d e n c ia p r e v ia se r e su e lv a

- N o h ay q u e h ace r la

Page 46: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Estados de las Dependencias

Est ad o s:

- L im p ia: T o d o s lo s R e cu r so s d e las t ar e as d e p e n d ie n t e s e st án t e r m in ad o s

- Su c ia: H ay r e c u r so s d e las t ar e as d e p e n d ie n t e s q u e aú n n o se h an co m p le t ad o .

- D esin c r o n izad a: H ay r e c u r so s m o d i f ic ad o s en la t ar e a d ep e n d ie n t e .

- A la Esp e r a d e q u e se f in al ize n lo s r e c u r so s d e las t ar e as d e p e n d ie n t e s.

Ejecución de un Proceso

Page 47: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Control del Estado de los Proyectos

• Análisis está Terminado y sus recursos completos (“Terminado”).

• La Dependencia que tiene Diseño de Análisis está Resuelta (el recurso está “Limpio”).

• Vamos a ejecutar la tarea de Diseño (“Por hacer”)

Ejecución de un Proceso

Page 48: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Soporte a:

[*] Iteraciones

Subdiagramas

Iteraciones y Subdiagramas

Ejecución de un Proceso

Page 49: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Contenido• Motivación del proyecto e historia

• Desarrollo de Software Dirigido por Modelos

• Herramientas de Análisis y Diseño

• Tecnologías para Construcción de Herramientas

• Soporte a la Ejecución de Métodos de Desarrollo

• Extensibilidad y Adaptaciones de MOSKitt

• La Comunidad del Proyecto MOSKitt

• Futuro del Proyecto

Page 50: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Contenido• Motivación del proyecto e historia

• Desarrollo de Software Dirigido por Modelos

• Herramientas de Análisis y Diseño

• Tecnologías para Construcción de Herramientas

• Soporte a la Ejecución de Métodos de Desarrollo

• Extensibilidad y Adaptaciones de MOSKitt

• La Comunidad del Proyecto MOSKitt

• Futuro del Proyecto

Page 51: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

¿Por qué extender MOSKitt?

• Cada organización es diferente Cultura interna

Experiencia e historia

Objetivos y expectativas

• Todas las organizaciones cambian Nuevas responsabilidades y objetivos

Mejora continua

h t t p ://w w w .sx c .h u /p h o t o /98441 8

Page 52: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

¿C ómo adaptar MO SKitt a cada contexto específico?

h t t p ://w w w .f l ic k r .c o m /p h o t o s/83476873@ N 00/1 1 0993877/

Page 53: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

¿Cómo adaptar?• Añadiendo herramientas

Nuevos editores

Nuevas transformaciones

• Modificando herramientas Cambiar código + recompilar ramificar→

➢ Difícil de mantener y evolucionar :(

Mecanismos de extensiones dinámicas

➢ Implementar y declarar nueva funcionalidad

➢ El código existente debe estar preparado

➢ Las herramientas permanecen intactash t t p ://w w w .sx c .h u /p h o t o /1 1 52 1 27

Page 54: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Puntos de extensión

PluginAnfitrión

Plugin B

Plugin C

Plugin Z

.

.

.

Page 55: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Puntos de Extensión

Page 56: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

¿Qué adaptar?

Cheatsheets Ayuda contextual

El Método Contenidos del método Asistentes de creación

Los Editores Plantillas de modelos Paleta de elementos

Propiedades extendidas Decoradores gráficos

Las Transformaciones Sobrescribir transformaciones Sincronización

Page 57: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Contenidos del Método• Cambiar los pasos del método

Page 58: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Contenidos del Método• Cambiar los pasos del método

Page 59: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Asistentes de Creación• Acciones específicas al crear el proyecto

Page 60: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Asistentes de Creación

Page 61: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Cheatsheets

• ¿Qué es un cheatsheet?1. Define instrucciones paso a paso

para realizar una tarea

2. Los pasos pueden tener instrucciones y ejecutar acciones

3. Algunos pasos pueden omitirse

Page 62: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Cheatsheets• ¿Cómo utilizar cheatsheets?:

1. Crearlo con el editor de Eclipse

Page 63: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Cheatsheets2. Definirlo mediante un punto de extensión

Page 64: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Cheatsheet3.a )Añadir la acción 'OpenCheatsheetAction' a una tarea del dashboard:

3.b ) Seleccionar el cheatsheet en la pestaña de propiedades:

Page 65: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Ayuda Contextual• Los editores gráficos y de formularios de MOSKitt

muestran ayuda dependiendo del elemento seleccionado

• Plugins externos pueden contribuir ayuda

FEFEM ed i t o r w it h e lem en t se le c t e dC o n e x t u al h e lp sh o w in g h e lp co n t e n t s fo r t h e

se le c t e d e lem en t

Page 66: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Ayuda Contextual• Como contribuir ayuda contextual a

MOSKitt:1. Crear el contenido de la ayuda:

Page 67: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Ayuda Contextual2. Contribuir el archivo de ayuda mediante el

punto de extensión 'org.eclipse.help.contexts'.

Page 68: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Plantillas de Modelos• Contenido inicial de los modelos

Page 69: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Plantillas de Modelos• Contenido inicial de los modelos

Page 70: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Personalización de la paleta• Cambiar el nombre de grupos y botones en la paleta.

• Mover botones de un grupo a otro.

• Crear y eliminar grupo y botones de la paleta.

Pale t a o r igin al

Pale t a p e r so n al izad a

Page 71: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Personalización de la paleta

1. Definir la personalización en el punto de extensión 'es.cv.gvcase.mdt.common.editorPalette' extension point

Page 72: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Personalización de la paleta

• Elemento 'Group' añadir un nuevo grupo cambiar el nombre de un grupo eliminar un grupo

Page 73: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Personalización de la paleta

• Elemento 'Tool' cambiar nombre de un botón mover un botón entre grupos eliminar un botón

Page 74: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Propiedades extendidas• Añadir nuevas propiedades a entidades existentes

• Editar las nuevas propiedades en la pestaña de propiedades

• Mantener la compatibilidad con la versión sin extender

Page 75: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Propiedades extendidas

1. Definir la propiedad con el punto de extensión 'es.cv.gvcase.mdt.common.featureExtender'

Page 76: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Propiedades extendidas2. Definir

Tipo de la propiedad:➢ Integer

➢ Double

➢ Boolean

➢ String

➢ Reference

Multiplicidad mínima Multiplicidad máxima

Page 77: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Propiedades extendidas3. Definir

La entidad que necesita ser extendida (AdaptTo): Los valores válidos ('AvailableValue')

Page 78: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Propiedades extendidas4. Implementar y definir la sección en la pestaña

de propiedades:

Integer Properties

String Properties

Double Properties

Collection Properties

References Properties

Page 79: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Decoradores gráficos

• Proporcionar decoraciones a las figuras en los editores gráficos (GMF)

• Contribuir decoraciones desde plugins externos

• Usar iconos e imágenes para decorar figuras

A decorated ClassA normal Class

Page 80: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Decoradores gráficos

Page 81: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Sobrescribir transformaciones

• Definir prioridades de mayor prioridad

Page 82: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Sobrescribir transformaciones

• Definir prioridades de mayor prioridad

Page 83: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Sincronización• Acciones específicas al cambiar modelos trazados

Trazas entre“X.uml” y

“Y.sqlschema”

1.- al cambiarla entrada

2.- actualizarmodelos trazados

Page 84: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Sincronización• Acciones específicas al cambiar modelos trazados

Page 85: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Contenido• Motivación del proyecto e historia

• Desarrollo de Software Dirigido por Modelos

• Herramientas de Análisis y Diseño

• Tecnologías para Construcción de Herramientas

• Soporte a la Ejecución de Métodos de Desarrollo

• Extensibilidad y Adaptaciones de MOSKitt

• La Comunidad del Proyecto MOSKitt

• Futuro del Proyecto

Page 86: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Contenido• Motivación del proyecto e historia

• Desarrollo de Software Dirigido por Modelos

• Herramientas de Análisis y Diseño

• Tecnologías para Construcción de Herramientas

• Soporte a la Ejecución de Métodos de Desarrollo

• Extensibilidad y Adaptaciones de MOSKitt

• La Comunidad del Proyecto MOSKitt

• Futuro del Proyecto

Page 87: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Integrantes del Proyecto

EmpresaEmpresaUniversidadUniversidad Admon.Admon.PúblicaPública

• Desarrollo• Proyección• Conocimiento

• Liderazgo• Requisitos• Financiación

• Conocimiento• Difusión• Aplicación

Page 88: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

El Equipo del Proyecto• 2 Jefes de Proyecto (CIT y adjudicatario)

• 2 Directores de Proyecto (CIT y adjudicatario)

• 9 – 11 Desarrolladores:

- CIT, adjudicatario y empresas colaboradoras.

- Perfiles: Analista, Analista/Programador, Programador Junior/Senior, Diseñador, Arquitecto Software, Probadores.

• 15 Probadores:

- CIT (Analistas/Usuarios finales)

• 5 Asesores Técnicos y Científicos de la U.P.V.

Page 89: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Algunos datos:• Accesos Web (durante Marzo 2010)

2471 visitas (de 1864 visitantes)

91.94 GB software descargados

• Métricas de Ohlo (https://www.ohloh.net/p/moskitt)

1,565,358 líneas de código

443 personas/año

Page 90: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Contenido• Motivación del proyecto e historia

• Desarrollo de Software Dirigido por Modelos

• Herramientas de Análisis y Diseño

• Tecnologías para Construcción de Herramientas

• Soporte a la Ejecución de Métodos de Desarrollo

• Extensibilidad y Adaptaciones de MOSKitt

• La Comunidad del Proyecto MOSKitt

• Futuro del Proyecto

Page 91: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Contenido• Motivación del proyecto e historia

• Desarrollo de Software Dirigido por Modelos

• Herramientas de Análisis y Diseño

• Tecnologías para Construcción de Herramientas

• Soporte a la Ejecución de Métodos de Desarrollo

• Extensibilidad y Adaptaciones de MOSKitt

• La Comunidad del Proyecto MOSKitt

• Futuro del Proyecto

Page 92: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

Trabajos futuros• Consolidar el uso de la herramienta: Plan de Formación, testing....

• Potenciar la colaboración con otras organizaciones.

• Potenciar su facilidad de uso: especialmente para la definición de las Interfaces de Usuario

• Generación Automática de Código para plataformas específicas en la CIT: Java y PHP

• Mejora del Módulo de Soporte al Proceso (beca I+D+i).

• Incluir nuevas transformaciones, nuevos editores gráficos y formularios para cubrir al máximo las necesidades que desde gvMétrica se vayan planteando

• Incluir un Modulo de Especificación de Requisitos

• Incluir un Repositorio de Modelos para soportar: trabajo en grupo, control de acceso y manejo de versiones

• Soporte a la Gestión de los Proyectos y el Trabajo Colaborativo.

Page 93: MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software

• You are free: to share — to copy, distribute and transmit the work

to Remix — to adapt the work

• Under the following conditions: Attribution — You must attribute the work in the manner specified by the

author or licensor (but not in any way that suggests that they endorse you or your use of the work).

Noncommercial — You may not use this work for commercial purposes.

Share Alike — If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one

Creative CommonsAttribution-Noncommercial-Share Alike 3.0

Unported

h t t p ://c r e at iv e c o m m o n s.o r g/l ic e n se s/b y-n c-sa/3.0/