SlideShare a Scribd company logo
1 of 20
Download to read offline
Ecosistemas de
desarrollo software
    Líneas de automatización




    Asignatura: Desarrollo de Software Basado en Modelos y Aspectos
    Máster: Ingeniería y Tecnologías del Software
    Organiza: Departamento de Lenguajes y Sistemas Informáticos
    Lugar: Escuela Técnica Superior de Ingeniería Informática
    Fecha: 14/02/2012
Manuel Recena Soto
comencé a programar GW-Basic         este es mi proyecto personal y     y dedico gran parte de mi tiempo a
     con esta maravilla                       profesional


                                                                       gestionar los números de la empresa
                                                                             prototipar e implementar UI
                                                                               relación con los clientes
                                                                                   limpiar la oficina
                                                                              mantener infraestructura
                                                                          evolucionar nuestro laboratorio
                                                                                      desarrollar
                                                                                definición de producto
                                                                      participar en charlas, grupos de trabajo
                                                                               consultoría tecnológica
                                                                          auditoria de proyectos software




 http://www.linkedin.com/in/recena

 @recena
 recena@klicap.es
 recena@gmail.com
DE QUÉ HABLAREMOS

๏ Build
๏ Automatic Documentation Generation
๏ Testing
๏ Continuous Inspection
๏ Continuous Deployment
ANTES DE COMENZAR...
Un ecosistema de desarrollo software es un espacio
    de trabajo en el que conviven una serie de
 herramientas que acompañadas de unas buenas
   prácticas permiten a un equipo de desarrollo
      modelar una metodología de trabajo




                    modelo conceptual
ANTES DE COMENZAR...
    La integración continua es una práctica en el
  desarrollo de software que consiste en poner en
 común todos los cambios que afecten al resultado
final de nuestro proyecto de una forma frecuente con
    el objetivo de ver la evolución de sus efectos


                  cuales?                                                      cuales?

                                       causa                          efecto

                                                   principio de causalidad



definición propia y con toda humildad y respeto hacia Martin Fowler
Build

๏ Compilación
๏ Empaquetado
๏ Distribución (generación distribuibles 1)




1   http://www.manuelrecena.com/blog/archives/125
Build

๏ Detectar qué cambios en el repositorio de
        código hacen que algo se rompa
๏ Distribuir rápidamente artefactos que se
        reutilizan
๏ Disponer de múltiples configuraciones de
        un mismo artefacto



1   http://www.manuelrecena.com/blog/archives/125
Build

๏ Herramientas
 ๏ Maven, Rake, Ant, Ivy, Buildr, Gradle,
     Phing, SCons, ...


๏ Requisitos para su ejecución
Automatic Doc Generation

๏ La documentación como un artefacto más
  que debemos mantener


๏ Enfoques:
 ๏ A partir del código fuente
 ๏ A partir de formatos ágiles
Automatic Doc Generation

๏ Una entrada, múltiples salidas
๏ Imagen corporativa
๏ Edición colaborativa
Automatic Doc Generation

๏ Herramientas
 ๏ Maven sites, doxygen, javadoc, JSDoc,
    phpDocumentator, docbook, Sphinx,
    Markdown, Textile, RDoc, Org Mode,
    Creole, ReStructured Text (ReST),
    ASCIIDoc, POD, Roff, ...
Testing

๏ Unitarias / Funcionales
๏ Integración / Sistemas
๏ Rendimiento
Testing

๏ Herramientas
 ๏ JUnit, Selenium, The Grinder, DbUnit,
    BrowserStack, TestNG, ...


๏ Requisitos para su ejecución
Continuous Inspection

๏ Analizar desde un punto de vista estático
๏ Verificar y comprobar pautas y reglas de
  codificación
๏ Detectar posibles fallos de programacion
Continuous Inspection

๏ Herramientas
 ๏ Sonar

๏ Requisitos para su ejecución
Continuous Deployment

๏ Verificar que el despliegue no se rompe
๏ Despliegues en múltiples entornos
๏ Habilitar la instalación en entornos de
  producción
Continuous Deployment

๏ Despliegue en infraestructura propia o
  externa (Jelastic, Google App Engine,
  Heroku, ...)
๏ Virtualización como pieza clave para
  nuestros entornos de despliegue en local
BENEFICIOS

๏ Transparencia
๏ Agilidad
๏ Productividad
๏ Control / Trazabilidad
EL CAMINO CONTINUA



Vagrant
GRACIAS


Imagen de fondo Rubber Grip, http://subtlepatterns.com/?p=573

More Related Content

What's hot

C:\documents and settings\uleam\mis documentos\trabajo ricardo rivadeneira, ...
C:\documents and settings\uleam\mis documentos\trabajo  ricardo rivadeneira, ...C:\documents and settings\uleam\mis documentos\trabajo  ricardo rivadeneira, ...
C:\documents and settings\uleam\mis documentos\trabajo ricardo rivadeneira, ...jefry
 
Introducción a la Ingeniria del Software
Introducción a la Ingeniria del SoftwareIntroducción a la Ingeniria del Software
Introducción a la Ingeniria del SoftwareEdit Lopez Veloz
 
Ingeniería de software Reutilización de software
Ingeniería de software Reutilización de softwareIngeniería de software Reutilización de software
Ingeniería de software Reutilización de softwareザック フェア
 
Unidad I - Desarrollo rápido de software
Unidad I - Desarrollo rápido de softwareUnidad I - Desarrollo rápido de software
Unidad I - Desarrollo rápido de softwareAlejandro Flores
 
Reutilización de software
Reutilización de softwareReutilización de software
Reutilización de softwareKevin F. Mena
 
Tecnicas de ingenieria de software
Tecnicas de ingenieria de softwareTecnicas de ingenieria de software
Tecnicas de ingenieria de software'Jorge Martinez
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de softwarenancyespe21
 
Desarrollo de software basado en componentes
Desarrollo de software basado en componentesDesarrollo de software basado en componentes
Desarrollo de software basado en componentesUlises Cruz
 
Diapositivas De GuíA
Diapositivas De GuíADiapositivas De GuíA
Diapositivas De GuíAlindamariela
 

What's hot (18)

C:\documents and settings\uleam\mis documentos\trabajo ricardo rivadeneira, ...
C:\documents and settings\uleam\mis documentos\trabajo  ricardo rivadeneira, ...C:\documents and settings\uleam\mis documentos\trabajo  ricardo rivadeneira, ...
C:\documents and settings\uleam\mis documentos\trabajo ricardo rivadeneira, ...
 
BoLeTiN N° 2
BoLeTiN N° 2BoLeTiN N° 2
BoLeTiN N° 2
 
Ingenieria de Sorftware
Ingenieria de SorftwareIngenieria de Sorftware
Ingenieria de Sorftware
 
Morales aguirreguillermo
Morales aguirreguillermoMorales aguirreguillermo
Morales aguirreguillermo
 
Introducción a la Ingeniria del Software
Introducción a la Ingeniria del SoftwareIntroducción a la Ingeniria del Software
Introducción a la Ingeniria del Software
 
Prueba de dominio
Prueba de dominioPrueba de dominio
Prueba de dominio
 
Ingeniería de software Reutilización de software
Ingeniería de software Reutilización de softwareIngeniería de software Reutilización de software
Ingeniería de software Reutilización de software
 
Conociendo Nuestro Fua interno
Conociendo Nuestro Fua internoConociendo Nuestro Fua interno
Conociendo Nuestro Fua interno
 
Unidad I - Desarrollo rápido de software
Unidad I - Desarrollo rápido de softwareUnidad I - Desarrollo rápido de software
Unidad I - Desarrollo rápido de software
 
Reutilización de software
Reutilización de softwareReutilización de software
Reutilización de software
 
ingenieria de software
ingenieria de softwareingenieria de software
ingenieria de software
 
Tecnicas de ingenieria de software
Tecnicas de ingenieria de softwareTecnicas de ingenieria de software
Tecnicas de ingenieria de software
 
Scientific Services Global Labs Mexico
Scientific Services Global Labs MexicoScientific Services Global Labs Mexico
Scientific Services Global Labs Mexico
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Ciclo de Vida del Software
Ciclo de Vida del SoftwareCiclo de Vida del Software
Ciclo de Vida del Software
 
Desarrollo de software basado en componentes
Desarrollo de software basado en componentesDesarrollo de software basado en componentes
Desarrollo de software basado en componentes
 
Diapositivas De GuíA
Diapositivas De GuíADiapositivas De GuíA
Diapositivas De GuíA
 
Software
SoftwareSoftware
Software
 

Viewers also liked

DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...Sonatype
 
El Proceso de Desarrollo de Software Empresarial
El Proceso de Desarrollo de Software EmpresarialEl Proceso de Desarrollo de Software Empresarial
El Proceso de Desarrollo de Software EmpresarialSilverio Condo
 
Tecnologías para hacer Arquitectura de Información
Tecnologías para hacer Arquitectura de InformaciónTecnologías para hacer Arquitectura de Información
Tecnologías para hacer Arquitectura de InformaciónRodrigo Ronda
 
Introduction to Continuous Integration with Jenkins
Introduction to Continuous Integration with JenkinsIntroduction to Continuous Integration with Jenkins
Introduction to Continuous Integration with JenkinsEric Hogue
 
Analytics for smarter software development
Analytics for smarter software development Analytics for smarter software development
Analytics for smarter software development Thomas Zimmermann
 
Analytics for software development
Analytics for software developmentAnalytics for software development
Analytics for software developmentThomas Zimmermann
 
Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)Dennys Hsieh
 

Viewers also liked (10)

DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
 
El Proceso de Desarrollo de Software Empresarial
El Proceso de Desarrollo de Software EmpresarialEl Proceso de Desarrollo de Software Empresarial
El Proceso de Desarrollo de Software Empresarial
 
Gradle vs Maven
Gradle vs MavenGradle vs Maven
Gradle vs Maven
 
Tecnologías para hacer Arquitectura de Información
Tecnologías para hacer Arquitectura de InformaciónTecnologías para hacer Arquitectura de Información
Tecnologías para hacer Arquitectura de Información
 
Introduction to Continuous Integration with Jenkins
Introduction to Continuous Integration with JenkinsIntroduction to Continuous Integration with Jenkins
Introduction to Continuous Integration with Jenkins
 
Analytics for smarter software development
Analytics for smarter software development Analytics for smarter software development
Analytics for smarter software development
 
Sonar Overview
Sonar OverviewSonar Overview
Sonar Overview
 
Analytics for software development
Analytics for software developmentAnalytics for software development
Analytics for software development
 
Jenkins CI
Jenkins CIJenkins CI
Jenkins CI
 
Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)
 

Similar to Ecosistemas de Desarrollo Software - Automatización

Herramientas y entornos de implementacion de software
Herramientas y entornos de implementacion de softwareHerramientas y entornos de implementacion de software
Herramientas y entornos de implementacion de softwareMiguel Sanchez
 
Presentación MeRinde 6CNSL Abril 2010
Presentación MeRinde 6CNSL Abril 2010Presentación MeRinde 6CNSL Abril 2010
Presentación MeRinde 6CNSL Abril 2010Kiberley Santos
 
DevOps, por donde comenzar? - DrupalCon Latin America 2015
DevOps, por donde comenzar?  - DrupalCon Latin America 2015DevOps, por donde comenzar?  - DrupalCon Latin America 2015
DevOps, por donde comenzar? - DrupalCon Latin America 2015Taller Negócio Digitais
 
Seleccion de tecnicas de ingenieria de software
Seleccion de tecnicas de ingenieria de softwareSeleccion de tecnicas de ingenieria de software
Seleccion de tecnicas de ingenieria de softwareIngris Argueta
 
Tm01 el modelado en el desarrollo de software
Tm01 el modelado en el desarrollo de softwareTm01 el modelado en el desarrollo de software
Tm01 el modelado en el desarrollo de softwareJulio Pari
 
Catalyst: Framework para el desarrollo de aplicaciones Web
Catalyst: Framework para el desarrollo de aplicaciones WebCatalyst: Framework para el desarrollo de aplicaciones Web
Catalyst: Framework para el desarrollo de aplicaciones WebEsteban Saavedra
 
Framework para desarrollo de apps móviles
Framework para desarrollo de apps móvilesFramework para desarrollo de apps móviles
Framework para desarrollo de apps móvilesIván Campaña Naranjo
 
Sesión 3: Modelos prescriptivos de proceso
Sesión 3: Modelos prescriptivos de procesoSesión 3: Modelos prescriptivos de proceso
Sesión 3: Modelos prescriptivos de procesoCoesi Consultoria
 
Sesión 3: Modelos prescriptivos de proceso de software
Sesión 3: Modelos prescriptivos de proceso de softwareSesión 3: Modelos prescriptivos de proceso de software
Sesión 3: Modelos prescriptivos de proceso de softwareLuis Fernández
 
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs Academy
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs AcademyBootCamp Online en DevOps (and SecDevOps) de GeeksHubs Academy
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs AcademyTelefónica
 
Presentación
PresentaciónPresentación
Presentaciónlydina5
 
Herramientas del Ciclo de Vida de Prototipos
Herramientas del Ciclo de Vida de PrototiposHerramientas del Ciclo de Vida de Prototipos
Herramientas del Ciclo de Vida de PrototiposSaúl Torres Molina
 
Cuadro comparativo de herramientas de programacion eclipse, java
Cuadro comparativo de herramientas de programacion eclipse, javaCuadro comparativo de herramientas de programacion eclipse, java
Cuadro comparativo de herramientas de programacion eclipse, javaCCCRiis
 
Modelo de desarrollo rup
Modelo de desarrollo rupModelo de desarrollo rup
Modelo de desarrollo rupfrank
 

Similar to Ecosistemas de Desarrollo Software - Automatización (20)

Trabajo de desarrollo desoftware
Trabajo de desarrollo desoftwareTrabajo de desarrollo desoftware
Trabajo de desarrollo desoftware
 
Herramientas y entornos de implementacion de software
Herramientas y entornos de implementacion de softwareHerramientas y entornos de implementacion de software
Herramientas y entornos de implementacion de software
 
Presentación MeRinde 6CNSL Abril 2010
Presentación MeRinde 6CNSL Abril 2010Presentación MeRinde 6CNSL Abril 2010
Presentación MeRinde 6CNSL Abril 2010
 
DevOps, por donde comenzar? - DrupalCon Latin America 2015
DevOps, por donde comenzar?  - DrupalCon Latin America 2015DevOps, por donde comenzar?  - DrupalCon Latin America 2015
DevOps, por donde comenzar? - DrupalCon Latin America 2015
 
Seleccion de tecnicas de ingenieria de software
Seleccion de tecnicas de ingenieria de softwareSeleccion de tecnicas de ingenieria de software
Seleccion de tecnicas de ingenieria de software
 
Tm01 el modelado en el desarrollo de software
Tm01 el modelado en el desarrollo de softwareTm01 el modelado en el desarrollo de software
Tm01 el modelado en el desarrollo de software
 
3. modelos prescriptivos de proceso
3. modelos prescriptivos de proceso3. modelos prescriptivos de proceso
3. modelos prescriptivos de proceso
 
Catalyst: Framework para el desarrollo de aplicaciones Web
Catalyst: Framework para el desarrollo de aplicaciones WebCatalyst: Framework para el desarrollo de aplicaciones Web
Catalyst: Framework para el desarrollo de aplicaciones Web
 
Rup
RupRup
Rup
 
Framework para desarrollo de apps móviles
Framework para desarrollo de apps móvilesFramework para desarrollo de apps móviles
Framework para desarrollo de apps móviles
 
Tarea 6
Tarea 6Tarea 6
Tarea 6
 
Sesión 3: Modelos prescriptivos de proceso
Sesión 3: Modelos prescriptivos de procesoSesión 3: Modelos prescriptivos de proceso
Sesión 3: Modelos prescriptivos de proceso
 
Sesión 3: Modelos prescriptivos de proceso de software
Sesión 3: Modelos prescriptivos de proceso de softwareSesión 3: Modelos prescriptivos de proceso de software
Sesión 3: Modelos prescriptivos de proceso de software
 
Rational unified process (rup)
Rational unified process (rup)Rational unified process (rup)
Rational unified process (rup)
 
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs Academy
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs AcademyBootCamp Online en DevOps (and SecDevOps) de GeeksHubs Academy
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs Academy
 
Presentación
PresentaciónPresentación
Presentación
 
Herramientas del Ciclo de Vida de Prototipos
Herramientas del Ciclo de Vida de PrototiposHerramientas del Ciclo de Vida de Prototipos
Herramientas del Ciclo de Vida de Prototipos
 
Cuadro comparativo de herramientas de programacion eclipse, java
Cuadro comparativo de herramientas de programacion eclipse, javaCuadro comparativo de herramientas de programacion eclipse, java
Cuadro comparativo de herramientas de programacion eclipse, java
 
Modelo de desarrollo rup
Modelo de desarrollo rupModelo de desarrollo rup
Modelo de desarrollo rup
 
Motodo Watch
Motodo WatchMotodo Watch
Motodo Watch
 

Ecosistemas de Desarrollo Software - Automatización

  • 1. Ecosistemas de desarrollo software Líneas de automatización Asignatura: Desarrollo de Software Basado en Modelos y Aspectos Máster: Ingeniería y Tecnologías del Software Organiza: Departamento de Lenguajes y Sistemas Informáticos Lugar: Escuela Técnica Superior de Ingeniería Informática Fecha: 14/02/2012
  • 2. Manuel Recena Soto comencé a programar GW-Basic este es mi proyecto personal y y dedico gran parte de mi tiempo a con esta maravilla profesional gestionar los números de la empresa prototipar e implementar UI relación con los clientes limpiar la oficina mantener infraestructura evolucionar nuestro laboratorio desarrollar definición de producto participar en charlas, grupos de trabajo consultoría tecnológica auditoria de proyectos software http://www.linkedin.com/in/recena @recena recena@klicap.es recena@gmail.com
  • 3. DE QUÉ HABLAREMOS ๏ Build ๏ Automatic Documentation Generation ๏ Testing ๏ Continuous Inspection ๏ Continuous Deployment
  • 4. ANTES DE COMENZAR... Un ecosistema de desarrollo software es un espacio de trabajo en el que conviven una serie de herramientas que acompañadas de unas buenas prácticas permiten a un equipo de desarrollo modelar una metodología de trabajo modelo conceptual
  • 5. ANTES DE COMENZAR... La integración continua es una práctica en el desarrollo de software que consiste en poner en común todos los cambios que afecten al resultado final de nuestro proyecto de una forma frecuente con el objetivo de ver la evolución de sus efectos cuales? cuales? causa efecto principio de causalidad definición propia y con toda humildad y respeto hacia Martin Fowler
  • 6. Build ๏ Compilación ๏ Empaquetado ๏ Distribución (generación distribuibles 1) 1 http://www.manuelrecena.com/blog/archives/125
  • 7. Build ๏ Detectar qué cambios en el repositorio de código hacen que algo se rompa ๏ Distribuir rápidamente artefactos que se reutilizan ๏ Disponer de múltiples configuraciones de un mismo artefacto 1 http://www.manuelrecena.com/blog/archives/125
  • 8. Build ๏ Herramientas ๏ Maven, Rake, Ant, Ivy, Buildr, Gradle, Phing, SCons, ... ๏ Requisitos para su ejecución
  • 9. Automatic Doc Generation ๏ La documentación como un artefacto más que debemos mantener ๏ Enfoques: ๏ A partir del código fuente ๏ A partir de formatos ágiles
  • 10. Automatic Doc Generation ๏ Una entrada, múltiples salidas ๏ Imagen corporativa ๏ Edición colaborativa
  • 11. Automatic Doc Generation ๏ Herramientas ๏ Maven sites, doxygen, javadoc, JSDoc, phpDocumentator, docbook, Sphinx, Markdown, Textile, RDoc, Org Mode, Creole, ReStructured Text (ReST), ASCIIDoc, POD, Roff, ...
  • 12. Testing ๏ Unitarias / Funcionales ๏ Integración / Sistemas ๏ Rendimiento
  • 13. Testing ๏ Herramientas ๏ JUnit, Selenium, The Grinder, DbUnit, BrowserStack, TestNG, ... ๏ Requisitos para su ejecución
  • 14. Continuous Inspection ๏ Analizar desde un punto de vista estático ๏ Verificar y comprobar pautas y reglas de codificación ๏ Detectar posibles fallos de programacion
  • 15. Continuous Inspection ๏ Herramientas ๏ Sonar ๏ Requisitos para su ejecución
  • 16. Continuous Deployment ๏ Verificar que el despliegue no se rompe ๏ Despliegues en múltiples entornos ๏ Habilitar la instalación en entornos de producción
  • 17. Continuous Deployment ๏ Despliegue en infraestructura propia o externa (Jelastic, Google App Engine, Heroku, ...) ๏ Virtualización como pieza clave para nuestros entornos de despliegue en local
  • 18. BENEFICIOS ๏ Transparencia ๏ Agilidad ๏ Productividad ๏ Control / Trazabilidad
  • 20. GRACIAS Imagen de fondo Rubber Grip, http://subtlepatterns.com/?p=573