SlideShare une entreprise Scribd logo
1  sur  35
Télécharger pour lire hors ligne
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
¿Quién soy?
•       Profesional             •       Académica
       Jefe de Proyectos e            Ing. Informática

        Investigador



                                       PhD. Ingeniería Software
       Co-lider del proyecto
        MOSKitt
Contenidos
•   Programación Copy&Paste

•   MOSKitt

•   DSDM

•   Demo
Contenidos
•   Programación Copy&Paste

•   MOSKitt

•   DSDM

•   Demo
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
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
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?
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
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
          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
¿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:
 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
Algunas
                Herramientas
                    Editor BBDD




Editor UML2

                                  Editor Interfaz
                                      Usuario




  Editor BPMN
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
Soporte al método
                                        Cheatsheets




Definición y Ejecución
Tareas de Desarrollo     Transformaciones
                            de 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 .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 /
¿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
¿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)




                           VS
   Crear lenguaje +                                  Programación
 Identificar patrones +                               Copy&Paste
Implementar generador




   
       ¿Aplicación singular o repetible?
   
       ¿Personal formado?
   
       ¿Modelar y generar 100%?
¿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
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 /
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
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/

Contenu connexe

Tendances

Ingeniería%20de%20 software[1], maryy
Ingeniería%20de%20 software[1], maryyIngeniería%20de%20 software[1], maryy
Ingeniería%20de%20 software[1], maryynelly
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de softwaremat3matik
 
Ingen de software
Ingen de softwareIngen de software
Ingen de softwareerikapoh
 
Metodologia de desarrollo
Metodologia de desarrolloMetodologia de desarrollo
Metodologia de desarrolloDiego
 
La programación extrema
La programación extremaLa programación extrema
La programación extremaingridleona
 

Tendances (6)

Ingeniería%20de%20 software[1], maryy
Ingeniería%20de%20 software[1], maryyIngeniería%20de%20 software[1], maryy
Ingeniería%20de%20 software[1], maryy
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Ingen de software
Ingen de softwareIngen de software
Ingen de software
 
Efc isw-luis fernando aguas - 29012022 1500
Efc isw-luis fernando aguas - 29012022 1500Efc isw-luis fernando aguas - 29012022 1500
Efc isw-luis fernando aguas - 29012022 1500
 
Metodologia de desarrollo
Metodologia de desarrolloMetodologia de desarrollo
Metodologia de desarrollo
 
La programación extrema
La programación extremaLa programación extrema
La programación extrema
 

En vedette

MOSKitt. Una plataforma libre para el desarrollo de métodos y herramientas DSDM
MOSKitt. Una plataforma libre para el desarrollo de métodos y herramientas DSDMMOSKitt. Una plataforma libre para el desarrollo de métodos y herramientas DSDM
MOSKitt. Una plataforma libre para el desarrollo de métodos y herramientas DSDMVicente Pelechano
 
Dynamic System Development
Dynamic System DevelopmentDynamic System Development
Dynamic System DevelopmentZeeshan Tariq
 
Dynamic Systems Development, DSDM
Dynamic Systems Development, DSDMDynamic Systems Development, DSDM
Dynamic Systems Development, DSDMJohn Goodpasture
 
Presentation for Software Development Methologies
Presentation for Software Development MethologiesPresentation for Software Development Methologies
Presentation for Software Development MethologiesPriyankaPimparkar
 
DSDM (Dynamic System Development Method)
DSDM (Dynamic System Development Method)DSDM (Dynamic System Development Method)
DSDM (Dynamic System Development Method)urumisama
 

En vedette (8)

MOSKitt. Una plataforma libre para el desarrollo de métodos y herramientas DSDM
MOSKitt. Una plataforma libre para el desarrollo de métodos y herramientas DSDMMOSKitt. Una plataforma libre para el desarrollo de métodos y herramientas DSDM
MOSKitt. Una plataforma libre para el desarrollo de métodos y herramientas DSDM
 
Dynamic System Development
Dynamic System DevelopmentDynamic System Development
Dynamic System Development
 
Dynamic Systems Development, DSDM
Dynamic Systems Development, DSDMDynamic Systems Development, DSDM
Dynamic Systems Development, DSDM
 
Presentation for Software Development Methologies
Presentation for Software Development MethologiesPresentation for Software Development Methologies
Presentation for Software Development Methologies
 
Dynamic System Development Method
Dynamic System Development MethodDynamic System Development Method
Dynamic System Development Method
 
DSDM (Dynamic System Development Method)
DSDM (Dynamic System Development Method)DSDM (Dynamic System Development Method)
DSDM (Dynamic System Development Method)
 
DSDM® AgilePF® - Agile Project Framework - Foundation
DSDM® AgilePF® - Agile Project Framework - FoundationDSDM® AgilePF® - Agile Project Framework - Foundation
DSDM® AgilePF® - Agile Project Framework - Foundation
 
DSDM
DSDMDSDM
DSDM
 

Similaire à No más 'programación copy & paste' con MOSKitt y DSDM

Soporte al Proceso de Desarrollo con MOSKitt
Soporte al Proceso de Desarrollo con MOSKittSoporte al Proceso de Desarrollo con MOSKitt
Soporte al Proceso de Desarrollo con MOSKittBegoña Bonet
 
20090723 Presentacion Pfc
20090723 Presentacion Pfc20090723 Presentacion Pfc
20090723 Presentacion Pfcazubi
 
20090723 Presentacion Pfc
20090723 Presentacion Pfc20090723 Presentacion Pfc
20090723 Presentacion Pfcazubi
 
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmosIng. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmosJosé Antonio Sandoval Acosta
 
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)Jordi Cabot
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetosjose_rob
 
12 Horas Visual Studio - Introducción a Modeling Tools
12 Horas Visual Studio - Introducción a Modeling Tools12 Horas Visual Studio - Introducción a Modeling Tools
12 Horas Visual Studio - Introducción a Modeling ToolsBruno Capuano
 
IW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelosIW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelosFranklin Parrales Bravo
 
Procesos de Software EGEL-UNITEC
Procesos de Software EGEL-UNITECProcesos de Software EGEL-UNITEC
Procesos de Software EGEL-UNITECmrojas_unitec
 
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...Jordi Cabot
 
Fundamentos de Programacion - Unidad 1 conceptos basicos
Fundamentos de Programacion - Unidad 1 conceptos basicosFundamentos de Programacion - Unidad 1 conceptos basicos
Fundamentos de Programacion - Unidad 1 conceptos basicosJosé Antonio Sandoval Acosta
 
Ingeniería de software16
Ingeniería de software16Ingeniería de software16
Ingeniería de software16Ramon
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de softwaresamantha
 

Similaire à No más 'programación copy & paste' con MOSKitt y DSDM (20)

Soporte al Proceso de Desarrollo con MOSKitt
Soporte al Proceso de Desarrollo con MOSKittSoporte al Proceso de Desarrollo con MOSKitt
Soporte al Proceso de Desarrollo con MOSKitt
 
Mos Kitt Quo Vadis
Mos Kitt Quo VadisMos Kitt Quo Vadis
Mos Kitt Quo Vadis
 
20090723 Presentacion Pfc
20090723 Presentacion Pfc20090723 Presentacion Pfc
20090723 Presentacion Pfc
 
20090723 Presentacion Pfc
20090723 Presentacion Pfc20090723 Presentacion Pfc
20090723 Presentacion Pfc
 
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmosIng. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
 
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOpsMeetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
 
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)
 
Iswmovil
IswmovilIswmovil
Iswmovil
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetos
 
12 Horas Visual Studio - Introducción a Modeling Tools
12 Horas Visual Studio - Introducción a Modeling Tools12 Horas Visual Studio - Introducción a Modeling Tools
12 Horas Visual Studio - Introducción a Modeling Tools
 
IW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelosIW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelos
 
Procesos de Software EGEL-UNITEC
Procesos de Software EGEL-UNITECProcesos de Software EGEL-UNITEC
Procesos de Software EGEL-UNITEC
 
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
 
Desarrollo y diseño de software
Desarrollo y diseño de softwareDesarrollo y diseño de software
Desarrollo y diseño de software
 
Mda
MdaMda
Mda
 
Unidad 3 elaboracion de un proyecto (3)
Unidad  3   elaboracion de un proyecto (3)Unidad  3   elaboracion de un proyecto (3)
Unidad 3 elaboracion de un proyecto (3)
 
Fundamentos de Programacion - Unidad 1 conceptos basicos
Fundamentos de Programacion - Unidad 1 conceptos basicosFundamentos de Programacion - Unidad 1 conceptos basicos
Fundamentos de Programacion - Unidad 1 conceptos basicos
 
Ingeniería de software16
Ingeniería de software16Ingeniería de software16
Ingeniería de software16
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Clase 11
Clase 11Clase 11
Clase 11
 

Dernier

Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramDIDIERFERNANDOGUERRE
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 

Dernier (20)

Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ram
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 

No más 'programación copy & paste' con MOSKitt y DSDM

  • 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. ¿Quién soy? • Profesional • Académica  Jefe de Proyectos e  Ing. Informática Investigador  PhD. Ingeniería Software  Co-lider del proyecto MOSKitt
  • 3. Contenidos • Programación Copy&Paste • MOSKitt • DSDM • Demo
  • 4. Contenidos • Programación Copy&Paste • MOSKitt • DSDM • Demo
  • 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. 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. 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. 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. Contenidos • Programación Copy&Paste • MOSKitt • DSDM • Demo
  • 10. Contenidos • Programación Copy&Paste • MOSKitt • DSDM • Demo
  • 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. 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. 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. ¿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. ¿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. Algunas Herramientas Editor BBDD Editor UML2 Editor Interfaz Usuario Editor BPMN
  • 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. Soporte al método Cheatsheets Definición y Ejecución Tareas de Desarrollo Transformaciones de Modelos UML BD BPMN UML
  • 20. Contenidos • Programación Copy&Paste • MOSKitt • DSDM • Demo
  • 21. Contenidos • Programación Copy&Paste • MOSKitt • DSDM • Demo
  • 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. ¿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. ¿Por qué DSDM? • Mismo problema → Misma Solución  No inventarse cada vez una solución
  • 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. ¿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. ¿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. ¡¡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. ¿MOSKitt para DSDM?  MOSKitt + Eclipse Modeling Project  Infraestructura para desarrollar:  Editores Gráficos  Editores Formularios  Generadores de Código
  • 30. Contenidos • Programación Copy&Paste • MOSKitt • DSDM • Demo
  • 31. Contenidos • Programación Copy&Paste • MOSKitt • DSDM • Demo
  • 32. Demo
  • 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. 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. 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/