Factores de mantenibilidad en el desarrollo de ... mantenibilidad si el esfuerzo requerido para...

download Factores de mantenibilidad en el desarrollo de ... mantenibilidad si el esfuerzo requerido para conservar

of 73

  • date post

    02-Nov-2019
  • Category

    Documents

  • view

    1
  • download

    0

Embed Size (px)

Transcript of Factores de mantenibilidad en el desarrollo de ... mantenibilidad si el esfuerzo requerido para...

  • Factores de mantenibilidad en el desarrollo de aplicaciones web

    Juan David Meza González

    Universidad Nacional de Colombia

    Facultad de Minas, Departamento de Ciencias de la Computación y la Decisión

    Medellín, Colombia

    2017

  • Factores de mantenibilidad en el desarrollo de aplicaciones web

    Juan David Meza González

    Trabajo presentado como requisito parcial para optar al título de:

    Magister en Ingeniería: Ingeniería de Sistemas e Informática

    Director:

    Ph.D Fernando Arango Isaza

    Línea de Investigación:

    Mantenibilidad en el desarrollo de software

    Universidad Nacional de Colombia

    Facultad de Minas, Departamento de Ciencias de la Computación y la Decisión

    Medellín, Colombia

    2017

  • Este documento debe estar dedicado a un número de personas que

    ni siquiera puedo contar. Han sido muchos, quienes de una u otra

    forma han estado conmigo durante este largo proceso,

    apoyándome en los momentos de debilidad y cuando estuve a

    punto de desfallecer. Este trabajo es el resultado de un proceso

    que ha pasado por diferentes etapas y donde cada una de éstas ha

    tenido un impacto significativo en la forma de percibir las cosas y,

    por ende, de finalmente definir este documento. Sin el apoyo,

    consejo y ayuda de muchos esto no habría sido posible.

    A Dios por darme la vida, la fortaleza y el espíritu necesarios

    para llegar hasta el final.

    A mi familia, por apoyar y ayudarme a elegir siempre lo mejor

    para salir adelante. Especialmente mis padres, que, aunque no

    comprenden mucho de lo que hago, siempre estuvieron para

    escuchar mis conversaciones y lecturas, darme su respaldo y

    ánimo para continuar y finalmente terminar.

    A mi pareja, por ser un gran soporte a pesar de la distancia,

    por apoyar mis decisiones, incluso cuando parecían ir en contra de

    todo y estar ahí para escucharme.

    A todos los educadores y tutores que formaron parte de este

    proceso en cualquiera de sus etapas. Por sus enseñanzas,

    formación y seguimiento.

    :)

  • Resumen

    La mantenibilidad es un concepto que se utiliza en múltiples contextos, haciendo alusión

    a la cantidad de trabajo o esfuerzo necesario para que un sistema cualquiera conserve su

    funcionamiento frente a determinados cambios que se introduzcan o a errores que se

    presenten. La mantenibilidad se puede aplicar en el contexto del desarrollo de software y

    puntualmente en el desarrollo de aplicaciones web. Para este último, mantenibilidad se

    define como la facilidad o dificultad para modificar la aplicación web, ya sea a causa de un

    arreglo que se debe realizar o de una mejora que se desea implementar. La mantenibilidad

    es un atributo que tiene un impacto significativo en la calidad general de una aplicación

    web y, de hecho, de no ser tenida en cuenta durante el diseño y la implementación del

    proyecto, puede acarrear a sobrecostos durante el tiempo de vida de la misma. En este

    trabajo muestran los factores que impactan directamente la mantenibilidad de una

    aplicación, especialmente durante el proceso de implementación de la misma.

    Palabras clave: mantenibilidad, aplicaciones web, desarrollo de software

  • VIII Factores de mantenibilidad en el desarrollo de aplicaciones web

    Abstract

    The maintainability is a concept used in multiple contexts, alluding to the amount of work

    or effort necessary for any system to keep its operation against certain changes introduced

    or errors that arise. The maintainability can be applied in the context of software

    development and in that way in the development of web applications. For the latter,

    maintainability is defined as the ease or difficulty of modifying the web application, either

    because of an adjustment that must be made or an improvement to be implemented. The

    maintainability is an attribute within a significant impact on the overall quality of a web

    application and, in fact, if it is not taken into account, during project design and

    implementation, can lead to over costs during the lifetime of the project. This document,

    show the factors directly influences the maintainability of an application, especially during

    the implementation process.

    Keywords: maintainability, web applications, software development

  • Contenido IX

    Contenido

    Pág.

    Introducción .................................................................................................................... 1 Objetivos del trabajo ..................................................................................................... 3 Organización del documento ........................................................................................ 4

    1. Calidad en el software .............................................................................................. 7 1.1 La mantenibilidad en el software ........................................................................ 8

    1.1.1 Facilidad de análisis ........................................................................................ 9 1.1.2 Facilidad de modificación ................................................................................. 9 1.1.3 Estabilidad ..................................................................................................... 10 1.1.4 Facilidad de pruebas ..................................................................................... 11

    2. La mantenibilidad de una aplicación web ............................................................ 13 2.1 Factores de mantenibilidad para la implementación de aplicaciones web ........ 14 2.2 Escenarios concretos para los factores de mantenibilidad en una aplicación web 16

    3. Implementación de los factores de mantenibilidad en una aplicación web ....... 19 3.1 Modularidad ..................................................................................................... 19 3.2 Consistencia ..................................................................................................... 20 3.3 Simplicidad: ...................................................................................................... 22 3.4 Facilidad de lectura .......................................................................................... 23 3.5 Promedio de “variables vivas” .......................................................................... 24 3.6 Proporción de comentarios ............................................................................... 25 3.7 Comentarios apropiados .................................................................................. 26 3.8 Objetos y clases ............................................................................................... 26

    4. Prototipo desarrollado y sus factores de mantenibilidad ................................... 29 4.1 Modularidad ..................................................................................................... 32 4.2 Consistencia ..................................................................................................... 34 4.3 Simplicidad ....................................................................................................... 37 4.4 Facilidad de lectura .......................................................................................... 39 4.5 Promedio de “variables vivas” .......................................................................... 40 4.6 Proporción de comentarios ............................................................................... 41 4.7 Comentarios apropiados .................................................................................. 42 4.8 Objetos y clases ............................................................................................... 43 4.9 Escenario concreto de mantenibilidad en el prototipo implementado................ 45

    5. Conclusiones y recomendaciones ........................................................................ 53 5.1 Conclusiones .................................................................................................... 53

  • X Factores de mantenibilidad en el desarrollo de aplicaciones web

    5.2 Recomendaciones ............................................................................................ 54 Bibliografía .................................................................................................................. 57

  • Lista de figuras XI

    Lista de figuras

    Pág.

    Figura 4-1: Diagrama de clases completo del sistema de gestión de trabajos dirigidos

    de grado (Acevedo Orrego, 2008) .................................................................................. 29

    Figura 4-2: Diagrama entidad-relación simplificado para el prototipo ............................. 31

    Figura 4-3: Capas principales de la aplicación web ....................................................... 32

    Figura 4-4: Modularidad al interior de las capas ............................................................ 33

    Figura 4-5: Modularidad a nivel del código fuente ......................................................... 34