2. Metodología de Evaluación de Software
2.1. Análisis de las Metodologías Existentes para la Evaluación de Software
evolucionado a grandes pasos, ya que en sus inicios se lo hacía de una forma lineal sin seguir una estructura, mientras que en la actualidad se lo hace a través del paradigma de orientación a objetos, facilitando el desarrollo de las aplicaciones informáticas.
Debido a este progreso en el desarrollo de software se cuenta con metodologías y técnicas propias de la Ingeniería de Software para crear aplicaciones de calidad, capaces de cubrir las necesidades del usuario final.
A pesar del cuidado que hoy se tiene en el desarrollo de software todavía pueden surgir inconvenientes entre los requerimientos del usuario y el producto final debido a factores como:
• La falta de interés y la adecuada participación de los usuarios en las fases de análisis, diseño y pruebas. El usuario en algunos casos no asimila la importancia de su participación. Su aporte es valioso porque de sus necesidades nacerán las propuestas de solución. Si este proceso se toma a la ligera o como un simple formalismo con el que debe cumplir, el resultado será que el desarrollador establecerá un Sistema basado en requerimientos erróneamente planteados o peor aún falsos.
• Casos en los que el equipo de desarrollo toman muy poco en cuenta a los usuarios, y no elaboran metodologías para descubrir las necesidades del usuario, es decir se basan en supuestos. Esto conlleva a que el software no corresponda a la realidad requerida.
Estas falencias representan grandes inconvenientes en el correcto funcionamiento de una empresa, de ahí nace la necesidad de tener una forma de validar las aplicaciones, es decir para que ejecuten los procesos de forma correcta, cumplan con los
37
requerimientos del usuario, mantenga la integridad de los datos y se haga una correcta utilización de los recursos, tanto para el software desarrollado por la propia empresa o si es adquirido a un tercero.
Una de las formas para determinar si un Sistema Informático cumple con los requerimientos antes mencionados, son las Auditorías que reflejarán el estado real del Software con el que cuenta la empresa.
Además de las auditorías existe la Certificación de Calidad del Software que evalúa los atributos y requerimientos de un programa o sistema para asegurar el cumplimiento de los requisitos específicos y aprobados por el cliente.
Es preciso que al momento de aplicar una auditoria o cualquier proceso de Evaluación de Software se deba realizar la planificación respectiva, misma que permitirá disponer de la documentación para guiar el proceso y así detectar falencias a corto o largo plazo necesario para respaldar la toma de decisiones. Uno de los beneficios de estos procesos es brindar calidad en el Software.
La evaluación de la calidad de software resulta compleja puesto que se cuenta con diferentes atributos dependiendo de las expectativas y puntos de vista del evaluador. Si la evaluación está a cargo del usuario final se consideran características como manejabilidad, tiempos de respuesta, resultados exactos, entre otros. Mientras que si el evaluador es un responsable de sistemas este valorará más la cantidad de recursos que utiliza y como lo hace.
Para normalizar la forma de evaluar la calidad, nacen diferentes modelos que procuran abarcar la mayoría de factores. Para ello proponen la descomposición de atributos en unos más simples y medibles. Este enfoque nos permite conocer a profundidad el software y sus características de calidad.
Estos modelos hacen uso de la descomposición jerárquica que permite crear una estructura partiendo de factores de calidad (atributos de calidad externos), los cuales se descomponen en otros de más bajo nivel denominados criterios de calidad (atributos de calidad interna).
38
Luego se procede a una segunda descomposición, de tal forma que los criterios de calidad sean asociados a atributos que pueden ser medidos a través de las denominadas métricas de calidad.
Diríamos entonces que las métricas son una medida directa de un atributo simple, mientras que estas se combinan para obtener la medida de calidad de Software.
En la actualidad existen normas para certificar la calidad de software, entre ellos tenemos la norma ISO/IEC 9126 y el CMMI que son las de mayor difusión y uso. Existen otras normas pero en su mayoría derivan de la primera.
Para determinar cuál de ellas se adapta mejor al presente estudio, se decidió estudiar las dos normas mencionadas con anterioridad.
a) Capability Maturity Model Integration CMMI
Es un modelo para la mejora y evaluación de procesos para el desarrollo, mantenimiento y operación de sistemas de software.7
CMMI cubre tres áreas muy importantes, que son cubiertas por los modelos de:
a) Desarrollo.- CMMI-DEV.- En él se tratan procesos de desarrollo de productos y servicios.
b) Adquisición.- CMMI-ACQ.- En él se trata la gestión de la cadena de suministro, adquisición y contratación externa en los procesos del gobierno y la industria.
c) Servicios.- CMMI-SVC.- Cubre todas las actividades que requieren gestionar, establecer y entregar servicios.
A diferencia de otros, CMMI no certifica a la Organización, lo que realiza es una evaluación del software a través de calificaciones en un rango de 0 a 5, siempre y cuando cumpla con todos los niveles de madurez:
39
a) Incompleto.- El proceso no se realiza o no se consiguen los objetivos.
b) Ejecutado.- El proceso se ejecuta y se logra su objetivo.
c) Gestionado.- Además de ejecutarse, el proceso se planifica, se revisa y se evalúa para comprobar que cumple los requisitos.
d) Definido.- Además de ser un proceso gestionado se ajusta a la política de procesos que existe en la organización, alineada con las directivas de la empresa.
e) Cuantitativamente Gestionado.- Además de ser un proceso definido se controla utilizando técnicas cuantitativas.
f) Optimizado.- Además de ser un proceso cuantitativamente gestionado, de forma sistemática se revisa y modifica o cambia para adaptarlo a los objetivos del negocio. Mejora continua.8
b) ISO/IEC 9126
Esta norma establece un modelo de calidad sobre el producto del software, el cual se divide en cuatro vistas: Calidad, Interior, Exterior y En Uso, las cuales se dividen en sub categorías conformadas por atributos.
a) 9126-1.- Modelo de Calidad.
En el Modelo de Calidad posee dos partes bien identificadas:
La Calidad Interna y Externa.- La calidad interna, entendida como “la totalidad de las características del producto de software, desde un punto de vista interno” y la calidad externa definida como “la totalidad de las características de producto software desde un punto de vista externo” 9
La Calidad Interna es medible desde un las características intrínsecas como el código fuente y la Calidad Externa mide el comportamiento del producto por ejemplo en una prueba.
8
http://www.globales.es/imagen/internet/Informaci%C3%B3n%20General%20CMMI.pdf http://es.wikipedia.org/wiki/Capability_Maturity_Model_Integration
Influyen en la calidad del proceso, al mismo tiempo que la calidad de uso influye sobre las anteriores.
La Calidad de Uso. del usuario.
Calidad interna, externa y de uso están relacionadas, una se
la otra como capas sucesivas. La calidad del proceso influye en la calidad del producto que a su vez es relevante en la calidad de uso.
El modelo de calidad establecido en la primera parte del estándar, ISO/IEC 9126
estructurado de características y sub manera:
40
Influyen en la calidad del proceso, al mismo tiempo que la calidad de uso influye sobre las anteriores.
La Calidad de Uso.- Es medible Durante la utilización efectiva por parte usuario.
Calidad interna, externa y de uso están relacionadas, una se
la otra como capas sucesivas. La calidad del proceso influye en la calidad del producto que a su vez es relevante en la calidad de uso.
Gráfica 2.1 Modelo de Calidad
El modelo de calidad establecido en la primera parte del estándar, ISO/IEC 9126-1, clasifica la calidad del software en un conjunto estructurado de características y sub-características de la siguiente manera:
Influyen en la calidad del proceso, al mismo tiempo que la calidad de
ación efectiva por parte
Calidad interna, externa y de uso están relacionadas, una se sustenta en la otra como capas sucesivas. La calidad del proceso influye en la calidad del producto que a su vez es relevante en la calidad de uso.9
El modelo de calidad establecido en la primera parte del estándar, clasifica la calidad del software en un conjunto características de la siguiente
b) 9126-2.- Métricas Internas
Son aquellas que no dependen de la ejecución del software (medidas estáticas), beneficiando a los usuarios, evaluadores o desarrolladores para evaluar la calidad del producto de software cuando todavía no es ejecutable. Por ejemplo en el desarrollo de un producto de software, en su diseño (especificación) o la codificación
intrínsecas. El objetivo que se persigue es asegurar la calidad externa y la calidad de uso.
Las métricas internas miden atributos internos o indican los atributos externos, a través de las propiedades estática
entregables del software. Las medidas de las métricas internas usan números o frecuencias de elementos de composición de software, los cuales aparecen, por ejemplo, en las sentencias de código de fuente, control de gráficos, fl de datos y estados de representación de procesos.
c) 9126-3.- Métricas Externas
10
http://www.ongei.gob.pe/Bancos/Banco_Normas/archivos/Guia
41
Gráfica 2.2 Norma ISO/IEC 9126
Métricas Internas
Son aquellas que no dependen de la ejecución del software (medidas státicas), beneficiando a los usuarios, evaluadores o desarrolladores para evaluar la calidad del producto de software cuando todavía no es ejecutable. Por ejemplo en el desarrollo de un producto de software, en su diseño (especificación) o la codificación (código fuente) para medir las propiedades intrínsecas. El objetivo que se persigue es asegurar la calidad externa y la calidad de uso.
Las métricas internas miden atributos internos o indican los atributos externos, a través de las propiedades estáticas de productos intermedios o entregables del software. Las medidas de las métricas internas usan números o frecuencias de elementos de composición de software, los cuales aparecen, por ejemplo, en las sentencias de código de fuente, control de gráficos, fl de datos y estados de representación de procesos.10
Métricas Externas
http://www.ongei.gob.pe/Bancos/Banco_Normas/archivos/Guia-Evaluacion
Son aquellas que no dependen de la ejecución del software (medidas státicas), beneficiando a los usuarios, evaluadores o desarrolladores para evaluar la calidad del producto de software cuando todavía no es ejecutable. Por ejemplo en el desarrollo de un producto de software, en su diseño (código fuente) para medir las propiedades intrínsecas. El objetivo que se persigue es asegurar la calidad externa y la
Las métricas internas miden atributos internos o indican los atributos s de productos intermedios o entregables del software. Las medidas de las métricas internas usan números o frecuencias de elementos de composición de software, los cuales aparecen, por ejemplo, en las sentencias de código de fuente, control de gráficos, flujo
42
Son aquellas aplicables al software en ejecución, es decir miden al producto de software de acuerdo a su comportamiento, a través de la prueba, operación y observación del software. Por ejemplo para la adquisición de un software, se lo debe evaluar considerando los objetivos a los que va orientado de acuerdo al área del usuario.
El beneficio de la métrica externa es que permite a los usuarios, evaluadores, verificadores y desarrolladores evaluar la calidad de un producto de software durante las pruebas o el funcionamiento.
d) 9126-4.- Calidad en las Métricas de Uso
Las métricas de uso, miden la extensión de un producto desarrollado para necesidades específicas de los usuarios permitiendo el cumplimiento de metas propuestas. Es a través de la efectividad, productividad, seguridad y satisfacción, que se evalúa un producto de software en un contexto específico. Están sólo disponibles cuando el producto final es usado en condiciones reales.
Una característica sobresaliente de las métricas de uso es que el usuario final quien determina la calidad del producto, de tal manera que la evaluación se dirige a los resultados que da el software para la empresa, más allá de sus propias características.
La norma ISO/IEC 9126 permite especificar y evaluar la calidad del software desde diferentes puntos de vista como lo son la adquisición, requerimientos, desarrollo, uso, evaluación, soporte, mantenimiento, aseguramiento de la calidad y auditoria del software.
Debemos tener presente que la norma ISO/IEC 9126 es un Modelo Genérico, por ello es necesario adaptarlo a nuestros requerimientos, es decir determinar que sub-características son relevantes y definir métricas específicas para los componentes de software.
Entre estos dos modelos de evaluación se pueden diferenciar en que el CMMI tiene modelos más orientados a procesos específicos, como los de interactuar
43
con los proveedores de servicios, en cambio la norma ISO tiene un enfoque más general, en si su propósito es que la empresa implemente un sistema de calidad independiente del tipo de proceso que tenga.
El Modelo de Calidad ha tenido una amplia acogida, como muestra de ello podemos citar al Instituto Argentino de Normalización y Certificación quienes llevaron a cabo con éxito la Certificación de Producto Software para Celulares utilizando la norma ISO/IEC 9126. Otro ejemplo del uso de la norma la encontramos en la Escuela Superior Politécnica del Litoral de Ecuador, quienes dieron paso al estudio de las Métricas de Calidad de los Sistemas de Información Aplicación en la Certificación de Calidad de un Sistema de una Empresa del Sector Hidrocarburifero a través de una Tesis de Grado.