Mtricas y herramientas para evaluar software libre
Conceptos Basicos:
Calidad: Grado en el que un conjunto de caractersticas cumple con los
requisitos. Satisfaccin del cliente y conformidad con sus requisitos.
Medida: Proporciona una indicacin cuantitativa de la cantidad,
dimenciones o tamao de algunos atribbutos.
Medicion: Acto de determinar una medida
Mtrica: Es una medida del grado en que un sistema, componente o
preceso posee un atributos.
Las mtricas del Software comprenden un amplio rango de actividades
diversas, estas son algunas:
Asegurameinto y control de calidad
Modelos de fiabilidad
Modelos y evaluacion de ejecucin
Modelos y medidas de productividad
Clasificacin de las mtricas de software
Segn los criterios:
o Complejidad :
Se define la medicin de la complejidad: volumen, tamao,
anidaciones y configuraciones.
o Calidad:
Metricas que definen la calidad del software:
Exactitud
Estructuracin o modularidad
Pruebas
Mantenimiento
o Competencia
Mtricas que intentan valorar o medir las actividades de
productividad de los programadores con respecto a:
Certeza
Rapidez
Eficiencia
Competencia
o
Desempeo
Mtricas que miden la conducta de mdulos y sistemas de un
software, bajo la supervisin del SO o hardware.
Estilizadas
Mtricas de experimentacin y de preferencia:
Estilo de cdigo
Conveciones
Limitaciones.
Segn el contexto en que se aplican
o Mtricas de proceso
Se carateriza por
El control y ejecucin delproyecto
Medicion de tiempos de las fases
o
Metricas de proyecto
Permite evaluar el estado del proyecto
Permiten seguir la pista de los riesgos
Mtricas de producto
Se centran en las caractersticas del software y no en como fue
producido
Tambin son productos los artefactos, documentos, modelos y
componentes que conforman el software
Se miden cosas como el tamao, la calidad la totalidad, la
volatilidad y el esfuerzo.
Mtricas de calidad
o Modelo de MCCALL (1997)
Los factores de calidad se concentran en tres aspectos
importantes de un producto de software: caractersticas
operativas, capacidad de cambios y adaptabilidad a nuevos
entornos.
Identifica una serie de criterios, tales como rastreabilidad,
simplicidad, capacidad de expansin, etc.
Factor
Criterio
Rastreabilidad
Correctitud
Completitud
Consistencia
Consistencia
Confiabilidad
Exactitud
Tolerancia a fallas
Eficiencia de ejecucin
Eficiencia
Eficiencia de
almacenamiento
Control de acceso
Integridad
Auditora de acceso
Operabilidad
Usabilidad
Entrenamiento
Comunicacin
Modularidad
Interoperabilida Similitud de
d
comunicacin
Similitud de datos.
Simplicidad
Mantenibilidad
Concrecin
Simplicidad
Instrumentacin
Capacidad de
Prueba
Auto-descriptividad
Modularidad
Auto-descriptividad
Capacidad de expansin
Flexibilidad
Generalidad
Modularidad
Auto-descriptividad
Independencia del
Portabilidad
sistema
Independencia de
mquina
Reusabilidad
Auto-descriptividad
Generalidad
Modularidad
Independencia del
sistema
Independencia de
mquina
o
Modelo de FURPS.
Modelo desarrollado por Hewlett- Packard (HP) en 1987, desarrollando un
conjunto de factores de calidad de software y sus respectivos atributos.
Software libre y calidad
La calidad se ha convertido en uno de los elementos diferenciadores en el
mbito mundial entre las compaas desarrolladoras de sistemas de software.
La bsqueda de la calidad de los sistemas ha propiciado la creacin de
modelos, frameworks y metodologas para evaluar y asegurar su calidad.
El Software Libre tambin ha tenido un impulso que ha despertado un inters
particular en sus herramientas y modelos de negocios, pero sobre todo en sus
procesos de desarrollo.
o
o
o
Software Quality Observatory for Open Source Software (SQO-OSS).
Modelo de QSOS (Qualification and Selection of Open Source Software)
surge en el ao 2006, es para desarrollar un conjunto de herramientas
de evaluacin de software con las que se podr analizar y comparar la
calidad del cdigo de fuente y probar su idoneidad para su despliegue
empresarial, estas herramientas slo estimarn la calidad del producto.
Uno de los modelos que permite la cuantificacin y calificacin de
software. Est orientado exclusivamente al producto de software.
Evaluar
- introducir los datos de software
- definir los criterios que sirven de
base de clculo
- organizar criterios en el eje
- criterios relacionados - oss
- criterios tcnicos y funcionales
- Puntuacin contra criterios
definidos
- riesgos de acceso relacionadas
con la naturaleza oss
- anotar las habilidades tcnicas /
funcionales
generales
Pasos de
la
Definicion
Metodologa
QSOS
Calificar
- definir nuevos criterios si es
necesario
- definir criterios obligatorios
- reorganizar eje de evaluacin si
es necesario
Seleccionar
-organizar los resultados en
mltiples ejes
-comparar entre varias
soluciones, matriz de
comparacin
- Seleccionar
Pasos de la metodologa (QSOS)
El objetivo de este paso es definir varios elementos de la tipologa a ser
utilizada por los 3 pasos que siguen. Los marcos de referencia son:
Paso 1: Definicin
o
Familia de Software.
Este aspecto responde la pregunta Qu tipo
analizando?.
Tipos de Licencia.
Clasificacin de las licencias ms comunes de
abierto.
de software estamos
Tipos de comunidades.
Software Libre y de cdigo
Clasificacin de las comunidades que
Open Source.
pueden desarrollar Software Libre u
Paso 2: Evaluacin
Este paso tiene como objetivo la coleccin de
informacin por parte de las
comunidades de cdigo abierto. Esta evaluacin comprende la elaboracin de
la tarjeta de identificacin del software, as como la elaboracin de la hoja de
evaluacin del software.
La tarjeta de identificacin del software contiene datos y hechos acerca del
software, es
utilizada como base para el proceso de
elementos como nombre,
evaluacin. Contiene
fechas de creacin, tipo de software autores,
descripcin general, los servicios que
presenta, aspectos tcnicos y
funcionales, entre otros.
Por otra parte la hoja de evaluacin, contempla la identificacin, descripcin
y anlisis en detalle de cada versin que se presenta del software.
La tarjeta de identificacin cubre lo siguiente:
Informacin general.
Nombre del software
Referencia, fecha de creacin, fecha de elaboracin de esta tarjeta
Autor
Tipo de software
Servicios existentes.
Documentacin
Aspectos tcnicos y funcionales.
Tecnologas de implementacin
Funcionalidades detalladas
Paso 3: Calificacin
El objetivo de este paso es definir los filtros que traduzcan las necesidades y
restricciones relacionadas con la seleccin del software de cdigo abierto en
un contexto especifico. Para ello se definen niveles de filtros sobre el software
en base:
Tenemos cuatro tipos de filtros:
Filtros sobre la tarjeta de identificacin.
Filtros sobre las funcionalidades.
Filtros sobre los riesgos desde la perspectiva del usuario.
Filtros sobre los riesgos desde la perspectiva del proveedor de servicios.
Paso 4: Seleccin
Este paso tiene como objetivo identificar el
software que contenga y
satisfaga los requerimientos de usuario, o de manera ms general permita la
comparacin de software de una misma familia. Puede ser de dos modos: un
modo estricto (seleccin estricta), y otro un
holgada).
La seleccin estricta
poco ms holgado (seleccin
Se basa en la eliminacin
del software tan pronto como el software no
cumpla con lo formulado en el paso de
Calificacin. Este mtodo es muy
restrictivo y puede no seleccionar software alguno.
La seleccin holgada:
Se basa en darle
puntuacin nuevamente al software dependiendo
de lo
obtenido en el paso de Evaluacin. Al final se escoge el software con ms (o
menos) puntos.
Mtricas usadas por QSOS
Bsicamente la metodologa busca dar indicadores sobre la funcionalidad que
presta un software determinado y los riesgos que podran correr un usuario y
un proveedor de servicios con dicho software.
Para obtener esos indicadores QSOS utiliza dos tipos de mtricas:
Mtricas generales:
Que se aplican a todo tipo de Software Libre u Open Source.
Mtricas especficas:
Que se aplican a una familia determinada de software.
Entre otras mtricas usadas por QSOS tenemos:
Durabilidad intrnseca (sustentabilidad)
Madurez
Edad
Estabilidad
Historia, problemas conocidos
Probabilidad de forks, fuentes del forking
Adopcin
Popularidad (relacionada con: pblico en general, expertos, ...)
Referencias (si se emplea en alguna solucin conocida)
Comunidad de contribuyentes (nivel de actividad)
Libros disponibles
Liderazgo de desarrollo
Equipo de desarrollo (tamao)
Estilo de gerencia (dictatorial, un poco dspota, consejo de
arquitectos)
Actividad
Desarrolladores (nmero total de desarrolladores, cargos)
Actividad en solucin de problemas
Actividad en el desarrollo de funcionalidades
Actividad en nuevos lanzamientos