PDF de programación - Evaluación de mantenibilidad de un gestor de contenidos open source utilizando métricas de orientación a objetos

Imágen de pdf Evaluación de mantenibilidad de un gestor de contenidos open source utilizando métricas de orientación a objetos

Evaluación de mantenibilidad de un gestor de contenidos open source utilizando métricas de orientación a objetosgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 8 de Marzo del 2018)
204 visualizaciones desde el 8 de Marzo del 2018
576,2 KB
15 paginas
Creado hace 6a (14/07/2013)
Evaluación de mantenibilidad de un gestor de contenidos
open source utilizando métricas de orientación a objetos

Julio Acosta1; Gladys Dapozo1, Cristina Greiner1, Marcelo Estayno2

1Departamento de Informática. Facultad de Ciencias Exactas y Naturales y Agrimensura

Universidad Nacional del Nordeste, Av.Libertad 5450, 3400, Corrientes, Argentina

2Departamento de Informática. Facultad de Ingeniería. Universidad Nacional de Lomas de Zamora,

julio_acosta_01@hotmail.com, {gndapozo, cgreiner}@exa.unne.edu.ar

Ruta 4 Km 2, 1832 Lomas de Zamora, Buenos Aires, Argentina

mestayno@gmail.com




Resumen: Los aspectos vinculados a la mantenibilidad contribuyen a la
calidad del software y también a la decisión favorable de adoptarlo para
su uso, en el caso particular del software libre. En este artículo se
presentan los resultados de la evaluación de un gestor de contenidos de
software libre con el objetivo de conocer el grado de mantenibilidad del
mismo, aplicando métricas Orientadas a Objetos, utilizando
la
metodología Goal-Question-Metrics. De acuerdo a los resultados
obtenidos se puede presumir que el software Joomla es un proyecto
estable y maduro, en el que se observa un crecimiento sistemático a lo
largo del tiempo, y mejoras en el aspecto específico de mantenibilidad
evaluado.

Palabras claves: calidad de software, mantenibilidad, software libre

1. Introducción

1.1. Importancia de la mantenibilidad en el software libre

En la elección de una plataforma de desarrollo, lenguaje de programación, gestores de
contenidos web etc., un factor crucial a la hora de decidir cuál adoptar es la calidad
del soporte que brindan al usuario y la frecuencia de las actualizaciones que
incorporan correcciones a los errores reportados por los usuarios. Este es un factor
que las organizaciones tienen en cuenta en la decisión de adquirir software propietario
en lugar de software libre.
En general, los desarrolladores de software con licencia propietaria lo hacen bajo
procesos de desarrollo certificados por normas de calidad, por tanto pueden establecer
un contrato de garantía de calidad con sus compradores, situación que no se presenta
en el desarrollo de software libre no generan software dado que, en normalmente no
existe una empresa constituida formalmente con miembros totalmente dedicados a la
producción del software, sino que son desarrollos colaborativos en los cuales
contribuyen cientos de programadores distribuidos por todo el mundo.
Sin embargo, el software libre ha crecido considerablemente debido precisamente a su
filosofía de desarrollo abierta y distribuida, permitiendo generar cada vez software
más confiable y mantenible, debido a las constantes actualizaciones que se lanzan
ante los reportes de errores. En la actualidad, juega un importante papel en el mundo
de Internet, donde más del 67% de los servidores son libres. Esto da cuenta de que

10masJornadasArgentinasdeSoftwareLibre,JSL201342JAIIO-JSL2013-ISSN:1850-2857-Page15 Internet tal y como se conoce no sería lo mismo sin software libre, o al menos sería
más costoso [1].
En este contexto, interesa conocer las características del software libre en relación al
atributo de mantenibilidad. De acuerdo con Herbold [2], la mantenibilidad describe
aspectos no funcionales como testeabilidad, comprensibilidad, extensibilidad. Señala
que si estas características se cumplen satisfactoriamente, se puede decir que el
software será mantenible y por lo tanto, la detección como la corrección de errores
será rápida y eficiente, entre otras ventajas.
Por su parte, la norma ISO 9126 sostiene que mantenibilidad es uno de los factores
que todo software de calidad debe cumplir, y para lograrlo el software debe tener
entre sus características la facilidad de análisis para la rápida detección de errores,
facilidad de cambio y corrección, así también como la facilidad de pruebas.
De este modo, en un software mantenible, ante el reporte de un error, este debería ser
rápidamente detectado y corregido.
Por tal motivo, conocer el grado de mantenibilidad de un producto software
contribuye favorablemente en la decisión de utilización del mismo.
Para inferir la facilidad de mantenimiento es necesario realizar determinadas
mediciones en el software. Según Fenton y Pfleeger [3], la medición es el proceso
por el cual se asignan números o símbolos a los atributos de las entidades en el mundo
real, de forma que los describen de acuerdo con reglas claramente definidas. Estas
reglas son conocidas como “métricas". De acuerdo a los atributos de calidad
observados, se obtendrá un conjunto de métricas que indicarán el grado en que un
producto se ajusta a un estándar definido, comparándolo con un umbral previamente
establecido.

1.2. El proceso de medición del software – Métricas OO

El objetivo de todo proceso de medición es recopilar indicadores cuantitativos sobre
entidades software, siendo una entidad software todo elemento software sobre el que
se puede aplicar un proceso de medición y que están caracterizadas por una serie de
atributos (tamaño, tiempo, etc.).
Las métricas para sistemas orientados a objetos (OO) hacen hincapié en los conceptos
básicos del paradigma de programación OO, tales como el encapsulamiento, la
ocultación de la información, la herencia, técnicas de abstracción y polimorfismo.
El ocultamiento de información suprime los detalles operativos de un componente de
un programa, brindando solamente la información necesaria para acceder a ese
componente. Un sistema OO bien diseñado debería impulsar al ocultamiento de
información. Por tanto, aquellas métricas que proporcionen un índice del grado de
ocultamiento proporcionarán un índice de la calidad del diseño OO.
Por su parte, la herencia es un mecanismo que hace posible que los compromisos de
un objeto se difundan a otros objetos. La herencia se produce a lo largo de todos los
niveles de la jerarquía de clases. Las métricas relacionadas a esta característica
cuentan el número de descendientes (número de instancias inmediatas de una clase),
número de predecesores (número de generalizaciones inmediatas), grado de
anidamiento de la jerarquía de clases (profundidad de una clase dentro de una
jerarquía de herencia) y otros. Son un indicador de la reutilización, así también como
de la complejidad.

10masJornadasArgentinasdeSoftwareLibre,JSL201342JAIIO-JSL2013-ISSN:1850-2857-Page16 La abstracción es un mecanismo que permite al diseñador centrarse en los detalles
esenciales de algún componente de un programa (dato o proceso) dejando de lado los
detalles de nivel inferior. Cuando los niveles de abstracción van elevándose, se
obtiene una visión más general de un concepto u objeto. De manera inversa, niveles
menores de abstracción, proporcionan una visión más específica de un concepto u
objeto. Dado que una clase es una abstracción que se puede visualizar con distintos
niveles de detalles, y de muchas maneras diferentes, las métricas OO representan la
abstracción en términos de medidas de una clase.
Diversos estudios identificaron la correlación entre métricas OO, como las métricas
CK (Chidamber y Kemerer), y la localización de defectos [4], la relación entre
acoplamiento de objetos y atributos de calidad externos con la propensión a fallos, y
la aplicación de medición de acoplamiento para tareas de mantenimiento del software
[5]. Por su parte, Cartwright and Shepperd [6] analizaron un sistema desarrollado en
C++ (de 1333 kloc) y observaron que las clases que participan en jerarquías de
herencia de muchos niveles tienen mayor densidad de defectos que otras clases. Por
tanto, las métricas que indican profundidad en el árbol de herencia y número de hijos
pueden ser usadas para identificar clases que son complejas y propensas a fallo [4].
Por su parte Arisholm [7] menciona que las métricas de acoplamiento son indicadores
significativos de propensión a cambios al igual que las clases de gran tamaño [8].
De igual modo, existe una variedad de métricas OO que son un buen indicador de
mantenibilidad, y que están discriminadas en función del aspecto a medir (diseño,
complejidad, etc.).
A continuación una breve reseña de las métricas utilizadas en este trabajo, que
permiten determinar el grado de mantenibilidad.

1.2.1. Métricas MOOD (Metrics for Object oriented Design)

 MHF (Method Hiding Factor) - Proporción de métodos ocultos: Es la proporción
de la suma de los métodos privados en todas las clases respecto al número total
de métodos definidos en el sistema. Se propone como una medida de
encapsulamiento y cantidad relativa de información oculta. Como se señaló, un
mayor grado de ocultamiento da cuenta de la calidad del diseño. En [9] se ha
demostrado empíricamente que cuando se incrementa el valor de esta métrica, la
densidad de defectos y el esfuerzo necesario para corregirlos disminuye.

 AHF (Attribute Hiding Factor) - Proporción de atributos ocultos: De manera
similar, representa la proporción de la suma de las invisibilidades de los atributos
en todas las clases respecto al número total de atributos definidos en el sistema.
Se propone como una medida de encapsulamiento. Es recomendable que todos
los atributos sean privados, por lo que, idealmente, la proporción de invisibilidad
debe ser el 100%.

 MIF (Method Inheritance Factor) - Proporción de métodos heredado
  • Links de descarga
http://lwp-l.com/pdf9316

Comentarios de: Evaluación de mantenibilidad de un gestor de contenidos open source utilizando métricas de orientación a objetos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad