ecosistemas de desarrollo software - automatización

20
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

Upload: manuel-jesus-recena-soto

Post on 31-May-2015

4.429 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ecosistemas de Desarrollo Software - Automatización

Ecosistemas de desarrollo software

Líneas de automatización

Asignatura : Desarro l lo de Sof tware Basado en Modelos y AspectosMáster : Ingenier ía y Tecnologías de l Sof twareOrganiza : Departamento de Lenguajes y S is temas In formát icosLugar : Escuela Técnica Super ior de Ingenier ía In formát icaFecha: 14/02/2012

Page 2: Ecosistemas de Desarrollo Software - Automatización

@recena

[email protected]

[email protected]

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

comencé a programar GW-Basic con esta maravilla

este es mi proyecto personal y profesional

y dedico gran parte de mi tiempo a

gestionar los números de la empresaprototipar e implementar UI

relación con los clienteslimpiar la oficina

mantener infraestructuraevolucionar nuestro laboratorio

desarrollardefinición de producto

participar en charlas, grupos de trabajoconsultoría tecnológica

auditoria de proyectos software

Manuel Recena Soto

Page 3: Ecosistemas de Desarrollo Software - Automatización

DE QUÉ HABLAREMOS

๏ Build

๏ Automatic Documentation Generation

๏ Testing

๏ Continuous Inspection

๏ Continuous Deployment

Page 4: Ecosistemas de Desarrollo Software - Automatización

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

Page 5: Ecosistemas de Desarrollo Software - Automatización

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

causa efecto

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

principio de causalidad

cuales? cuales?

Page 6: Ecosistemas de Desarrollo Software - Automatización

๏ Compilación

๏ Empaquetado

๏ Distribución (generación distribuibles 1)

Build

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

Page 7: Ecosistemas de Desarrollo Software - Automatización

๏ 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

Build

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

Page 8: Ecosistemas de Desarrollo Software - Automatización

๏ Herramientas

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

๏ Requisitos para su ejecución

Build

Page 9: Ecosistemas de Desarrollo Software - Automatización

๏ 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

Page 10: Ecosistemas de Desarrollo Software - Automatización

๏ Una entrada, múltiples salidas

๏ Imagen corporativa

๏ Edición colaborativa

Automatic Doc Generation

Page 11: Ecosistemas de Desarrollo Software - Automatización

๏ Herramientas

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

Automatic Doc Generation

Page 12: Ecosistemas de Desarrollo Software - Automatización

๏ Unitarias / Funcionales

๏ Integración / Sistemas

๏ Rendimiento

Testing

Page 13: Ecosistemas de Desarrollo Software - Automatización

๏ Herramientas

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

๏ Requisitos para su ejecución

Testing

Page 14: Ecosistemas de Desarrollo Software - Automatización

๏ Analizar desde un punto de vista estático

๏ Verificar y comprobar pautas y reglas de codificación

๏ Detectar posibles fallos de programacion

Continuous Inspection

Page 15: Ecosistemas de Desarrollo Software - Automatización

๏ Herramientas

๏ Sonar

๏ Requisitos para su ejecución

Continuous Inspection

Page 16: Ecosistemas de Desarrollo Software - Automatización

๏ Verificar que el despliegue no se rompe

๏ Despliegues en múltiples entornos

๏ Habilitar la instalación en entornos de producción

Continuous Deployment

Page 17: Ecosistemas de Desarrollo Software - Automatización

๏ Despliegue en infraestructura propia o externa (Jelastic, Google App Engine, Heroku, ...)

๏ Virtualización como pieza clave para nuestros entornos de despliegue en local

Continuous Deployment

Page 18: Ecosistemas de Desarrollo Software - Automatización

๏ Transparencia

๏ Agilidad

๏ Productividad

๏ Control / Trazabilidad

BENEFICIOS

Page 19: Ecosistemas de Desarrollo Software - Automatización

EL CAMINO CONTINUA

Vagrant

Page 20: Ecosistemas de Desarrollo Software - Automatización

GRACIAS

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