SlideShare una empresa de Scribd logo
1 de 56
Descargar para leer sin conexión
Herramientas para la mejora del proceso
  de desarrollo de aplicaciones J2EE.




                       Iván Ruiz Rube
      Departamento de Lenguajes y Sistemas Informáticos
                    Universidad de Cádiz
Agenda

>   Introducción
>   Control del Código Fuente
>   Gestión del Proyecto
>   Construcción del Producto
>   Gestión del Conocimiento
>   Repositorio de Componentes
>   Aseguramiento de la Calidad
>   Integración Continua
>   Resumen
Agenda

>   Introducción
>   Control del Código Fuente
>   Gestión del Proyecto
>   Construcción del Producto
>   Gestión del Conocimiento
>   Repositorio de Componentes
>   Aseguramiento de la Calidad
>   Integración Continua
>   Resumen
Introducción (I)

> Complejidad del desarrollo software
  –   Tecnología variable (nuevos frameworks, librerías, etc.)
  –   Requisitos cambiantes (como siempre)
  –   Rotación elevada de personal experto
  –   Naturaleza de las aplicaciones web
  –   Cliente impaciente


> Buenas Prácticas aprendidas de la experiencia
  –   Reutilización del software y del conocimiento
  –   Gestión ágil del proyecto
  –   Automatización de tareas repetitivas
  –   Aplicar reglas y estilos de codificación
  –   Énfasis en las pruebas
  –   Entregas continuas al cliente
Introducción (II)

> Objetivo: Mejorar el proceso y el producto software
  – Emplear estándares
  – Aplicar una metodología (ágil o tradicional)
  – Usar herramientas de soporte (basadas en buenas prácticas)


> ¿Que vamos a ver hoy?
  –   Comentaremos escenarios problemáticos
  –   Describiremos herramientas de ayuda
  –   Breve demostración de las herramientas
  –   Al final, estaremos ante un entorno de desarrollo “maduro”
Agenda

>   Introducción
>   Control del Código Fuente
>   Gestión del Proyecto
>   Construcción del Producto
>   Gestión del Conocimiento
>   Repositorio de Componentes
>   Aseguramiento de la Calidad
>   Integración Continua
>   Resumen
Control del Código Fuente (I)

> Problemas
  –   ¿Donde almaceno el código fuente?
  –   ¿Cómo unificar el código de varios programadores?
  –   ¿Qué ocurre cuando varias personas modifican los mismos ficheros?
  –   ¿Cómo puedo gestionar diferentes versiones del software?
  –   Ha ocurrido un desastre... ¿puedo recuperar una versión concreta?
  –   ¿Puedo evitar accesos no autorizados?


> Solución: Sistema de control de versiones (SCM)
  –   Subversion
  –   CVS
  –   Git
  –   Mercurial
  –   Monotone
  –   Source Safe (MS)
  –   …
Control del Código Fuente (II)

  SUBVERSION
> Características
  – Modelo basado en cliente/servidor
  – Soporta diferentes protocolos de acceso: SVN, SVN+SSH,
    HTTP, HTTPS y FILE
  – Existen distintos clientes: TortoiseSVN, Subclipse, Subversive
> Utilidades
  –   Descarga del proyecto (checkout)
  –   Actualización del proyecto (update)
  –   Actualización del repositorio (commit)
  –   Comparar versiones (diff)
  –   Fusionar cambios (merge)
  –   Limpiar (cleanup)
  –   ...
Control del Código Fuente (III)
Control del Código Fuente (IV)
Control del Código Fuente (V)
Agenda

>   Introducción
>   Control del Código Fuente
>   Gestión del Proyecto
>   Construcción del Producto
>   Gestión del Conocimiento
>   Repositorio de Componentes
>   Aseguramiento de la Calidad
>   Integración Continua
>   Resumen
Gestión del Proyecto (I)

> Problemas
  –   ¿Como saber quien es el responsable de cada tarea?
  –   ¿Como controlar los “incurridos” del proyecto?
  –   ¿Cómo llevar el seguimiento de las tareas?
  –   ¿Como controlar las incidencias del proyecto (en producción)?
  –   ¿Que características y que parches se han incluido en la versión x.y.z del
      software?
  –   ¿Como planificar los trabajos?


> Solución: Software de gestión integrada de proyectos
  –   Redmine
  –   Trac
  –   DotProject
  –   Jira
  –   TFS + Project (MS)
  –   …
Gestión del Proyecto (II)

  REDMINE
> Características
  –   Aplicación web construida con RoR
  –   Gestión multiproyecto y con múltiples versiones
  –   Interfaz muy facil e intuitiva
  –   Páginas de usuarios personalizadas y envío de emails


> Utilidades
  –   Planificación (básica) mediante diagramas de Gantt
  –   Gestión de tareas: estado, responsable, “target version”, fechas de
      inicio/fin, porcentaje de avance, incurridos, etc.
  –   Seguimiento de tareas mediante consultas personalizadas
  –   Roadmap del proyecto
  –   Integración con SCM
  –   Noticias, Foros, Wikis
  –   ...
Gestión del Proyecto (III)
Gestión del Proyecto (IV)
Gestión del Proyecto (V)
Gestión del Proyecto (VI)
Agenda

>   Introducción
>   Control del Código Fuente
>   Gestión del Proyecto
>   Construcción del Producto
>   Gestión del Conocimiento
>   Repositorio de Componentes
>   Aseguramiento de la Calidad
>   Integración Continua
>   Resumen
Construcción del Producto (I)

> Problemas
  –   ¿Cómo   generar la estructura de directorios del proyecto?
  –   ¿Como   gestionar la compilación y el empaquetado?
  –   ¿Cómo   gestionar dependencias con librerías de terceros?
  –   ¿Cómo   introducir meta-información del proyecto en el código?
  –   ¿Como   hacer fácilmente un sitio web del proyecto?


> Solución: Project Management Framework
  – Maven
  – Ant + Ivy
  – …
Construcción del Producto (II)

  APACHE MAVEN
> Características
 – Estándar de facto en la construcción de proyectos JEE
 – Metainformación en Project Object Model (POM.XML)
 – Convención sobre configuración (estructura de directorios, versionado,cv)
 – Ciclo de vida basado en fases y goals (acciones)
 – Extensible mediante plugins
 – Herramienta de consola, aunque existen plugins para IDEs (m2Eclipse, IAM,
    mavenide)
 – Inconvenientes: 1. Curva de aprendizaje. 2. Al ser un modelo nuevo, los
    proyectos anteriores debe “renovarse”


> Utilidades
 – Descarga automática de dependencias (evitar el jar-hell)
 – Maven Site: Generación de un sitio web con información del proyecto,
    changelogs, javadocs, fuentes, resultados de las pruebas, etc.
 – Empaquetados condicionados al entorno
 – Ejecución de tests previos a despliegues
 – ...
Construcción del Producto (III)
Construcción del Producto (IV)
Construcción del Producto (V)
Construcción del Producto (VI)
Construcción del Producto (VII)
Agenda

>   Introducción
>   Control del Código Fuente
>   Gestión del Proyecto
>   Construcción del Producto
>   Gestión del Conocimiento
>   Repositorio de Componentes
>   Aseguramiento de la Calidad
>   Integración Continua
>   Resumen
Gestión del Conocimiento (I)

> Problemas
  – ¿Cómo redactar de forma colaborativa documentos de
    trabajo?
  – ¿Cómo proporcionar ayudas para la solución de problemas?
  – ¿Cómo plasmar el conocimiento?
  – ¿Cómo acceder rápidamente al conocimiento?


> Solución: Sistema de edición colaborativa (WIKI)
  –   MediaWiki
  –   MindTouch Wiki
  –   Confluence
  –   XWiki
  –   …
Gestión del Conocimiento (II)

  MEDIAWIKI
> Características
  –   CMS colaborativo construido en PHP
  –   Edición basada en artículos e hiperenlaces
  –   Histórico de versiones y búsquedas “fulltext” sobre los artículos
  –   Soporta multitud de plugins (extensiones) para mejorar el sistema


> Utilidades
  –   Definir modelos de arquitecturas y frameworks de desarrollo.
  –   Catálogo de librerías
  –   Documentación de proyectos (requisitos, análisis)
  –   FAQs y TIPs
  –   ...
Gestión del Conocimiento (III)
Gestión del Conocimiento (IV)
Agenda

>   Introducción
>   Control del Código Fuente
>   Gestión del Proyecto
>   Construcción del Producto
>   Gestión del Conocimiento
>   Repositorio de Componentes
>   Aseguramiento de la Calidad
>   Integración Continua
>   Resumen
Repositorio de Componentes (I)

> Problemas
  – ¿Reutilizamos código a nivel de proyecto?
  – ¿Reutilizamos código entre diferentes proyectos?
  – ¿Donde almacenamos el activo de componentes (jars) de la
    organización?
  – ¿Donde almacenamos los componentes de terceros?


> Solución: Repositorios de componentes
  –   Artifactory
  –   Nexus
  –   Archiva
  –   …
Repositorio de Componentes (II)

  ARTIFACTORY
> Características
  –   Repositorio basado en web y construido en Java
  –   Compatible 100% Maven
  –   Admite diferentes motores de bases de datos
  –   Interfaz de usuario sencilla y agradable
  –   Seguridad basada en grupos y usuarios, además de integración con LDAP.
  –   Copias de seguridad


> Utilidades
  –   Permite desplegar artefactos manualmente (via web)
  –   Admite el despliegue remoto de artefactos
  –   Funciona como proxy de repositorios en Internet
  –   Búsqueda de artefactos dentro de los repositorios
  –   ...
Repositorio de Componentes (III)
Repositorio de Componentes (IV)
Repositorio de Componentes (V)
Repositorio de Componentes (VI)
Agenda

>   Introducción
>   Control del Código Fuente
>   Gestión del Proyecto
>   Construcción del Producto
>   Gestión del Conocimiento
>   Repositorio de Componentes
>   Aseguramiento de la Calidad
>   Integración Continua
>   Resumen
Aseguramiento de la Calidad (I)

> Problemas
  – ¿Cómo mejorar la calidad de mi código?
  – ¿Cómo automatizar las pruebas?
  – ¿Cómo asegurar que los programadores usen unas mismas
    guías de estilos?
  – ¿Que partes de mi código son mas difíciles de mantener?
  – Vamos a hacer refactoring... ¿por donde empiezo?


> Solución:
  – Análisis Estático: PMD, CheckStyle, Findbugs, ... Sonar
  – Análisis Dinámico: JUnit, HttpUnit, JMeter, ...
Aseguramiento de la Calidad (II)

  SONAR
> Características
  –   Aplicación web que integra a varias herramientas de análisis opensource.
  –   Soporta diferentes métricas clasificadas en: eficiencia, mantenibilidad,
      portabilidad, fiabilidad y usabilidad.
  –   Actualización de métricas en cada build de los proyectos


> Utilidades
  –   Analiza el código fuente generando informes, métricas, diagramas, etc.
  –   Presenta resultados a diversos niveles: proyecto, paquete, clase y
      método.
  –   Permite visualizar el código fuente donde se incumplen las normas de
      codificación
  –   Muestra tendencias en la calidad del código, cobertura de test unitarios,
      hotspots, clouds, etc.
  –   ...
Aseguramiento de la Calidad (III)
Aseguramiento de la Calidad (IV)
Aseguramiento de la Calidad (V)
Aseguramiento de la Calidad (VI)
Agenda

>   Introducción
>   Control del Código Fuente
>   Gestión del Proyecto
>   Construcción del Producto
>   Gestión del Conocimiento
>   Repositorio de Componentes
>   Aseguramiento de la Calidad
>   Integración Continua
>   Resumen
Integración Continua (I)

> Problemas
  –   ¿Cómo reducir los tiempos de integración?
  –   ¿Como ejecutar pruebas de regresión?
  –   ¿Como detectar los fallos rápidamente?
  –   ¿Como disponer de un entorno de             pruebas   siempre
      actualizado?



> Solución: Herramientas de Integración Continua (CI)
  –   Hudson
  –   Continuum
  –   CruiseControl
  –   …
Integración Continua (II)

  HUDSON
> Características
  –   Sistema de CI basado en web
  –   Gracias a sus plugins, permite adaptarse fácilmente a las necesidades de
      cada organización
  –   No está ligado a proyectos Maven (aunque es recomendable)
  –   Soporte de seguridad completo (conexión con LDAP)
  –   Integración con sistemas externos: svn, redmine, sonar, etc.
  –   Construcción distribuida


> Utilidades
  –   Permite crear tareas automáticas (cron) de construcción
  –   Notificaciones via email
  –   Posibilidad de despliegue en repositorios de componentes (artifactory)
  –   Permite desplegar proyectos en servidores de aplicaciones (tomcat)
  –   ...
Integración Continua (III)
Integración Continua (IV)
Integración Continua (V)
Agenda

>   Introducción
>   Control del Código Fuente
>   Gestión del Proyecto
>   Construcción del Producto
>   Gestión del Conocimiento
>   Repositorio de Componentes
>   Aseguramiento de la Calidad
>   Integración Continua
>   Resumen
Resumen (I)

> Necesidad de emplear un sistema de control de versiones
  (como SUBVERSION) para gestionar correctamente el
  código fuente.
> En entornos grandes o medianos es indispensable el uso de
  una herramienta de gestión de proyectos (como REDMINE)
  para llevar el seguimiento del desarrollo.
> Es preciso contar con algún sistema (como MAVEN) que
  permita automatizar ciertas tareas como la gestión de
  dependencias, empaquetados y despliegues, así como
  generar un portal web del proyecto.
> Mantener una base de conocimiento mediante algún sistema
  WIKI (como MEDIAWIKI) es muy importante de cara a la
  mejora continua del equipo.
Resumen (II)


> Para gestionar de forma efectiva la reutilización de
  componentes software, es necesario disponer de un
  repositorio local de artefactos (como ARTIFACTORY)
> Desarrollar código de calidad es fundamental para asegurar
  aspectos como la mantenibilidad y la eficiencia del software.
  Así pues, el disponer de un entorno centralizado de métricas
  (como SONAR), nos ayudará a mejorar el producto que
  desarrollemos.
> Los sistemas de integración continua (como HUDSON) son
  vitales para detectar errores tempranos, y disponer siempre
  de un software actualizado en algún entorno de pruebas.
Resumen (III)
Herramientas para la mejora del proceso
  de desarrollo de aplicaciones J2EE.




              ivan.ruiz@uca.es

Más contenido relacionado

Similar a Herramientas J2EE desarrollo aplicaciones

Curso Arquitectura J2 Ee Parte1
Curso Arquitectura J2 Ee Parte1Curso Arquitectura J2 Ee Parte1
Curso Arquitectura J2 Ee Parte1AndresGuerreroG
 
15-TEMA: 4. INTRODUCCION A LAS ARQUITECTURASWEB Contenidos: 4.1 Dao 4.2 Mv...
15-TEMA: 4. INTRODUCCION A LAS ARQUITECTURASWEB  Contenidos:  4.1 Dao  4.2 Mv...15-TEMA: 4. INTRODUCCION A LAS ARQUITECTURASWEB  Contenidos:  4.1 Dao  4.2 Mv...
15-TEMA: 4. INTRODUCCION A LAS ARQUITECTURASWEB Contenidos: 4.1 Dao 4.2 Mv...Luis Fernando Aguas Bucheli
 
Herramientas Ágiles para Desarrollo
Herramientas Ágiles para DesarrolloHerramientas Ágiles para Desarrollo
Herramientas Ágiles para DesarrolloGastón Guillerón
 
Herramientas agilesdesarrollo
Herramientas agilesdesarrolloHerramientas agilesdesarrollo
Herramientas agilesdesarrollogabrielpiccoli
 
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...Ianpierr Miranda
 
01 T1 2021 Sistemas Embebidos.pptx
01 T1 2021 Sistemas Embebidos.pptx01 T1 2021 Sistemas Embebidos.pptx
01 T1 2021 Sistemas Embebidos.pptxDyllanBastidas
 
¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?Micael Gallego
 
Seminario 2+parte wickets
Seminario 2+parte wicketsSeminario 2+parte wickets
Seminario 2+parte wicketsJorge Mahecha
 
Lp II clase01 - Desarrollo de software con RUP
Lp II   clase01 - Desarrollo de software con RUPLp II   clase01 - Desarrollo de software con RUP
Lp II clase01 - Desarrollo de software con RUPAngelDX
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a GitSergio Rus
 
Programación web
Programación webProgramación web
Programación weberic291285
 
Ruben Pardo - Innovación, Modernización y Productividad con Flexygo
Ruben Pardo - Innovación, Modernización y Productividad con FlexygoRuben Pardo - Innovación, Modernización y Productividad con Flexygo
Ruben Pardo - Innovación, Modernización y Productividad con FlexygoCOIICV
 
4tageneracion 090512224610-phpapp02
4tageneracion 090512224610-phpapp024tageneracion 090512224610-phpapp02
4tageneracion 090512224610-phpapp02Lupunkd Ruiz Angulo
 

Similar a Herramientas J2EE desarrollo aplicaciones (20)

Curso Arquitectura J2 Ee Parte1
Curso Arquitectura J2 Ee Parte1Curso Arquitectura J2 Ee Parte1
Curso Arquitectura J2 Ee Parte1
 
15-TEMA: 4. INTRODUCCION A LAS ARQUITECTURASWEB Contenidos: 4.1 Dao 4.2 Mv...
15-TEMA: 4. INTRODUCCION A LAS ARQUITECTURASWEB  Contenidos:  4.1 Dao  4.2 Mv...15-TEMA: 4. INTRODUCCION A LAS ARQUITECTURASWEB  Contenidos:  4.1 Dao  4.2 Mv...
15-TEMA: 4. INTRODUCCION A LAS ARQUITECTURASWEB Contenidos: 4.1 Dao 4.2 Mv...
 
Introducción a Visual Studio .net
Introducción a Visual Studio .netIntroducción a Visual Studio .net
Introducción a Visual Studio .net
 
Herramientas Ágiles para Desarrollo
Herramientas Ágiles para DesarrolloHerramientas Ágiles para Desarrollo
Herramientas Ágiles para Desarrollo
 
Herramientas agilesdesarrollo
Herramientas agilesdesarrolloHerramientas agilesdesarrollo
Herramientas agilesdesarrollo
 
FundeWeb. El framework de desarrollo en ÁTICA
FundeWeb. El framework de desarrollo en ÁTICAFundeWeb. El framework de desarrollo en ÁTICA
FundeWeb. El framework de desarrollo en ÁTICA
 
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
 
01 T1 2021 Sistemas Embebidos.pptx
01 T1 2021 Sistemas Embebidos.pptx01 T1 2021 Sistemas Embebidos.pptx
01 T1 2021 Sistemas Embebidos.pptx
 
¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?
 
Flujo de desarrollo para drupal (PFC)
Flujo de desarrollo para drupal (PFC)Flujo de desarrollo para drupal (PFC)
Flujo de desarrollo para drupal (PFC)
 
Seminario 2+parte wickets
Seminario 2+parte wicketsSeminario 2+parte wickets
Seminario 2+parte wickets
 
Lps y mw
Lps y mwLps y mw
Lps y mw
 
Lp II clase01 - Desarrollo de software con RUP
Lp II   clase01 - Desarrollo de software con RUPLp II   clase01 - Desarrollo de software con RUP
Lp II clase01 - Desarrollo de software con RUP
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
 
Programación web
Programación webProgramación web
Programación web
 
DevOps+[Chef/Docker]
 DevOps+[Chef/Docker] DevOps+[Chef/Docker]
DevOps+[Chef/Docker]
 
Comp2 guia2
Comp2 guia2Comp2 guia2
Comp2 guia2
 
demoDAAW.ppt
demoDAAW.pptdemoDAAW.ppt
demoDAAW.ppt
 
Ruben Pardo - Innovación, Modernización y Productividad con Flexygo
Ruben Pardo - Innovación, Modernización y Productividad con FlexygoRuben Pardo - Innovación, Modernización y Productividad con Flexygo
Ruben Pardo - Innovación, Modernización y Productividad con Flexygo
 
4tageneracion 090512224610-phpapp02
4tageneracion 090512224610-phpapp024tageneracion 090512224610-phpapp02
4tageneracion 090512224610-phpapp02
 

Más de Iván Ruiz-Rube

Applying static code analysis for domain-specific languages
Applying static code analysis for domain-specific languagesApplying static code analysis for domain-specific languages
Applying static code analysis for domain-specific languagesIván Ruiz-Rube
 
Static code analysis to measure the quality of musical scores
Static code analysis to measure the quality of musical scoresStatic code analysis to measure the quality of musical scores
Static code analysis to measure the quality of musical scoresIván Ruiz-Rube
 
Static analysis of textual models
Static analysis of textual modelsStatic analysis of textual models
Static analysis of textual modelsIván Ruiz-Rube
 
Cómo desarrollar fácilmente una app para Android
Cómo desarrollar fácilmente una app para AndroidCómo desarrollar fácilmente una app para Android
Cómo desarrollar fácilmente una app para AndroidIván Ruiz-Rube
 
Un framework para el despliegue y evaluación de procesos software
Un framework para el despliegue y evaluación de procesos softwareUn framework para el despliegue y evaluación de procesos software
Un framework para el despliegue y evaluación de procesos softwareIván Ruiz-Rube
 
Introducción al BI con pentaho
Introducción al BI con pentahoIntroducción al BI con pentaho
Introducción al BI con pentahoIván Ruiz-Rube
 
PseudoDSL. Un lenguaje generativo para el aprendizaje de pseudocódigo
PseudoDSL. Un lenguaje generativo para el aprendizaje de pseudocódigoPseudoDSL. Un lenguaje generativo para el aprendizaje de pseudocódigo
PseudoDSL. Un lenguaje generativo para el aprendizaje de pseudocódigoIván Ruiz-Rube
 
Herramientas para linked data
Herramientas para linked dataHerramientas para linked data
Herramientas para linked dataIván Ruiz-Rube
 
Revisiones de la literatura en Ingeniería del Software
Revisiones de la literatura en Ingeniería del SoftwareRevisiones de la literatura en Ingeniería del Software
Revisiones de la literatura en Ingeniería del SoftwareIván Ruiz-Rube
 
Desarrollo y monitorización de TFGs basados en un modelo de procesos y un eco...
Desarrollo y monitorización de TFGs basados en un modelo de procesos y un eco...Desarrollo y monitorización de TFGs basados en un modelo de procesos y un eco...
Desarrollo y monitorización de TFGs basados en un modelo de procesos y un eco...Iván Ruiz-Rube
 
Development issues on linked data weblog enrichment
Development issues on linked data weblog enrichmentDevelopment issues on linked data weblog enrichment
Development issues on linked data weblog enrichmentIván Ruiz-Rube
 
Evaluación de un ecosistema software en organizaciones de desarrollo web bajo...
Evaluación de un ecosistema software en organizaciones de desarrollo web bajo...Evaluación de un ecosistema software en organizaciones de desarrollo web bajo...
Evaluación de un ecosistema software en organizaciones de desarrollo web bajo...Iván Ruiz-Rube
 
Supporting the software process management with model driven engineering
Supporting the software process management with model driven engineeringSupporting the software process management with model driven engineering
Supporting the software process management with model driven engineeringIván Ruiz-Rube
 
Gestión de la calidad usando ingeniería dirigida por modelos
Gestión de la calidad usando ingeniería dirigida por modelosGestión de la calidad usando ingeniería dirigida por modelos
Gestión de la calidad usando ingeniería dirigida por modelosIván Ruiz-Rube
 
Quality management using mde - an overview
Quality management using mde - an overviewQuality management using mde - an overview
Quality management using mde - an overviewIván Ruiz-Rube
 
Linked Open Data: an overview
Linked Open Data: an overviewLinked Open Data: an overview
Linked Open Data: an overviewIván Ruiz-Rube
 
Publishing linked data from relational databases
Publishing linked data from relational databasesPublishing linked data from relational databases
Publishing linked data from relational databasesIván Ruiz-Rube
 

Más de Iván Ruiz-Rube (18)

Applying static code analysis for domain-specific languages
Applying static code analysis for domain-specific languagesApplying static code analysis for domain-specific languages
Applying static code analysis for domain-specific languages
 
Static code analysis to measure the quality of musical scores
Static code analysis to measure the quality of musical scoresStatic code analysis to measure the quality of musical scores
Static code analysis to measure the quality of musical scores
 
Static analysis of textual models
Static analysis of textual modelsStatic analysis of textual models
Static analysis of textual models
 
Cómo desarrollar fácilmente una app para Android
Cómo desarrollar fácilmente una app para AndroidCómo desarrollar fácilmente una app para Android
Cómo desarrollar fácilmente una app para Android
 
Un framework para el despliegue y evaluación de procesos software
Un framework para el despliegue y evaluación de procesos softwareUn framework para el despliegue y evaluación de procesos software
Un framework para el despliegue y evaluación de procesos software
 
Introducción al BI con pentaho
Introducción al BI con pentahoIntroducción al BI con pentaho
Introducción al BI con pentaho
 
PseudoDSL. Un lenguaje generativo para el aprendizaje de pseudocódigo
PseudoDSL. Un lenguaje generativo para el aprendizaje de pseudocódigoPseudoDSL. Un lenguaje generativo para el aprendizaje de pseudocódigo
PseudoDSL. Un lenguaje generativo para el aprendizaje de pseudocódigo
 
Herramientas para linked data
Herramientas para linked dataHerramientas para linked data
Herramientas para linked data
 
Revisiones de la literatura en Ingeniería del Software
Revisiones de la literatura en Ingeniería del SoftwareRevisiones de la literatura en Ingeniería del Software
Revisiones de la literatura en Ingeniería del Software
 
Desarrollo y monitorización de TFGs basados en un modelo de procesos y un eco...
Desarrollo y monitorización de TFGs basados en un modelo de procesos y un eco...Desarrollo y monitorización de TFGs basados en un modelo de procesos y un eco...
Desarrollo y monitorización de TFGs basados en un modelo de procesos y un eco...
 
MDE & DSLs
MDE & DSLsMDE & DSLs
MDE & DSLs
 
Development issues on linked data weblog enrichment
Development issues on linked data weblog enrichmentDevelopment issues on linked data weblog enrichment
Development issues on linked data weblog enrichment
 
Evaluación de un ecosistema software en organizaciones de desarrollo web bajo...
Evaluación de un ecosistema software en organizaciones de desarrollo web bajo...Evaluación de un ecosistema software en organizaciones de desarrollo web bajo...
Evaluación de un ecosistema software en organizaciones de desarrollo web bajo...
 
Supporting the software process management with model driven engineering
Supporting the software process management with model driven engineeringSupporting the software process management with model driven engineering
Supporting the software process management with model driven engineering
 
Gestión de la calidad usando ingeniería dirigida por modelos
Gestión de la calidad usando ingeniería dirigida por modelosGestión de la calidad usando ingeniería dirigida por modelos
Gestión de la calidad usando ingeniería dirigida por modelos
 
Quality management using mde - an overview
Quality management using mde - an overviewQuality management using mde - an overview
Quality management using mde - an overview
 
Linked Open Data: an overview
Linked Open Data: an overviewLinked Open Data: an overview
Linked Open Data: an overview
 
Publishing linked data from relational databases
Publishing linked data from relational databasesPublishing linked data from relational databases
Publishing linked data from relational databases
 

Último

CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
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
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
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
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 

Último (20)

CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
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
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
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
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 

Herramientas J2EE desarrollo aplicaciones

  • 1. Herramientas para la mejora del proceso de desarrollo de aplicaciones J2EE. Iván Ruiz Rube Departamento de Lenguajes y Sistemas Informáticos Universidad de Cádiz
  • 2. Agenda > Introducción > Control del Código Fuente > Gestión del Proyecto > Construcción del Producto > Gestión del Conocimiento > Repositorio de Componentes > Aseguramiento de la Calidad > Integración Continua > Resumen
  • 3. Agenda > Introducción > Control del Código Fuente > Gestión del Proyecto > Construcción del Producto > Gestión del Conocimiento > Repositorio de Componentes > Aseguramiento de la Calidad > Integración Continua > Resumen
  • 4. Introducción (I) > Complejidad del desarrollo software – Tecnología variable (nuevos frameworks, librerías, etc.) – Requisitos cambiantes (como siempre) – Rotación elevada de personal experto – Naturaleza de las aplicaciones web – Cliente impaciente > Buenas Prácticas aprendidas de la experiencia – Reutilización del software y del conocimiento – Gestión ágil del proyecto – Automatización de tareas repetitivas – Aplicar reglas y estilos de codificación – Énfasis en las pruebas – Entregas continuas al cliente
  • 5. Introducción (II) > Objetivo: Mejorar el proceso y el producto software – Emplear estándares – Aplicar una metodología (ágil o tradicional) – Usar herramientas de soporte (basadas en buenas prácticas) > ¿Que vamos a ver hoy? – Comentaremos escenarios problemáticos – Describiremos herramientas de ayuda – Breve demostración de las herramientas – Al final, estaremos ante un entorno de desarrollo “maduro”
  • 6. Agenda > Introducción > Control del Código Fuente > Gestión del Proyecto > Construcción del Producto > Gestión del Conocimiento > Repositorio de Componentes > Aseguramiento de la Calidad > Integración Continua > Resumen
  • 7. Control del Código Fuente (I) > Problemas – ¿Donde almaceno el código fuente? – ¿Cómo unificar el código de varios programadores? – ¿Qué ocurre cuando varias personas modifican los mismos ficheros? – ¿Cómo puedo gestionar diferentes versiones del software? – Ha ocurrido un desastre... ¿puedo recuperar una versión concreta? – ¿Puedo evitar accesos no autorizados? > Solución: Sistema de control de versiones (SCM) – Subversion – CVS – Git – Mercurial – Monotone – Source Safe (MS) – …
  • 8. Control del Código Fuente (II) SUBVERSION > Características – Modelo basado en cliente/servidor – Soporta diferentes protocolos de acceso: SVN, SVN+SSH, HTTP, HTTPS y FILE – Existen distintos clientes: TortoiseSVN, Subclipse, Subversive > Utilidades – Descarga del proyecto (checkout) – Actualización del proyecto (update) – Actualización del repositorio (commit) – Comparar versiones (diff) – Fusionar cambios (merge) – Limpiar (cleanup) – ...
  • 9. Control del Código Fuente (III)
  • 10. Control del Código Fuente (IV)
  • 11. Control del Código Fuente (V)
  • 12. Agenda > Introducción > Control del Código Fuente > Gestión del Proyecto > Construcción del Producto > Gestión del Conocimiento > Repositorio de Componentes > Aseguramiento de la Calidad > Integración Continua > Resumen
  • 13. Gestión del Proyecto (I) > Problemas – ¿Como saber quien es el responsable de cada tarea? – ¿Como controlar los “incurridos” del proyecto? – ¿Cómo llevar el seguimiento de las tareas? – ¿Como controlar las incidencias del proyecto (en producción)? – ¿Que características y que parches se han incluido en la versión x.y.z del software? – ¿Como planificar los trabajos? > Solución: Software de gestión integrada de proyectos – Redmine – Trac – DotProject – Jira – TFS + Project (MS) – …
  • 14. Gestión del Proyecto (II) REDMINE > Características – Aplicación web construida con RoR – Gestión multiproyecto y con múltiples versiones – Interfaz muy facil e intuitiva – Páginas de usuarios personalizadas y envío de emails > Utilidades – Planificación (básica) mediante diagramas de Gantt – Gestión de tareas: estado, responsable, “target version”, fechas de inicio/fin, porcentaje de avance, incurridos, etc. – Seguimiento de tareas mediante consultas personalizadas – Roadmap del proyecto – Integración con SCM – Noticias, Foros, Wikis – ...
  • 19. Agenda > Introducción > Control del Código Fuente > Gestión del Proyecto > Construcción del Producto > Gestión del Conocimiento > Repositorio de Componentes > Aseguramiento de la Calidad > Integración Continua > Resumen
  • 20. Construcción del Producto (I) > Problemas – ¿Cómo generar la estructura de directorios del proyecto? – ¿Como gestionar la compilación y el empaquetado? – ¿Cómo gestionar dependencias con librerías de terceros? – ¿Cómo introducir meta-información del proyecto en el código? – ¿Como hacer fácilmente un sitio web del proyecto? > Solución: Project Management Framework – Maven – Ant + Ivy – …
  • 21. Construcción del Producto (II) APACHE MAVEN > Características – Estándar de facto en la construcción de proyectos JEE – Metainformación en Project Object Model (POM.XML) – Convención sobre configuración (estructura de directorios, versionado,cv) – Ciclo de vida basado en fases y goals (acciones) – Extensible mediante plugins – Herramienta de consola, aunque existen plugins para IDEs (m2Eclipse, IAM, mavenide) – Inconvenientes: 1. Curva de aprendizaje. 2. Al ser un modelo nuevo, los proyectos anteriores debe “renovarse” > Utilidades – Descarga automática de dependencias (evitar el jar-hell) – Maven Site: Generación de un sitio web con información del proyecto, changelogs, javadocs, fuentes, resultados de las pruebas, etc. – Empaquetados condicionados al entorno – Ejecución de tests previos a despliegues – ...
  • 27. Agenda > Introducción > Control del Código Fuente > Gestión del Proyecto > Construcción del Producto > Gestión del Conocimiento > Repositorio de Componentes > Aseguramiento de la Calidad > Integración Continua > Resumen
  • 28. Gestión del Conocimiento (I) > Problemas – ¿Cómo redactar de forma colaborativa documentos de trabajo? – ¿Cómo proporcionar ayudas para la solución de problemas? – ¿Cómo plasmar el conocimiento? – ¿Cómo acceder rápidamente al conocimiento? > Solución: Sistema de edición colaborativa (WIKI) – MediaWiki – MindTouch Wiki – Confluence – XWiki – …
  • 29. Gestión del Conocimiento (II) MEDIAWIKI > Características – CMS colaborativo construido en PHP – Edición basada en artículos e hiperenlaces – Histórico de versiones y búsquedas “fulltext” sobre los artículos – Soporta multitud de plugins (extensiones) para mejorar el sistema > Utilidades – Definir modelos de arquitecturas y frameworks de desarrollo. – Catálogo de librerías – Documentación de proyectos (requisitos, análisis) – FAQs y TIPs – ...
  • 32. Agenda > Introducción > Control del Código Fuente > Gestión del Proyecto > Construcción del Producto > Gestión del Conocimiento > Repositorio de Componentes > Aseguramiento de la Calidad > Integración Continua > Resumen
  • 33. Repositorio de Componentes (I) > Problemas – ¿Reutilizamos código a nivel de proyecto? – ¿Reutilizamos código entre diferentes proyectos? – ¿Donde almacenamos el activo de componentes (jars) de la organización? – ¿Donde almacenamos los componentes de terceros? > Solución: Repositorios de componentes – Artifactory – Nexus – Archiva – …
  • 34. Repositorio de Componentes (II) ARTIFACTORY > Características – Repositorio basado en web y construido en Java – Compatible 100% Maven – Admite diferentes motores de bases de datos – Interfaz de usuario sencilla y agradable – Seguridad basada en grupos y usuarios, además de integración con LDAP. – Copias de seguridad > Utilidades – Permite desplegar artefactos manualmente (via web) – Admite el despliegue remoto de artefactos – Funciona como proxy de repositorios en Internet – Búsqueda de artefactos dentro de los repositorios – ...
  • 39. Agenda > Introducción > Control del Código Fuente > Gestión del Proyecto > Construcción del Producto > Gestión del Conocimiento > Repositorio de Componentes > Aseguramiento de la Calidad > Integración Continua > Resumen
  • 40. Aseguramiento de la Calidad (I) > Problemas – ¿Cómo mejorar la calidad de mi código? – ¿Cómo automatizar las pruebas? – ¿Cómo asegurar que los programadores usen unas mismas guías de estilos? – ¿Que partes de mi código son mas difíciles de mantener? – Vamos a hacer refactoring... ¿por donde empiezo? > Solución: – Análisis Estático: PMD, CheckStyle, Findbugs, ... Sonar – Análisis Dinámico: JUnit, HttpUnit, JMeter, ...
  • 41. Aseguramiento de la Calidad (II) SONAR > Características – Aplicación web que integra a varias herramientas de análisis opensource. – Soporta diferentes métricas clasificadas en: eficiencia, mantenibilidad, portabilidad, fiabilidad y usabilidad. – Actualización de métricas en cada build de los proyectos > Utilidades – Analiza el código fuente generando informes, métricas, diagramas, etc. – Presenta resultados a diversos niveles: proyecto, paquete, clase y método. – Permite visualizar el código fuente donde se incumplen las normas de codificación – Muestra tendencias en la calidad del código, cobertura de test unitarios, hotspots, clouds, etc. – ...
  • 42. Aseguramiento de la Calidad (III)
  • 43. Aseguramiento de la Calidad (IV)
  • 44. Aseguramiento de la Calidad (V)
  • 45. Aseguramiento de la Calidad (VI)
  • 46. Agenda > Introducción > Control del Código Fuente > Gestión del Proyecto > Construcción del Producto > Gestión del Conocimiento > Repositorio de Componentes > Aseguramiento de la Calidad > Integración Continua > Resumen
  • 47. Integración Continua (I) > Problemas – ¿Cómo reducir los tiempos de integración? – ¿Como ejecutar pruebas de regresión? – ¿Como detectar los fallos rápidamente? – ¿Como disponer de un entorno de pruebas siempre actualizado? > Solución: Herramientas de Integración Continua (CI) – Hudson – Continuum – CruiseControl – …
  • 48. Integración Continua (II) HUDSON > Características – Sistema de CI basado en web – Gracias a sus plugins, permite adaptarse fácilmente a las necesidades de cada organización – No está ligado a proyectos Maven (aunque es recomendable) – Soporte de seguridad completo (conexión con LDAP) – Integración con sistemas externos: svn, redmine, sonar, etc. – Construcción distribuida > Utilidades – Permite crear tareas automáticas (cron) de construcción – Notificaciones via email – Posibilidad de despliegue en repositorios de componentes (artifactory) – Permite desplegar proyectos en servidores de aplicaciones (tomcat) – ...
  • 52. Agenda > Introducción > Control del Código Fuente > Gestión del Proyecto > Construcción del Producto > Gestión del Conocimiento > Repositorio de Componentes > Aseguramiento de la Calidad > Integración Continua > Resumen
  • 53. Resumen (I) > Necesidad de emplear un sistema de control de versiones (como SUBVERSION) para gestionar correctamente el código fuente. > En entornos grandes o medianos es indispensable el uso de una herramienta de gestión de proyectos (como REDMINE) para llevar el seguimiento del desarrollo. > Es preciso contar con algún sistema (como MAVEN) que permita automatizar ciertas tareas como la gestión de dependencias, empaquetados y despliegues, así como generar un portal web del proyecto. > Mantener una base de conocimiento mediante algún sistema WIKI (como MEDIAWIKI) es muy importante de cara a la mejora continua del equipo.
  • 54. Resumen (II) > Para gestionar de forma efectiva la reutilización de componentes software, es necesario disponer de un repositorio local de artefactos (como ARTIFACTORY) > Desarrollar código de calidad es fundamental para asegurar aspectos como la mantenibilidad y la eficiencia del software. Así pues, el disponer de un entorno centralizado de métricas (como SONAR), nos ayudará a mejorar el producto que desarrollemos. > Los sistemas de integración continua (como HUDSON) son vitales para detectar errores tempranos, y disponer siempre de un software actualizado en algún entorno de pruebas.
  • 56. Herramientas para la mejora del proceso de desarrollo de aplicaciones J2EE. ivan.ruiz@uca.es