Desenvolupament d'aplicacions professionals - ... Desenvolupament d’aplicacions professionals...

Click here to load reader

  • date post

    25-Jun-2020
  • Category

    Documents

  • view

    4
  • download

    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 ............................................................................................