lunes, 20 de julio de 2009

CALIDAD DEL SOFTWARE

CALIDAD DEL SOFTWARE

Autor: Karen Danixa Palacios Ortiz
U.A.J.M.S – Carrera de Ingeniería Informática
Tarija-Bolivia
Karen_87_p@hotmail.com



Resumen

La calidad del software es una preocupación a la que se dedican muchos esfuerzos. Sin embargo, el software casi nunca es perfecto. Todo proyecto tiene como objetivo producir software de la mejor calidad posible, que cumpla, y si puede supere las expectativas de los usuarios.

En el presente artículo daremos a conocer algunas definiciones de la calidad de software, además se hará referencia al aseguramiento, gestión y control de la calidad de software y otros.


Palabras clave
Calidad, estándares, software, aseguramiento, fiabilidad, eficiencia, integridad, flexiblidad.


1. DEFINICIONES


“Concordancia con los requisitos funcionales y de rendimiento explícitamente establecidos con los estándares de desarrollo explícitamente documentados y con las características implícitas que se espera de todo software desarrollado profesionalmente” (R.S. Pressman, 1993).

“El conjunto de características de una entidad que le confieren su aptitud para satisfacer las necesidades expresadas y las implícitas”
(ISO 8402, UNE 66-001-92).

Es decir que los requisitos del software son la base de las medidas de calidad, la falta de concordancia con los requisitos es una falta de calidad.
Además estas definiciones nos indican que los estándares o metodologías definen un conjunto de criterios de desarrollo que guían la forma en que se aplica la ingeniería del software ya que si no se sigue ninguna metodología siempre habrá falta de calidad.

2. GESTIÓN DE LA CALIDAD DE SOFTWARE


“Conjunto de actividades de la función general de la dirección que determina la calidad, los objetivos y las responsabilidades y se implanta por medios tales como la planificación de la calidad, el control de la calidad, el aseguramiento (garantía) de la calidad y la mejora de la calidad, en el marco del sistema de calidad”. (ISO 9000-1)


3. ASEGURAMIENTO DE CALIDAD DEL SOFTWARE


“El aseguramiento de calidad del software es el conjunto de actividades planificadas y sistemáticas necesarias para aportar la confianza en que el producto (software) satisfará los requisitos dados de calidad” (Cueva, 1999).

El aseguramiento de calidad del software se diseña para cada aplicación antes de comenzar a desarrollarla y no después. Hay quienes prefieren decir garantía de calidad en vez de aseguramiento, pero la garantía puede confundirse con garantía de productos, mientras que el aseguramiento pretende dar confianza en que el producto tiene calidad.

El aseguramiento de calidad del software está presente en (Cueva, 1999):
• Métodos y herramientas de análisis, diseño, programación y prueba.
• Inspecciones técnicas formales en todos los pasos del proceso de desarrollo del software.
• Estrategias de prueba multiescala.
• Control de la documentación del software y de los cambios realizados.
• Procedimientos para ajustarse a los estándares (y dejar claro cuando se está fuera de ellos).
• Mecanismos de medida (métricas).
• Registro de auditorias y realización de informes.
Las actividades para el aseguramiento de calidad del software se detallan en (Cueva, 1999):
• Métricas de software para el control del proyecto.
• Verificación y validación del software a lo largo del ciclo de vida (Incluye las pruebas y los procesos de revisión e inspección).
• La gestión de la configuración del software.


4. CONTROL DE LA CALIDAD DEL SOFTWARE


Son las técnicas y actividades de carácter operativo, utilizadas para satisfacer los requisitos relativos a la calidad, centradas en dos objetivos fundamentales: mantener bajo control un proceso y eliminar las causas de los defectos en las diferentes fases del ciclo de vida. (Cueva, 1999)

En general, se puede decir que el control de de la calidad del software son las actividades para evaluar la calidad de los productos desarrollados.

Las estrategias de trabajo se representan como sigue:










figura 1 (Estrada, 2006).



5. SISTEMA DE CALIDAD


“Estructura organizativa, procedimientos, procesos y recursos necesarios para implantar la gestión de calidad” (Estrada, 2006).

El sistema de calidad se debe adecuar a los objetivos de la calidad de la empresa. La dirección de la empresa es la responsable de fijar la política de calidad y las decisiones relativas a iniciar, desarrollar, implantar y actualizar el sistema de calidad.
Partes de un Sistema de Calidad

• Documentación:
Manual de calidad. Es el documento principal para establecer e implantar un sistema de calidad. Puede haber manuales a nivel de empresa, departamento, producto, específicos (compras, proyectos,…).
• Parte física: locales, herramientas ordenadores, etc.
• Aspectos humanos:
Formación de personal.
Creación y coordinación de equipos de trabajo.

Normativas

• ISO
ISO 9000: Gestión y aseguramiento de calidad (conceptos y directrices generales).
Recomendaciones externas para aseguramiento de la calidad (ISO 9001, ISO 9002, ISO 9000-3).
Recomendaciones internas para aseguramiento de la calidad (ISO 9004).
• MALCOM BALDRIGE NATIONAL QUALITY AWARD.
• Software Engineering Institute (SEI) Capability Maturity Model (CMM) for software.


6. CERTIFICACIÓN DE LA CALIDAD


“Un sistema de certificación de calidad permite una valoración independiente que debe demostrar que la organización es capaz de desarrollar productos y servicios de calidad” (Oskarsson, 1996).

Los pilares básicos de la certificación de calidad son tres: Una metodología adecuada, un medio de valoración de la metodología y que la metodología utilizada y el medio de valoración de la metodología deben estar reconocidos ampliamente por la industria.


7. FACTORES QUE DETERMINAN LA CALIDAD DEL SOFTWARE


Los factores que determinan la calidad del software se clasifican en tres grupos (Carrasco, 1995):
• Operaciones del producto: características operativas
Corrección: Grado en que un programa satisface sus especificación y logra los objetivos marcados por el usuario. (¿Hace lo que se le pide?).

Fiabilidad: Grado en que se puede esperar que un programa lleve a cabo las funciones esperadas con la precisión requerida. (¿Lo hace de forma fiable todo el tiempo?).

Eficiencia: Cantidad de recursos de computadoras y de código requeridos por el programa para realizar sus funciones con los tiempos de respuesta adecuados. (¿Qué recursos hardware y software necesito?).

Integridad: Grado en que puede controlarse el acceso al software o a los datos por usuarios no autorizados. (¿Puedo controlar su uso?).

Facilidad de uso: Esfuerzo necesario para aprender, utilizar, preparar las entradas e interpretar las salidas de un programa. (¿Es fácil y cómodo de manejar?).

• Revisión del producto: capacidad para soportar cambios.
Facilidad de mantenimiento: Esfuerzo requerido para localizar y arreglar un error en un programa. (¿Puedo localizar los fallos?).

Flexibilidad: Esfuerzo requerido para modificar un programa. (¿Puedo añadir nuevas opciones?).

Facilidad de prueba: Esfuerzo requerido para probar un programa de forma que se asegure que realiza la función requerida. (¿Puedo probar todas las opciones?).

• Transición del producto: adaptabilidad a nuevos entornos.

Portabilidad: Esfuerzo requerido para transferir un programa desde un entorno HW y/o SW a otro. (¿Podré usarlo en otra máquina?).

Reusabilidad: Grado en que un programa o componente SW se puede reutilizar en otras aplicaciones. (¿Podré utilizar alguna parte del software en otra aplicación?).

Interoperatividad: Esfuerzo requerido para acoplar un sistema con otras aplicaciones o sistemas. (¿Podrá comunicarse con otras aplicaciones o sistemas informáticos?).

8. MÉTRICAS DE LA CALIDAD DEL SOFWARE


Es difícil, y en algunos casos, imposible, desarrollar medidas directas de los factores de calidad del software. Cada factor de calidad Fc se puede obtener como combinación de una o varias métricas (S. H. Kan, 1995):

Fc= c1 * m1 + c2 * m2 +… + cn * mn

ci: factor de ponderación de la métrica i, que dependerá de cada aplicación específica.
mi: métrica i.
(Habitualmente se puntúan de 0 a 10 en las métricas y en los factores de calidad).
Algunas métricas para determinar los factores de calidad:
Exactitud.
Normalización de las comunicaciones.
Concisión.
Consistencia.
Estandarización de los datos.
Tolerancia de errores.
Eficiencia de la ejecución.
Facilidad de expansión.


Bibliografía o Referencias

R. S. Pressman. (1993) – Ingeniería del software. Un enfoque práctico. 3ª Edición. McGrawHill.

S. H. Kan. (1995) – Metrics and Models in software Quality Engineering.
Addison-Wesley.

Fernández Carrasco, Oscar M. (1995) – “Un enfoque actual sobre la calidad del software”.

Oskarsson Ö, Glass R.L. (1996) – An ISO 9000 approach to building Quality Software. Prentice-Hall.

Cueva Lovelle, Juan Manuel. (1999) – “Calidad del Software”. Universidad de Oviedo, España.

Febles Estrada, Ailyn. (2006) – “Calidad de software”. Maestría de Informática Aplicada, Universidad de Matanzas “Camilo Cienfuegos”.

ISO 9000-BS5750. Limusa (1996).
• Norma ISO 9000-1 UNE (31 páginas)
• Norma ISO 9001 UNE (21 páginas)
• Norma ISO 9000-3 (5 + 15 páginas)
• Norma ISO 9004-1 UNE (41 páginas)
• Norma ISO 8402 UNE (30 páginas)

No hay comentarios:

Publicar un comentario