lunes, 20 de julio de 2009

CALIDAD DEL SOFTWARE


CALIDAD DEL SOFTWARE

JUAN EDGAR MALLEA MACHACA
Universidad Autónoma Juan Misael Saracho, Facultad de Ciencias y Tecnología, Carrera de Ingeniería Informática. Tarija, Bolivia. Juanmallea24@gmail.com.

Resumen

El desarrollo del software en los últimos años tuvo gran impacto, actualmente se usa el software en gran diversidad de ámbitos, los defectos del software pueden causar importantes problemas e, incluso, daños físicos, en cambio los defectos en programas financieros o editores son poco importantes, poco costosos y nadie sale herido razón para medir la calidad del software.

La ingeniería del software es una disciplina de la informática o ciencias de la computación, que ofrece métodos o técnicas para desarrollar y mantener software de calidad que resuelven problemas de todo tipo.

La obtención de un software con calidad implica la utilización de metodologías o procedimientos estándares para el análisis, diseño, programación y prueba del software que permitan uniformar la filosofía de trabajo, satisfaciendo los requerimientos del cliente.
Si se desea un software de alta calidad, hay que asegurarse de que cada una de sus partes tenga alta calidad.

Palabras clave:

Software, estándar, calidad, control, gestión de la calidad.
1. INTRODUCCIÓN

La obtención de un software calidad es uno de los problemas que se afrontan actualmente en la esfera de la computación.

Con el fin de obtener y construir software de calidad se han realizado gran cantidad de investigaciones al respecto con dos objetivos fundamentales [2]:

a. ¿Cómo obtener un software con calidad?
b. ¿Cómo evaluar la calidad del software?

El diccionario de la Real Academia Española define software como:

“Conjunto de programas, instrucciones y reglas informáticas para ejecutar ciertas tareas en una computadora”.
Definición de software de calidad según ISO 8402 (UNE 66-001-92)
“El conjunto de características de una entidad que le confieren sub aptitud para satisfacer las necesidades expresadas y las implícitas”
En el desarrollo de software, la calidad de diseño acompaña a la calidad de los requisitos, especificaciones y diseño del sistema. La calidad de concordancia es un aspecto centrado principalmente en la implementación; Si la implementación sigue al diseño, y el sistema resultante cumple con los objetivos de requisitos y de rendimiento, la calidad de concordancia es alta.

2. CALIDAD

Calidad es la aptitud de un producto o servicio para satisfacer las necesidades del usuario, Propiedad o conjunto de propiedades inherentes a algo, que permiten juzgar su valor [6].

2.1. Gestión de la calidad

La gestión de calidad son los aspectos de la función de gestión que determinan y aplican la política de la calidad, los objetivos y las responsabilidades y que lo realiza con medios tales como la planificación de la calidad, el control de la calidad, la garantía de calidad y la mejora de la calidad”.

Dentro de la gestión de la calidad se observa:

• Gestión de la calidad de software (ISO 9000): 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.

• Política de calidad (ISO 9000): Directrices y objetivos generales de una organización, relativos a la calidad, tal como se expresan formalmente por la alta dirección.

La gestión de la calidad se aplica normalmente a nivel de empresa. También puede haber una gestión de calidad dentro de la gestión de cada proyecto.

3. CONTROL DE LA CALIDAD DEL SOFTWARE

Para controlar la calidad del software es necesario, ante todo, definir los parámetros, indicadores o criterios de medición, ya que, como bien plantea Tom De Marco, "usted no puede controlar lo que no se puede medir"[2].

Las cualidades para medir la calidad del software son definidas por innumerables autores, los cuales las denominan y agrupan de formas diferentes. Por ejemplo, John Wiley define métricas de calidad y criterios, donde cada métrica se obtiene a partir de combinaciones de los diferentes criterios. La Metodología para la evaluación de la calidad de los medios de programas de la CIC, de Rusia, define indicadores de calidad estructurados en cuatro niveles jerárquicos: factor, criterio, métrica, elemento de evaluación, donde cada nivel inferior contiene los indicadores que conforman el nivel precedente. Otros autores identifican la calidad con el nivel de complejidad del software y definen dos categorías de métricas: de complejidad de programa o código, y de complejidad de sistema o estructura.

Todos los autores coinciden en que el software posee determinados índices medibles que son las bases para la calidad, el control y el perfeccionamiento de la productividad.

Una vez seleccionados los índices de calidad, se debe establecer el proceso de control, que requiere los siguientes pasos:

· Definir el software que va a ser controlado: clasificación por tipo, esfera de aplicación, complejidad, etc., de acuerdo con los estándares establecidos para el desarrollo del software.
· Seleccionar una medida que pueda ser aplicada al objeto de control. Para cada clase de software es necesario definir los indicadores y sus magnitudes.

· Crear o determinar los métodos de valoración de los indicadores: métodos manuales como cuestionarios o encuestas estándares para la medición de criterios periciales y herramientas automatizadas para medir los criterios de cálculo.

· Definir las regulaciones organizativas para realizar el control: quiénes participan en el control de la calidad, cuándo se realiza, qué documentos deben ser revisados y elaborados, etc.

A partir del análisis de todo lo anterior, nuestro Centro se encuentra enfrascado en un proyecto para el Aseguramiento de la Calidad del Software (ACS), válido para cualquier entidad que se dedique a la investigación, producción y comercialización del software, el cual incluye la elaboración de un Sistema de Indicadores de la Calidad del Software, la confección de una Metodología para el Aseguramiento de la Calidad del Software y el desarrollo de herramientas manuales y automatizadas de apoyo para la aplicación de las técnicas y procedimientos del ACS, de forma tal que se conforme un Sistema de Aseguramiento de la Calidad del Software.

4. FACTORES QUE DETERMINAN LA CALIDAD DEL SOFTWARE

Se clasifican en tres grupos [8]:

• Operaciones del producto: características operativas

- Corrección (¿Hace lo que se le pide?).- El grado en que una aplicación satisface sus especificaciones y consigue los objetivos encomendados por el cliente.

- Fiabilidad (¿Lo hace de forma fiable todo el tiempo?).- El grado que se puede esperar de una aplicación lleve a cabo las operaciones especificadas y con la precisión requerida.

- Eficiencia (¿Qué recursos hardware y software necesito?).- La cantidad de recursos hardware y software que necesita una aplicación para realizar las operaciones con los tiempos de respuesta adecuados.

– Integridad (¿Puedo controlar su uso?).- El grado con que puede controlarse el acceso al software o a los datos a personal no autorizado.

– Facilidad de uso (¿Es fácil y cómodo de manejar?).- El esfuerzo requerido para aprender el manejo de una aplicación, trabajar con ella, introducir datos y conseguir resultados.

• Revisión del producto: capacidad para soportar cambios.

- Facilidad de mantenimiento (¿Puedo localizar los fallos?).- El esfuerzo requerido para localizar y reparar errores

- Flexibilidad (¿Puedo añadir nuevas opciones?).-El esfuerzo requerido para modificar una aplicación en funcionamiento.

- Facilidad de prueba (¿Puedo probar todas las opciones?).- El esfuerzo requerido para probar una aplicación de forma que cumpla con lo especificado en los requisitos.

• Transición del producto: adaptabilidad a nuevos entornos

- Portabilidad (¿Podré usarlo en otra máquina?).- El esfuerzo requerido para transferir la aplicación a otro hardware o sistema operativo.

- Reusabilidad (¿Podré utilizar alguna parte del software en otra aplicación?).- Grado en que partes de una aplicación pueden utilizarse en otras aplicaciones.

- Interoperabilidad (¿Podrá comunicarse con otras aplicaciones o sistemas informáticos?).- El esfuerzo necesario para comunicar la aplicación con otras aplicaciones o sistemas informáticos.

5. MÉTRICAS PARA LA CALIDAD DEL SOFTWARE.
La ingeniería del software es aquel conocimiento específico que busca maximizar la calidad del software y minimizar su coste. Siguiendo con esa misma idea: así mismo se podrá maximizar la calidad del código escrito (incluyendo su diseño). Los pasos básicos serán [7]:

1. Establecer una serie de métricas (variables a maximizar o minimizar) sobre el código. Solo nos sirve aquello que podamos medir.

2. Montar un sistema automático que genere información sobre esas variables y su evolución a lo largo del desarrollo (integración continua).

3. Aplicar medidas sobre el código y observar si se consigue maximizar o minimizar la variable objetivo Muchas de las medidas que maximizan la calidad producen como efecto colateral una diminución en el coste, y viceversa. Tradicionalmente se piensa que aumentar la calidad es aumentar el coste en tiempo. Pero muchas veces el tiempo invertido en aumentar la calidad (robusto, flexible, mantenible, escalable) repercute en el futuro en un menor coste de desarrollo o mantenimiento.

Valores abstractos del software: Robusto, Flexible, Mantenible, Seguridad, Escalabilidad y rendimiento.


6. CONCLUSIONES
Lograr el éxito en la producción de software es hacerlo con calidad y demostrar su buena calidad. Esto sólo es posible con la implantación de un Sistema para el Aseguramiento de la Calidad del Software directamente relacionado con la política establecida para su elaboración y que esté en correspondencia con la definición internacional ISO de calidad, amplia mente aceptada, y por los estándares del grupo ISO 9000.

7. Bibliografía o Referencias
[1] Ingeniería del software. Un enfoque práctico. 4ª edición. Mcgrawhill (1998).
R. S. Pressman.

[2] Un enfoque actual sobre la calidad del software.
http://www.wikilearning.com/

[3] Calidad del software.
www.monografias.com/

[4] Sistemas de gestión de calidad: ISO 9001
http://www.mailxmail.com/curso/empresa/iso9001/capitulo1.htm

[5] modelos de calidad y software libre.
www.eqsoft.net/.../modelos_de_calidad_y_software_libre/

[6]http://es.wikipedia.org/wiki/Calidad_de_software :Categoría: Ingeniería de software

[7] 15-06-2009 Luis Artola: http://www.programania.net/artola

[8] Juan Manuel Cueva Lovelle cueva@lsi.uniovi.es Departamento de Informática Universidad de Oviedo España www.uniovi.es