Desenvolupament d'aplicacions professionals - ... Desenvolupament d’aplicacions professionals...
date post
25-Jun-2020Category
Documents
view
4download
0
Embed Size (px)
Transcript of Desenvolupament d'aplicacions professionals - ... Desenvolupament d’aplicacions professionals...
Desenvolupament d’aplicacions professionals
Qualitat de codi i integració continua
Memòria de Projecte Final de Màster
Máster en Enginyeria Informàtica
Àrea d’especialitat/Itinerari
Desenvolupament d’aplicacions web
Autor: Juan Carlos Martín Capitán
Consultor: Ignasi Lorente Puchades
11/01/2015
Desenvolupament d’aplicacions professionals Qualitat de codi i integració continua
Juan Carlos Martín Capitán
Aquesta obra està subjecta a una llicència de
Reconeixement 3.0 Espanya de Creative Commons
http://creativecommons.org/licenses/by/3.0/es/
Desenvolupament d’aplicacions professionals Qualitat de codi i integració continua
Juan Carlos Martín Capitán
Abstracte (versió en català)
Les necessitats actuals en el desenvolupament de software han fet necessari que es desenvolupin
tècniques per agilitzar el desenvolupament i minimitzar els problemes resultants. Per solucionar aquestes
necessitats va sorgir el concepte de qualitat de codi, i la necessitat de crear un procés que ajudes en el
desenvolupament de grans projectes software, anomenat integració continua.
Aquest document explica els diferents conceptes que intervenen tant a la integració continua com en la
qualitat de codi i exposa, pas per pas, com implementar una solució d’integració continua, i com s’aplica en
un projecte real. Veurem que el desplegament d’un servei d’integració continua no és fàcil, però que a mig
termini, podem veure que ens agilitza enormement el desenvolupament del nostre projecte.
Paraules clau: Integració continua, qualitat de codi, Java, aplicació web, desenvolupament àgil.
Abstracto (versión en castellano)
Las necesidades actuales en el desarrollo de software han hecho necesario que se desarrollen técnicas
para agilizar el desarrollo y minimizar los problemas resultantes. Para solucionar estas necesidades surgió
el concepto de calidad de código, y la necesidad de crear un proceso que ayudase en el desarrollo de
grandes proyectos software, llamado integración continúa.
Éste documento explica los diferentes conceptos que intervienen tanto en la integración continúa como en la
calidad de código y expone, paso a paso, cómo implementar una solución de integración continúa, y cómo
se aplica en un proyecto real. Veremos que el despliegue de un servicio de integración continúa no es fácil,
pero que a medio plazo, podemos ver que nos agiliza enormemente el desarrollo de nuestro proyecto.
Palabras clave: Integración continua, calidad de código, Java, aplicación web, desarrollo ágil.
Abstract (English version)
Current needs in software development have made it necessary to develop techniques to speed
development and reduce the resulting problems. To address these needs, the concept of quality code and
the need to create a process that aids in the development of large software projects, called integration
continues, appears.
This document explains the different concepts involved both the integration continues as the quality of code
and explains step by step how to implement continuous integration solution, as applied in a real project. We
will see that the deployment of an integration system is still not easy, but in the medium term, we can see
that greatly speeds up in the development of our project.
Keywords: continuous Integration, quality code, Java, web application, agile software development.
Desenvolupament d’aplicacions professionals Qualitat de codi i integració continua
Juan Carlos Martín Capitán
Índex
1. Introducció al treball de final de màster ..................................................................................................... 1
1.1. Context i justificació ........................................................................................................................... 2
1.2. Descripció .......................................................................................................................................... 2
1.3. Objectius ............................................................................................................................................ 2
1.4. Metodologia ....................................................................................................................................... 3
1.5. Planificació ......................................................................................................................................... 4
2. Introducció a la qualitat de codi i la integració continua ............................................................................ 7
2.1. Què és la integració continua? .......................................................................................................... 8
2.2. Perquè es necessita un sistema de IC? ............................................................................................ 8
2.3. Què NO és la integració continua? .................................................................................................... 9
2.4. Què és la qualitat de codi? .............................................................................................................. 10
2.5. Què ens aporta la qualitat de codi? ................................................................................................. 11
3. Qualitat de codi ........................................................................................................................................ 13
3.1. Els 6 pilars bàsics de la QC ............................................................................................................. 13
3.2. Anàlisi del codi ................................................................................................................................. 15
3.2.1. Anàlisi estàtic de codi .................................................................................................................. 15
3.2.2. Anàlisi dinàmic de codi ................................................................................................................ 16
3.3. Deute tècnic ..................................................................................................................................... 17
3.4. Estàndards ISO més comuns a la QC ............................................................................................. 18
4. Integració continua .................................................................................................................................. 19
4.1. Control de versions .......................................................................................................................... 19
4.1.1. Bones practiques en la gestió de branques ................................................................................ 20
4.2. Entorns de desplegament ................................................................................................................ 21
4.3. Cicle d’integració continua de software ........................................................................................... 22
4.4. Arquitectura d’un sistema d’integració continua .............................................................................. 23
4.5. Bones practiques ............................................................................................................................. 24
5. Disseny i creació d’una solució d’integració continua ............................................................................. 28
5.1. Software al mercat ........................................................................................................................... 29
5.1.1. Eines de gestió i construcció de projectes .................................................................................. 29
5.1.2. Repositoris ................................................................................................................................... 30
5.1.3. Servidors d’integració continua.................................................................................................... 31
5.1.4. Software per qualitat de codi ....................................................................................................... 33
5.1.5. Repositoris d’artefactes ............................................................................................................... 33
5.2. Esquema de la solució amb software .............................................................................................. 35
5.3. Desplegament i configuració ........................................................................................................... 36
Desenvolupament d’aplicacions professionals Qualitat de codi i integració continua
Juan Carlos Martín Capitán
5.3.1. Servidor Amazon EC2 ................................................................................................................. 36
5.3.2. Jenkins ............................................................................................