Calidad del Software

Concepto de calidad.

Se define la calidad de software como la ausencia de errores de funcionamiento, la adecuación a las necesidades del usuario, y el alcance de un desempeño apropiado (tiempo, volumen, espacio), además del cumplimiento de los estándares. Los objetivos que la calidad persigue son: La aceptación (utilización real por parte del usuario) y la Mantenibilidad (posibilidad y facilidad de corrección, ajuste y modificación durante largo tiempo). Para alcanzar estos objetivos, es necesaria una actitud y compromiso de todo el personal que se encuentre en el desarrollo del proyecto, y en todas y cada una de las etapas (en general, planeación, análisis, diseñoprogramación, pruebas, mantenimiento) correspondientes al ciclo de vida que se hubiese seleccionado para el proyecto.

 

La tendencia de la calidad.

El primero llamado Kuizen se refiere a un sistema de mejora continua del proceso, su objetivo es desarrollar un proceso mensurable

El segundo se llama Aturimae Hinshitsu examina los problemas invisibles por los que pueda o está atravesando el proceso, este segundo paso se encarga de trabajar para optimizar su impacto en el proceso.

El siguiente paso llamado kansei se centra principalmente en el usuario del producto, conduce a la mejora del producto y potencialmente al proceso que lo creo.

El último paso llamado miryokuteki  hinshitsu orientado específicamente a la gestión, se encarga de ver cómo funciona el producto en el mercado.

 

Garantía de calidad del software.

La garantía de calidad del software comprende una gran variedad de tareas asociadas a siete actividades principales. La calidad del software debe estar diseñada para el producto o sistema no es algo impuesto a posteriori. Por esta razón la garantía de calidad del software comienza realmente con un conjunto de herramientas y métodos técnicos que ayudan al analista a conseguir una especificación y un diseño de alta calidad.

Tareas que se deben llevar a cabo en un plan de Garantía de calidad del Software:

1- Revisión del diseño del sistema
2- Revisión de requerimientos de software
3- Revisión del diseño preliminar
4- Revisión del diseño detallado (a nivel módulos)
5- Revisión del plan de prueba de integración
6- Revisión del código
7- Revisión de los procedimientos
8- Auditorías de los estándares de documentación
9- Auditorías del control de configuración
10- Auditorías de prueba
11- Recolección, evaluación y análisis de los datos de defectos
12- Certificación de herramientas
13- Mantenimiento de registros

 

Revisiones del software.

Es un proceso o una reunión durante los cuales un producto de software es examinado de cerca por el personal del proyecto, encargados, usuarios, clientes, representantes del usuario, u otros partidos interesados para el comentario o la aprobación.

Variedades de revisión del software

Las revisiones del software se pueden dividir en tres categorías:

Son conducidos por el autor del producto del trabajo, o por unos o más colegas del autor, para evaluar el contenido técnico y/o la calidad del trabajo.

Son conducidos por los representantes de la gerencia para evaluar el estado del trabajo hecho y para tomar decisiones con respecto a actividades enes sentido descendiente.

Son conducidos por el personal externo al proyecto del software, para evaluar conformidad con especificaciones, estándares, acuerdos contractuales, u otros criterios.

Diversos tipos de revisiones

Es la examinación sistemática (a menudo como revisión de par) del código de fuente de la computadora.

Es un tipo de revisión de código donde dos personas desarrollan código juntas en el mismo sitio de trabajo.

Es un tipo muy formal de revisión de par donde los revisores están siguiendo un proceso bien definido para encontrar defectos.

Es una forma de revisión de par donde el autor conduce a miembros del equipo del desarrollo y otros partidos interesados a través de un producto de software y los participantes pida a preguntas y hace comentarios sobre defectos.

Es una forma de revisión de par en la cual un equipo del personal cualificado examina la conveniencia del producto de software para su uso previsto e identifica discrepancias de especificaciones y de estándares.

El valor más obvio de las revisiones del software (especialmente revisiones formales) es que pueden identificar ediciones anterior y más barato que ellos sería identificado probando o por el uso del campo ( proceso de la detección del defecto). El coste para encontrar y para fijar un defecto por una revisión bien-conducida puede ser uno o dos órdenes de la magnitud menos que cuando el mismo defecto es encontrado por la ejecución de la prueba o en el campo.

Un segundo, pero en última instancia más importante, el valor de las revisiones del software es que pueden ser utilizados para entrenar a autores técnicos en el desarrollo extremadamente de los documentos del bajo-defecto, y también identificar y quitar las insuficiencias de proceso que animan los defectos ( proceso de la prevención del defecto).

 

Revisiones técnicas formales.

Tienen como objetivo fundamental descubrir errores en la función, lógica o implementación de cualquier representación del software. Verificar el cumplimiento de los requisitos Garantizar el cumplimiento de los estándares. Conseguir un desarrollo uniforme del software Obtener proyectos que hagan más sencillo los trabajos técnicos (análisis que permitan buenos diseños, diseños que permitan implementaciones sencillas, estrategias de pruebas que faciliten éstas,…).

Se eliminan errores en forma relativamente temprana (barato y fácil de corregir).

Cada revisión se conduce en forma de una reunión cuidadosamente planeada y controlada

–          La reunión de revisión

Entre 3 y 5 personas (grupo pequeño) Preparación previa (2 horas por persona) Especificación precisa (formal o informal)

–          Estándares de codificación

Duración máxima 2 horas (lento pero cansado) Foco en un segmento específico Participan los revisores y el productor

–          Directrices para la revisión

Revisar el producto y no al productor Indicar los errores con tino, tono constructivo Mantenerse estrictamente dentro de la agenda No irse por las ramas Limitar el debate Algunos asuntos pueden dejarse para discusión posterior Enunciar problemas no resolverlos Problema debería ser resuelto por el productor Tomar notas (pizarra deseable)

RTFs: son un filtro que permite “purificar” las actividades de ingeniería de software. se aplican en diversos momentos del desarrollo para detectar defectos Aprovecha la diversidad de un grupo de personas para: señalar la necesidad de mejoras en el producto de ingeniería. Confirmar las partes en las que no es necesaria una mejora. Conseguir un trabajo técnico de calidad más uniforme.

 

Fiabilidad del software.

La fiabilidad del software se define como la probabilidad de operación libre de fallos de un programa de computadora es un entorno determinado y durante un tiempo específico.

La fiabilidad del software, a diferencia de otros factores de calidad, puede ser medida o estimada mediante datos históricos o de desarrollo. La fiabilidad del software se define en términos estadísticos como la probabilidad de operación libre de fallos de un programa de computadora es un entorno determinado y durante un tiempo específico Siempre que se habla de fiabilidad, surge una pregunta fundamental ¿ qué se entiende por el término fallo ? En el contexto de cualquier disquisición sobre calidad y fiabilidad del software, el fallo es cualquier falla de concordancia con los requisitos del software. Incluso en esta definición existen grados. Los fallos pueden ser simplemente desconcertantes o ser catastróficos. Puede que un fallo sea corregido en segundos mientras que otro lleve semanas o incluso meses.

Para modelizar la fiabilidad del software, se deben considerar primero los principales factores que le afecten : Introducción de fallos, eliminación de fallos y entorno.

Los modelos de fiabilidad del software entran en dos grandes categorías :

  1. Modelos que predicen la fiabilidad como una función cronológica del tiempo (calendario).
  2. Modelos que predicen la fiabilidad como una función del tiempo de procesamiento transcurrido (tiempo de ejecución de CPU).

Como parte de la seguridad del software, se puede dirigir un proceso de análisis y modelización. Inicialmente, se identifican los riesgos y se clasifican por su importancia y su grado de riesgo. Cuando se han identificado estos riesgos del sistema, se utilizan técnicas de análisis para asignar su gravedad y su probabilidad de ocurrencia. Para que se efectivo, se tiene que analizar el software en el contexto del sistema completo. El análisis del árbol de fallos construye un modelo gráfico de las combinaciones secuenciales y concurrentes de los sucesos que pueden conducir a un suceso o estado del sistema peligroso.

 

Prueba de errores para el Software.

En los años 60, un ingeniero industrial japonés desarrollo una técnica de garantía de la calidad, en la que su objetivo era la prevención y/o corrección de errores en el proceso de fabricación. Fue denominado poku yoke, estos son dispositivos que conducen a la prevención de un problema potencial antes de que ocurra y a la rápida detección de problemas de calidad si  ya se han producido.

Un dispositivo Poku Yoke presenta un conjunto de características comunes,

  • Es simple y barato
  • Es parte del proceso
  • Esta localizado cerca de la tarea del proceso donde están ocurriendo los errores.

En fin esta técnica (Poka yoke) puede ser implementado en el uso de la Ingeniería del Software, a través de pequeños Scripts en el cual se ejecuta sobre las aplicaciones para detectar fallos, esta técnica puede aplicarse a los niveles de diseño, codificación y pruebas y proporciona un filtro efectivo de garantía de la calidad

 

El estándar de calidad 9001

Designa un conjunto de normas sobre calidad y gestión que una organización debe cumplir para alcanzar la completa satisfacción del cliente a través de productos y servicios que cumplan las perspectivas del cliente. Establecidas por la Organización Internacional de Normalización. Aplicable a cualquier organización que diseñe, desarrolle, manufacture, instale o dé servicio a un producto o que proporcione cualquier forma de servicio. Es la única implementación para la que auditores externos pueden entregar certificaciones.

Para la industria del software los estándares relevantes son.

  • ISO 9001 desarrollo de un producto que implique diseño
  • ISO 9000-3 es un documento específico que interpreta el ISO 9001 para el desarrollo de software
  • ISO 9004-2 proporciona directrices para el servicio de facilidades del software como soporte de usuario

Secciones del ISO 9001

ISO 9001 está compuesto por cinco secciones que especifican las actividades que necesitan ser consideradas al implementar el sistema:

  1. Realización del Producto
  2. Sistema de Gestión de la Calidad
  3. Responsabilidad de Gestión
  4. Gestión de Recursos
  5. Medición, Análisis y Mejora

De la primera pueden ignorarse las partes no aplicables a la organización. Las otras cuatro secciones aplican a todas las organizaciones.

 

Fuente: Roger Pressman Ingenieria del Software un enfoque practico V Ed.pdf[Quinta edición]:México

Para ver el libro completo click aqui…

Para descargar el libro click aqui… ó  aqui…

Deja un comentario