Construcción del Sistema

LIBP-0226 (Libro de pautas)

En la fase de construcción del sistema de información, se aplicarán las normas de codificación que correspondan, se integrarán de forma contínua los componentes desarrollados y se utilizarán aquellas herramientas que proporcionen soporte a las tareas de esta fase.

Pautas

TítuloCarácter
Normas de codificaciónObligatoria
Integración continuaRecomendada
Uso de herramientas de soporteRecomendada

Normas de codificación

Durante el proceso de construcción se tendrán en cuenta todas aquellas pautas que apliquen, dependiendo de la tipología y tecnología empleada en el proyecto, determinadas por el Subsistema de Desarrollo.

La aplicación de normas de codificación permite construir productos cuyo código es legible, estructurado, de fácil mantenimiento, reutilizable y eficiente, lo cuál redunda en la mejora de la calidad del producto obtenido.

Integración continua

Se adoptará una estrategia de integración continua durante el proceso de desarrollo del software.

La integración continua es un método de desarrollo que consiste en llevar a cabo de forma periódica el proceso de integración de todos los componentes que forman la aplicación, junto con las pruebas que se hayan definido, para conseguir que a pesar del desarrollo modular, se tenga siempre la visión integrada y global del proyecto en su conjunto. Esta práctica ha sido incluida como parte fundamental de procesos ágiles como eXtreme Programming y Scrum entre otras.

Su implementación debe realizarse mediante un proceso automatizado que permite construir el software desde las fuentes, desplegando en un entorno muy similar al final y llevar a cabo un conjunto de pruebas que validan su funcionamiento. Para que esto pueda llevarse a cabo se necesita:

  • Almacenar las fuentes en único repositorio
  • Automatizar el proceso de construcción a partir de las fuentes
  • Automatizar las pruebas

Los puntos a favor de usar este proceso, son que se minimizan las búsquedas de fallos colaterales, se permite identificar fallos de integración en etapas tempranas del desarrollo y se minimizan los tiempos de paso a producción. Los puntos en contra son la complejidad técnica que tiene su implantación y la disciplina que se exige a los desarrolladores.

Los beneficios que aporta la integración continua son:

  • Reducción del tiempo de integración.
  • Detección rápida y temprana de errores.
  • Pruebas inmediatas tras un cambio en el código.
  • Pruebas funcionales tempranas y focalizadas.
  • Versiones tempranas del proyecto.
  • Disponibilidad continua de la última versión del código para test, demos, etc.
  • Mejor visibilidad y calidad del proyecto.
  • Automatización del despliegue de aplicaciones en entornos de desarrollo y pruebas.
  • Contribuye a gestionar la calidad del proyecto.

Para más información consultar: http://www.martinfowler.com/articles/continuousIntegration.html

Uso de herramientas de soporte

La construcción del sistema deberá apoyarse en el uso de herramientas de integración continua (Hudson) junto con otras para dar soporte a la construcción (SVN, Maven, PMD y Checkstyle).

Se utilizará Subversión para el control de versiones, Maven para la gestión y construcción de proyectos Java y PMD y/o Checkstyle para el análisis de código Java estático.