no más "programación copy&paste". generación automática de código con moskitt

Post on 22-May-2015

1.616 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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/

top related