Ingeniería de software para salas limpias.
El proceso de ingeniería de software de sala limpia es un proceso de desarrollo de software destinado a producir software con un nivel certificable de confiabilidad. Los principios centrales son el desarrollo de software basado en métodos formales, la implementación incremental bajo control de calidad estadístico y pruebas estadísticamente sólidas.
Historia
El proceso de sala limpia fue desarrollado originalmente por Harlan Mills y varios de sus colegas, incluido Alan Hevner de IBM.
El proceso de sala limpia se utilizó por primera vez entre mediados y finales de la década de 1980. Los proyectos de demostración dentro del ejército comenzaron a principios de los años 1990. Un trabajo reciente en el proceso de sala limpia ha examinado la fusión de la sala limpia con las capacidades de verificación automatizada proporcionadas por las especificaciones expresadas en CSP.
Filosofía
El proceso de sala blanca se centra en la prevención de defectos en lugar de en su eliminación. El nombre "sala limpia" fue elegido para evocar las salas blancas utilizadas en la industria electrónica para evitar la introducción de defectos durante la fabricación de semiconductores.
Principios centrales
Los principios básicos del proceso de sala limpia son
- Desarrollo de software basado en métodos formales
- Soporte de herramientas de software basado en algún formalismo matemático incluye la comprobación de modelos, álgebras de proceso y redes Petri. El método de estructura de caja puede ser uno de esos medios de especificar y diseñar un producto de software. Verificación de que el diseño implementa correctamente la especificación se realiza mediante el examen del equipo, a menudo con soporte de herramientas de software.
- Ejecución adicional bajo control de calidad estadística
- El desarrollo limpio utiliza un enfoque iterativo, en el que el producto se desarrolla en incrementos que aumentan gradualmente la funcionalidad implementada. La calidad de cada incremento se mide contra normas preestablecidas para verificar que el proceso de desarrollo está procediendo aceptablemente. El incumplimiento de los estándares de calidad da lugar al cese de las pruebas para el incremento actual y al retorno a la fase de diseño.
- Pruebas estadísticamente racionales
- Las pruebas de software en el proceso de limpieza se realizan como un experimento estadístico. Sobre la base de la especificación formal, se selecciona y prueba un subconjunto representativo de las trayectorias de entrada y salida de software. Esta muestra se analiza estadísticamente para producir una estimación de la fiabilidad del software y un nivel de confianza en esa estimación.