Wikipedia

Resultados de la búsqueda

domingo, 17 de marzo de 2013

ESTÁNDARES Y MODELOS DE CALIDAD DEL SOFTWARE

INTRODUCCION

En un escenario en el que los sistemas de software se desarrollan y construyen por terceros proveedores, el contratante del servicio, como primer receptor del mismo, en muchos casos debe confiar en el buen hacer del proveedor seleccionado, especialmente si no dispone de los medios apropiados para auditar la entrega y en su caso argumentar defectos en el proceso de desarrollo. 

En general, una vez validado que el sistema responde a los principales requisitos funcionales especificados, el usuario realizará las pruebas de aceptación, corrigiéndose los errores encontrados y traspasándose al fin al entorno de producción. Sin embargo, en muy pocas ocasiones se validan de manera rigurosa los requisitos funcionales y los no funcionales, o se ejecutan validaciones que aseguren que el sistema es lo suficientemente robusto y estable como para pasar a un entorno productivo con las garantías adecuadas.
Tampoco se realizan por ejemplo estimaciones de los recursos necesarios para el sistema, imprescindibles para un adecuado dimensionamiento de los servidores, o se anticipan eventuales picos de trabajo, o en resumen, todo aquello que al fin asegure la satisfacción total del usuario. 

Hay que considerar entonces que estas eventualidades además de provocar un coste económico importante, principalmente por el elevado número de personas involucradas en su resolución, también producen la pérdida de confianza de los usuarios en el sistema.

Calidad del Software
la calidad del software es un concepto complejo que no es directamente comparable con la calidad de la manufactura de producto. Los productos de software se han convertido hoy en dia en uno de los principales objetivos estrategicos de las organizaciones debido a que, cada vez mas, los procesos mas importantes de las organizaciones y por lo tanto su supervivencia dependen del buen funcionamiento de los sistemas de software.

El significado de la palabra calidad genera mucha confusión, quizás por la multidimensionalidad del propio concepto. por lo anterior el glosario de estándares de computación IEEE Std. 610 – 1991,define la calidad del software como “el grado con el que un sistema, componente o proceso cumple los requerimientos especificados y las necesidades o expectativas del cliente o usuario”.

CALIDAD DEL PRODUCTO SOFTWARE
NORMA ISO/IEC

La norma ISO/IEC 9126 de 1991, es la norma para evaluar los productos de software, esta norma nos indica las características de la calidad y los lineamientos para su uso, fue desarrollada para dar soporte a aquellas necesidades; las características de calidad y sus métricas asociadas, pueden ser útiles tanto como para evaluar el producto como para definir los requerimientos de la calidad y otros usos.Esta norma definida por un marco conceptual basado en los factores tales como Calidad del Proceso, Calidad del Producto del Software y Calidad en Uso; según el marco conceptual, la calidad del producto, a su vez, contribuye a mejorar la calidad en uso.
La norma ISO/IEC 9126 presentan dos modelos de calidad, el primero referido a la calidad interna y externa y el segundo modelo referido a la calidad en uso, a continuación se describe cada uno de ellos.

La calidad externa se define como la totalidad de las características del producto software desde una perspectiva externa. Es la calidad del software cuando es ejecutado, la cual es típicamente medida y evaluada mientras se prueba en un ambiente simulado, con datos simulados y usando métricas externas. Durante las pruebas, muchas fallas serán descubiertas y eliminadas. Sin embargo algunas fallas todavía pueden permanecer después de las pruebas. Como es difícil corregir la arquitectura de software u otros aspectosfundamentales del diseño del software, el diseño fundamental permanece sin cambios a través de las pruebas.
Figura 1. Imagen tomada de la página web: http://www.mginformatica.com.ar/modelo-de-calidad.htm
La norma ISO/IEC 9126 define la calidad en uso como la perspectiva del usuario de la calidad del producto software cuando éste es usado en un ambiente específico y un contexto de uso específico. Éste mide la extensión para la cual los usuarios pueden conseguir sus metas en un ambiente particular, en vez de medir las propiedades del software en si mismo.

El modelo de la calidad en uso muestra un conjunto de 4 características: efectividad, productividad, integridad, y satisfacción.

Figura 2. Imagen tomada de la página web: http://olgacarreras.blogspot.com.es/2012/03/estandares-formales-de-usabilidad-y-su.html


 NORMA ISO/IEC - 14598

El estandar ISO/IEC 14598 es actualmente usado como base metodológica para la evaluación del producto software. En sus diferentes etapas, establece un marco de trabajo para evaluar la calidad de los productos de software proporcionando, además, métricas y requisitos para los procesos de evaluación de los mismos.

La norma define las principales características del proceso de evaluación
  • Repetitividad.
  • Reproducibilidad.
  • Imparcialidad.
  • Objetividad.
Para estas características se describen las medidas concretas que participan:
  • Análisis de los requisitos de evaluación.
  • Evaluación de las especificaciones.
  • Evaluación del diseño y definición del plan de evaluación.
  • Ejecución del plan de evaluación.
  • Evaluación de la conclusión.
La Norma ISO/IEC 14598 define el proceso para evaluar un producto de software, el mismo consta de seis partes:
  • ISO/IEC 14598-1 Visión General: provee una visión general de las otras cinco partes y explica la relación entre la evaluación del producto software y el modelo de calidad definido en la ISO/IEC 9126.

  • ISO/IEC 14598-2 Planeamiento y Gestión: contiene requisitos y guías para las funciones de soporte tales como la planificación y gestión de la evaluación del producto del software.

  • ISO/IEC 14598-3 Proceso para desenvolvedores: provee los requisitos y guías para la evaluación del producto software cuando la evaluación es llevada a cabo en paralelo con el desarrollo por parte del desarrollador.

  • ISO/IEC 14598-4 Proceso para adquirientes: provee los requisitos y guías para que la evaluación del producto software sea llevada a cabo en función a los compradores que planean adquirir o reutilizar un producto de software existente o pre-desarrollado.

  • ISO/IEC 14598-5 Proceso para avaladores: provee los requisitos y guías para la evaluación del producto software cuando la evaluación es llevada a cabo por evaluadores independientes. 
  • ISO/IEC 14598-6 Documentación de Módulos: provee las guías para la documentación del módulo de evaluación. 
Los servicios relacionados con la evaluación de software de productos son generalmente adaptados a las necesidades de los usuarios finales individuales o proveedores, en función de por qué se pidió la evaluación. Los servicios de evaluación de software incluyen:
  • Definición de perfiles de calidad de referencia de software
  • Evaluación de acuerdo con los modelos de calidad predefinidos
  • Certificación de la calidad del software de acuerdo a los modelos de calidad y normas
  • Las comparaciones entre productos
  • La reingeniería del software
  • Servicio de Monitoreo de calidad del producto.
NORMA ISO/IEC 25000 (SquaRE)

ISO 25000:2005 (SQuaRE -Software Quality Requirements and Evaluation) es una nueva serie de normas que se basa en ISO 9126 y en ISO 14598 (Evaluación del software). Uno de los principales objetivos de la serie SQuaRE es la coordinación y harmonización del contenido de ISO 9126 y de ISO 15939:2002 (Measurement Information Model). ISO 15939 tiene un modelo de información que ayuda a determinar que se debe especificar durante la planificación, performance y evaluación de la medición. Para su aplicación, cuenta con los siguientes pasos: Recopilar los datos, Preparación de los datos y Análisis de los datos.

Su objetivo principal es guiar el desarrollo de los productos de software con la especificación y evaluación de requisitos de calidad. Establece criterios para la especificación de requisitos de calidad de productos software, sus métricas y su evaluación. SQuaRE está formada por las divisiones siguientes:
  • ISO/IEC 2500n. División de gestión de calidad. Los estándares que forman esta división definen todos los modelos comunes, términos y referencias a los que se alude en las demás divisiones de SQuaRE.
  • ISO/IEC 2501n. División del modelo de calidad. El estándar que conforma esta división presenta un modelo de calidad detallado, incluyendo características para la calidad interna, externa y en uso.
  • ISO/IEC 2502n. División de mediciones de calidad. Los estándares pertenecientes a esta división incluyen un modelo de referencia de calidad del producto software, definiciones matemáticas de las métricas de calidad y una guía práctica para su aplicación. Presenta aplicaciones de métricas para la calidad de software interna, externa y en uso.
  • ISO/IEC 2503n. División de requisitos de calidad. Los estándares que forman parte de esta división ayudan a especificar los requisitos de calidad. Estos requisitos pueden ser usados en el proceso de especificación de requisitos de calidad para un producto software que va a ser desarrollado ó como entrada para un proceso de evaluación. El proceso de definición de requisitos se guía por el establecido en la norma ISO/IEC 15288 (ISO, 2003).  
  • ISO/IEC 2504n. División de evaluación de la calidad. Estos estándares proporcionan requisitos, recomendaciones y guías para la evaluación de un producto software, tanto si la llevan a cabo evaluadores, como clientes o desarrolladores.
  • ISO/IEC 25050–25099. Estándares de extensión SQuaRE. Incluyen requisitos para la calidad de productos de software “Off-The-Self” y para el formato común de la industria (CIF) para informes de usabilidad.
Al igual que la norma ISO/IEC 9126, este estándar define tres vistas diferenciadas en el estudio de la calidad de un producto:
  • Vista interna: esta vista se ocupa de las propiedades del software como: el tamaño, la complejidad o la conformidad con las normas de orientación a objetos.
  • Vista externa: vista que analiza el comportamiento del software en producción y estudia sus atributos, por ejemplo: el rendimiento de un software en una máquina determinada, el uso de memoria de un programa o el tiempo de funcionamiento entre fallos.
  • Vista en uso: mide la productividad y efectividad del usuario final al utilizar el software.

La primera puede utilizarse desde las primeras fases del desarrollo, permitiendo detectar deficiencias en el software en edades muy tempranas del ciclo de vida del software.

La segunda, sin embargo, necesita que el producto software este completo y se utilizará por tanto en el pase a producción del producto, siendo muy dependiente de la máquina donde se ejecute.

Por último la tercera vista que también estudia el producto software finalizado será dependiente del usuario y estará condicionada a los factores personales del mismo.
Figura 3.  Modelo de Referencia de Medición de la Calidad del Producto Software, según la ISO/IEC 25000. Imagen tomada de la página web: http://iso25000.com/index.php/25000.html

Video

video en el cual se da una explicacion del por que la importancia del aseguramiento de la calidad en el software.

Importancia del Aseguramiento de la Calidad del Software  





MÉTRICAS DE CALIDAD DEL SOFTWARE

Los términos de métricas, medición, y medida en muchos de los casos han sido relacionados con los instrumentos utilizados mediante un método específico al acto mecánico de tomar una medición mediante escalas cualitativas o cuantitativas que determinan los valores de esa medición, pero los tres conceptos son diferentes.


Definiciones

Figura 4 Imagen tomada de la página web:http://ldc.usb.ve/~abianc/materias/ci4712/metricas.pdf

‣ Medida
Proporciona una indicación cuantitativa de la cantidad, dimensiones o tamaño 
de algunos atributos de un producto.

‣ Medición
Acto de determinar una medida.
‣ Métrica
Es una medida del grado en que un sistema, componente o proceso posee un atributo dado.

Métricas de Software

‣ Las métricas del Software comprenden un amplio rango de actividades diversas, estas son algunas:

‣ Aseguramiento y control de calidad.

‣ Modelos de fiabilidad.
‣ Modelos y evaluación de ejecución.
‣ Modelos y medidas de productividad.



Figura 4 Imagen tomada de la página web:http://ldc.usb.ve/~abianc/materias/ci4712/metricas.pdf

Proceso de recopilación de métricas de Software


Clasificación de las métricas de Software

Según los criterios:

  • de complejidad: Métricas que definen la medición de la complejidad: volumen, tamaño, anidaciones, y configuración.

  • de calidad: Métricas que definen la calidad del software: exactitud, estructuración o modularidad, pruebas, mantenimiento.
  • de competencia: Métricas que intentan valorar o medir las actividades de productividad de los programadores con respecto a su certeza, rapidez, eficiencia y competencia
  • de desempeño: Métricas que miden la conducta de módulos y sistemas de un software, bajo la supervisión del SO o hardware.
  • estilizadas: Métricas de experimentación y de preferencia: estilo de código, convenciones, limitaciones, etc.
Según el contexto en que se aplican:


  • Métricas de proceso
‣ Se recopilan de todos los proyectos, y
durante un largo periodo de tiempo


‣ Caracterizados por:


‣ Control y ejecución del proyecto.
‣ Medición de tiempos de las fases.




  • Métricas de proyecto
‣ Permiten evaluar el estado del proyecto.
‣ Permiten seguir la pista de los riesgos.


  • Métricas de producto
Se centran en las características del software
y no en como fue producido.


‣ También son productos los artefactos,
documentos, modelos, y componentes que
conforman el software.


‣ Se miden cosas como el tamaño, la calidad, la
totalidad, la volatilidad, y el esfuerzo.



Métricas de Calidad - Modelos conocidos

Modelo de MCCALL (1977)

• Describe la calidad como un concepto elaborado mediante relaciones jerárquicas entre factores de calidad, en base a criterios.

• Los factores de calidad se concentran en tres aspectos importantes de un producto de software: características operativas, capacidad de cambios y adaptabilidad a nuevos entornos.


• Identifica una serie de criterios, tales como rastreabilidad, simplicidad, capacidad de expansión, etc.


• Las métricas desarrolladas están relacionadas con los factores de calidad y la relación que se establece se mide en función del grado de cumplimiento de los criterios.


Modelo de FURPS (1987)

• Modelo desarrollado por Hewlett-Packard (HP) en 1987, desarrollando un conjunto de factores de calidad de software y sus respectivos atributos.

• Funcionalidad (Functionality), usabilidad (Usability), confiabilidad (Reliability), desempeño (Performance) y capacidad de soporte (Supportability).


• Basado en el modelo de MCCALL.


• Se utilizan para establecer métricas de la calidad para todas las actividades del proceso de desarrollo de un software, inclusive de un sistema de información.


Modelo de DROMEY (1996)

• Resalta el hecho de que la calidad del producto es altamente determinada por los componentes del mismo (incluyendo documentos de requerimientos, guías de usuarios, diseños, y código),

• Sugiere el uso de cuatro categorías que implican propiedades de calidad, que son: correctitud, internas, contextuales y descriptivas.


Normas ISO 9000 - ISO/IEC 9126

Figura 5 Imagen tomada de la página web:http://ldc.usb.ve/~abianc/materias/ci4712/metricas.pdf


ESTRUCTURA PARA LAS MÉTRICAS TÉCNICAS DEL SOFTWARE

Los principios básicos de la medición, sugeridos por Roche, pueden caracterizarse mediante cinco actividades:

Formulación: Obtención de medidas y métricas del software apropiadas para la representación de software.

Colección: Mecanismo empleado para acumular datos necesarios para obtener las métricas formuladas.

Análisis: Cálculo de las métricas y aplicación de herramientas matemáticas.
Interpretación: Evaluación de los resultados de las métricas en un esfuerzo por conseguir una visión interna de la calidad de la representación.

Realimentación: Recomendaciones obtenidas de a interpretación de métricas técnicas transmiitidas al equipo software.


Video

Video que demuestra algunos de los factores de calidad y las metricas de calidad, también conocido como McCall.


Factores y Metricas de Calidad de Software


AUTO-EVALUACIÓN

Auto-evaluación Estándares y Métricas de calidad del Software


Fuentes