Ingeniería de software para salas blancas

Metodología de diseño de software

El proceso de ingeniería de software de sala limpia es un proceso de desarrollo de software cuyo objetivo es producir software con un nivel de confiabilidad certificable . 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 en IBM . [1]

El proceso de sala limpia se empezó a utilizar a mediados y fines de la década de 1980. Los proyectos de demostración en el ámbito militar comenzaron a principios de la década de 1990. [2] Los trabajos recientes sobre el proceso de sala limpia han examinado la fusión de la sala limpia con las capacidades de verificación automatizada proporcionadas por las especificaciones expresadas en CSP . [3]

Filosofía

El enfoque del proceso de sala limpia se centra en la prevención de defectos, más que en su eliminación. El nombre "sala limpia" se eligió para evocar las salas limpias que se utilizan 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
El soporte de herramientas de software basado en algún formalismo matemático incluye la comprobación de modelos , las álgebras de procesos y las redes de Petri . El método de estructura de caja podría ser uno de esos medios para especificar y diseñar un producto de software. [4] La verificación de que el diseño implementa correctamente la especificación se realiza mediante una revisión en equipo, a menudo con el soporte de herramientas de software.
Implementación incremental bajo control estadístico de calidad
El desarrollo de salas blancas 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 en función de estándares preestablecidos para verificar que el proceso de desarrollo se está llevando a cabo de manera aceptable. Si no se cumplen los estándares de calidad, se interrumpen las pruebas del incremento actual y se vuelve a la fase de diseño.
Pruebas estadísticamente sólidas
Las pruebas de software en el proceso de sala limpia se llevan a cabo como un experimento estadístico. En función de la especificación formal, se selecciona y prueba un subconjunto representativo de trayectorias de entrada/salida de software. Luego, esta muestra se analiza estadísticamente para producir una estimación de la confiabilidad del software y un nivel de confianza en esa estimación.

Referencias

  1. ^ Mills, H. ; M. Dyer; R. Linger (septiembre de 1987). "Ingeniería de software de sala limpia" (PDF) . IEEE Software . 4 (5): 19–25. doi :10.1109/MS.1987.231413. S2CID  383170.
  2. ^ Foreman, John (2005). "Cleanroom Software Engineering Reference". Hoja de ruta de tecnología de software . Instituto de Ingeniería de Software (SEI) . Consultado el 27 de abril de 2006 .
  3. ^ Guy H. Broadfoot y PJ Hopcroft (2005). "Introducción de métodos formales en la industria mediante salas limpias y CSP". Revista electrónica Dedicated Systems. S2CID  14066854. {{cite journal}}: Requiere citar revista |journal=( ayuda )
  4. ^ Linger, R. (abril de 1994). "Cleanroom Process Model". IEEE Software . 11 (2): 50–58. CiteSeerX 10.1.1.130.8642 . doi :10.1109/52.268956. S2CID  206447346. 

Lectura adicional

  • Stavely, Allan (1999). Hacia una programación sin defectos . Addison-Wesley.
  • Stacy J. Prowell y Carmen J. Trammell y Richard C. Linger y Jesse H. Poore (1999). Ingeniería de software de sala limpia: tecnología y proceso . Addison-Wesley.
  • Jesse H. Poore y Carmen J. Trammell (1996). Ingeniería de software para salas blancas: una lectura . NCC Blackwell.
  • Una introducción
Retrieved from "https://en.wikipedia.org/w/index.php?title=Cleanroom_software_engineering&oldid=1261807577"