No más "programación copy&paste". Generación automática de código con MOSKitt

35
N o más “programación N o más “programación copy & paste” copy & paste” Generación automática de código con M O SKitt Generación automática de código con M O SKitt Javier Muñoz jmunoz@ prodevelop.es

Transcript of No más "programación copy&paste". Generación automática de código con MOSKitt

Page 1: No más "programación copy&paste". Generación automática de código con MOSKitt

No más “programación No más “programación copy & paste”copy & paste”

Generación automática de código con M OSKittGeneración automática de código con M OSKitt

Jav ie r M u ñ o z

jmunoz@ prodevelop.es

Page 2: No más "programación copy&paste". Generación automática de código con MOSKitt

¿Quién soy?• Profesional

Jefe de Proyectos e

Investigador

Co-lider del proyecto

MOSKitt

• Académica Ing. Informática

PhD. Ingeniería Software

Page 3: No más "programación copy&paste". Generación automática de código con MOSKitt

Contenidos

• Programación Copy&Paste

• MOSKitt

• DSDM

• Demo

Page 4: No más "programación copy&paste". Generación automática de código con MOSKitt

Contenidos

• Programación Copy&Paste

• MOSKitt

• DSDM

• Demo

Page 5: No más "programación copy&paste". Generación automática de código con MOSKitt

ProgramaciónCopy&Paste

http://en.wikipedia.org/wiki/Copy_and_paste_programming

Copy and paste programming is a pejorative term

to describe highly repetitive computer programming code

apparently produced by copy and paste operations.

It is frequently symptomatic of a lack of programming competence,

or an insufficiently expressive development environment,

as subroutines or libraries would normally be used instead.

In certain contexts it has legitimate value, if used with care.

Page 6: No más "programación copy&paste". Generación automática de código con MOSKitt

ProgramaciónCopy&Paste

• Código de programación repetitivo Originado probablemente por operaciones copy&paste

• Síntoma de: Carencia en el diseño de la aplicación

Carencia en el lenguaje/la tecnología de programación

• Puede ser valioso

Page 7: No más "programación copy&paste". Generación automática de código con MOSKitt

ProgramaciónCopy&Paste

• Potenciales problemas:

Propenso a errores

➢ “se me ha olvidado cambiar x después de pegar”

Difícil mantenimiento

➢ “hay que cambiar 23 archivos donde había pegado el código”

Comportamiento inesperado

➢ “pero este código... ¿en realidad qué hace y por qué funciona?

Page 8: No más "programación copy&paste". Generación automática de código con MOSKitt

ProgramaciónCopy&Paste

...puede ayudar a evitar la programación copy&paste

h t t p ://w w w .sx c .h u /p h o t o /1 1 52 1 27

Page 9: No más "programación copy&paste". Generación automática de código con MOSKitt

Contenidos

• Programación Copy&Paste

• MOSKitt

• DSDM

• Demo

Page 10: No más "programación copy&paste". Generación automática de código con MOSKitt

Contenidos

• Programación Copy&Paste

• MOSKitt

• DSDM

• Demo

Page 11: No más "programación copy&paste". Generación automática de código con MOSKitt

¿Qué es?

Page 12: No más "programación copy&paste". Generación automática de código con MOSKitt

Historia• La CIT adapta Métrica III > gvMétrica

Métrica III

➢ Desarrollada por el Ministerio de Administraciones Públicas

➢ De obligada aplicación en todas las administraciones españolas

gvMétrica

➢ Se seleccionaron y adaptaron algunos Procesos, Actividades y Tareas para satisfacer las necesidades de la Consellería.

➢ Se definieron métodos, prácticas y técnicas específicas

• La mayor parte de ellas basadas en UML.

➢ Centrada en el Desarrollo de Sistemas de Información.

Page 13: No más "programación copy&paste". Generación automática de código con MOSKitt

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 14: No más "programación copy&paste". Generación automática de código con MOSKitt

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 15: No más "programación copy&paste". Generación automática de código con MOSKitt

¿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 16: No más "programación copy&paste". Generación automática de código con MOSKitt

¿Qué SÍ es MOSKitt?Soporte al método:Soporte al método:gvMétricagvMétrica

Infraestructura tecnológicaInfraestructura tecnológica

Gestor TransformacionesSincronización modelos

Exploradores modelos

Transformaciones entre modelos Trazas

Asistentes y Guías

HerramientasHerramientas

Editor UML2Editor Bases de Datos Editor Requisitos

Editor BPMN

Constructor de métodos

Método X Método Y

Page 17: No más "programación copy&paste". Generación automática de código con MOSKitt

Algunas Herramientas

Editor UML2

Editor BPMN

Editor BBDD

Editor InterfazUsuario

Page 18: No más "programación copy&paste". Generación automática de código con MOSKitt

Soporte al método

Analysis/DesignModelsUML2

User InterfaceModel

Relation DBModel

PrototipeCode

DB Postgresql

ProcessModel

(BPMN)

DB MySQL

DB Oracle

DDL Postgresql

DDLMySQL

DDLOracle

➔Graphic Editors➔Transformations➔Reverse Engineering➔Model M igrations

WBSModel (GP)

M aPA

Page 19: No más "programación copy&paste". Generación automática de código con MOSKitt

Soporte al método

Definición y EjecuciónTareas de Desarrollo

Cheatsheets

Transformacionesde Modelos

UML BD

BPMN UML

Page 20: No más "programación copy&paste". Generación automática de código con MOSKitt

Contenidos

• Programación Copy&Paste

• MOSKitt

• DSDM

• Demo

Page 21: No más "programación copy&paste". Generación automática de código con MOSKitt

Contenidos

• Programación Copy&Paste

• MOSKitt

• DSDM

• Demo

Page 22: No más "programación copy&paste". Generación automática de código con MOSKitt

¿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 23: No más "programación copy&paste". Generación automática de código con MOSKitt

¿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 24: No más "programación copy&paste". Generación automática de código con MOSKitt

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

No inventarse cada vez una solución

Page 25: No más "programación copy&paste". Generación automática de código con MOSKitt

¿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 26: No más "programación copy&paste". Generación automática de código con MOSKitt

¿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 27: No más "programación copy&paste". Generación automática de código con MOSKitt

¿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 28: No más "programación copy&paste". Generación automática de código con MOSKitt

¡¡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 29: No más "programación copy&paste". Generación automática de código con MOSKitt

¿MOSKitt para DSDM?

MOSKitt + Eclipse Modeling Project

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

Page 30: No más "programación copy&paste". Generación automática de código con MOSKitt

Contenidos

• Programación Copy&Paste

• MOSKitt

• DSDM

• Demo

Page 31: No más "programación copy&paste". Generación automática de código con MOSKitt

Contenidos

• Programación Copy&Paste

• MOSKitt

• DSDM

• Demo

Page 32: No más "programación copy&paste". Generación automática de código con MOSKitt

Demo

Page 33: No más "programación copy&paste". Generación automática de código con MOSKitt

h t t p ://w w w .f l ic k r .c o m /p h o t o s/851 691 1 8@ N 00/93296381 /

• Programación Copy&Paste

es peligrosa

• DSDM ayuda a evitarla

• MOSKitt te facilita aplicar

DSDM

• ¿Quién se anima?

Conclusiones

Page 34: No más "programación copy&paste". Generación automática de código con MOSKitt

No más “programación No más “programación copy & paste”copy & paste”

Generación automática de código con M OSKittGeneración automática de código con M OSKitt

Jav ie r M u ñ o z

jmunoz@ prodevelop.es

Page 35: No más "programación copy&paste". Generación automática de código con MOSKitt

• 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/