No más "programación copy&paste". Generación automática de código con MOSKitt
-
Upload
javier-munoz -
Category
Technology
-
view
1.616 -
download
2
Transcript of 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
¿Quién soy?• Profesional
Jefe de Proyectos e
Investigador
Co-lider del proyecto
MOSKitt
• Académica Ing. Informática
PhD. Ingeniería Software
Contenidos
• Programación Copy&Paste
• MOSKitt
• DSDM
• Demo
Contenidos
• Programación Copy&Paste
• MOSKitt
• DSDM
• Demo
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.
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
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?
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
Contenidos
• Programación Copy&Paste
• MOSKitt
• DSDM
• Demo
Contenidos
• Programación Copy&Paste
• MOSKitt
• DSDM
• Demo
¿Qué es?
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.
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
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
¿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
¿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
Algunas Herramientas
Editor UML2
Editor BPMN
Editor BBDD
Editor InterfazUsuario
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
Soporte al método
Definición y EjecuciónTareas de Desarrollo
Cheatsheets
Transformacionesde Modelos
UML BD
BPMN UML
Contenidos
• Programación Copy&Paste
• MOSKitt
• DSDM
• Demo
Contenidos
• Programación Copy&Paste
• MOSKitt
• DSDM
• Demo
¿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/
¿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
¿Por qué DSDM?• Mismo problema Misma Solución→
No inventarse cada vez una solución
¿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
¿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
¿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)
¡¡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
¿MOSKitt para DSDM?
MOSKitt + Eclipse Modeling Project
Infraestructura para desarrollar: Editores Gráficos Editores Formularios Generadores de Código
Contenidos
• Programación Copy&Paste
• MOSKitt
• DSDM
• Demo
Contenidos
• Programación Copy&Paste
• MOSKitt
• DSDM
• Demo
Demo
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
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
• 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/