Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,957 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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

  1. 1. N o más “programación copy & paste” Generación automática de código con M O SKitt Jav ie r M u ñ o z jmunoz@ prodevelop.es
  2. 2. ¿Quién soy? • Profesional • Académica  Jefe de Proyectos e  Ing. Informática Investigador  PhD. Ingeniería Software  Co-lider del proyecto MOSKitt
  3. 3. Contenidos • Programación Copy&Paste • MOSKitt • DSDM • Demo
  4. 4. Contenidos • Programación Copy&Paste • MOSKitt • DSDM • Demo
  5. 5. Programación Copy&Paste 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. http://en.wikipedia.org/wiki/Copy_and_paste_programming
  6. 6. Programación Copy&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
  7. 7. Programación Copy&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?
  8. 8. Programación Copy&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 2 7
  9. 9. Contenidos • Programación Copy&Paste • MOSKitt • DSDM • Demo
  10. 10. Contenidos • Programación Copy&Paste • MOSKitt • DSDM • Demo
  11. 11. ¿Qué es ?
  12. 12. 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.
  13. 13. 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
  14. 14. Objetivo del Proyecto Crear una herramienta libre de Crear una herramienta libre de soporte al método de desarrollo soporte al método de desarrollo de software gvMétrica de software gvMétrica • 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
  15. 15. ¿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
  16. 16. ¿Qué SÍ es MOSKitt? Soporte al método: gvMétrica Asistentes y Guías Método X Método Y Transformaciones entre modelos Trazas Herramientas Constructor de métodos Editor Bases de Datos Editor Requisitos Editor UML2 Editor BPMN Infraestructura tecnológica Exploradores modelos Gestor Transformaciones Sincronización modelos
  17. 17. Algunas Herramientas Editor BBDD Editor UML2 Editor Interfaz Usuario Editor BPMN
  18. 18. Soporte al método M aPA Process Analysis/Design Relation DB Model Models DB Model (BPMN) UML2 Postgresql ➔ G raphic Editors ➔ T ransformations DB ➔ Reverse Engineering Prototipe Oracle ➔ M odel M igrations Code DDL Postgresql DB DDL MySQL Oracle WBS User Interface Model (GP) Model DDL MySQL
  19. 19. Soporte al método Cheatsheets Definición y Ejecución Tareas de Desarrollo Transformaciones de Modelos UML BD BPMN UML
  20. 20. Contenidos • Programación Copy&Paste • MOSKitt • DSDM • Demo
  21. 21. Contenidos • Programación Copy&Paste • MOSKitt • DSDM • Demo
  22. 22. ¿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 .flic k r .c o m /p h o t o s/9034 9 43 5@ N 00/33 7 44 2 75 08 / h t t p ://w w w .flic k r .c o m /p h o t o s/9 034 9 43 5@ N 00/33 7 36 1 3 1 2 5 /
  23. 23. ¿Por qué DSDM? • Hacer Software es Complejo  El problema que se debe solucionar ES complejo El cliente habla con El desarrollador utiliza conceptos del problema conceptos de la tecnología
  24. 24. ¿Por qué DSDM? • Mismo problema → Misma Solución  No inventarse cada vez una solución
  25. 25. ¿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
  26. 26. ¿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
  27. 27. ¿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)
  28. 28. ¡¡DSDM no es la panacea!!  Analizar costes : (inversión vs beneficio) VS Crear lenguaje + Programación Identificar patrones + Copy&Paste Implementar generador  ¿Aplicación singular o repetible?  ¿Personal formado?  ¿Modelar y generar 100%?
  29. 29. ¿MOSKitt para DSDM?  MOSKitt + Eclipse Modeling Project  Infraestructura para desarrollar:  Editores Gráficos  Editores Formularios  Generadores de Código
  30. 30. Contenidos • Programación Copy&Paste • MOSKitt • DSDM • Demo
  31. 31. Contenidos • Programación Copy&Paste • MOSKitt • DSDM • Demo
  32. 32. Demo
  33. 33. Conclusiones • Programación Copy&Paste es peligrosa • DSDM ayuda a evitarla • MOSKitt te facilita aplicar DSDM • ¿Quién se anima? h t t p ://w w w .flick r .c o m /p h o t o s/8 5 1 6 91 1 8 @ N 00/9 3 2 96 3 8 1 /
  34. 34. N o más “programación copy & paste” Generación automática de código con M O SKitt Jav ie r M u ñ o z jmunoz@ prodevelop.es
  35. 35. Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported • 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 h t t p ://c r e at iv e c o m m o n s.o r g/lic e n se s/b y -n c -sa/3.0/

×