Es un enfoque que hace hincapié en la necesidad de incluir la corrección en el software a medida que éste se desarrolla.Consiste en la edición de dependencias de costosos procesos de eliminación de defectos, mediante la escritura de incrementos de código desde su primer momento.
Su modelo de proceso incluye la certificación estadística de calidad de los incrementos de código, a medida que estos se van acumulando en el sistema.
El Enfoque de Sala Limpia
Demanda la disciplina necesaria para eliminar errores en las especificaciones y diseño, fabricando el producto de forma limpia. Propuesta por Mills y sus colegas. Henderson sugiere tres razones:
• 1. La creencia consistente en que la metodología de sala limpia es excesivamente teórica, matemática y radical para utilizarla en el desarrollo de software real.
• 2. No propone una comprobación unitaria por parte de los desarrolladores, sino que la sustituye por un control estadístico de la calidad.
• 3. El uso de los procesos de sala limpia requiere procesos definidos en las fases del ciclo vital.
La Estrategia de Sala Limpia
- Hace uso del modelo incremental del software
- Asignada la funcionalidad el tubo de sala limpia comienza sus incrementos
- Los requisitos globales del sistema se desarrollan empleando los métodos de software
- Desarrolla un tubo de incremento de software
Tareas
• Planificación de incrementos: Se desarrolla un plan de proyecto que adopta la estrategia incremental. Se establecen las funcionalidades de los incrementos, tamaño estimado y un plan de desarrollo de sala limpia de cada uno.
• Recolección de requisitos: Mediante el uso de técnicas se desarrolla una descripción de los requisitos a nivel de usuario.
• Especificación de la estructura de cajas: Se utiliza un método de especificación que hace uso de la estructura de caja para describir la especificación funcional, donde se aísla y separa la definición de los datos para cada nivel de refinamiento.
• Diseño formal: El diseño de sala limpia es una extensión natural y sin discontinuidades de la especificación. Las especificaciones (cajas negras) se refinan iterativamente para transformarse en diseños análogos a la arquitectura y a los procedimientos (cajas de estado y cajas transparentes) respectivamente.
• Verificación de corrección: El equipo de sala limpia lleva a cabo actividades de verificación de corrección aplicadas al diseño y al código. La verificación comienza con la estructuras de cajas de alto nivel y avanza hacia el diseño y el código.
• Generación de código, inspección y verificación: La especificaciones de estructura de caja, que se representan mediante un lenguaje especializado, se traduce al lenguaje de programación adecuado.
• Planificación de la comprobación estadística: La utilización del software se analiza , se planifica y se diseña un conjunto de casos de pruebas que ejerciten la distribución de probabilidad de la utilización.
• Comprobación estadística de utilización: Las técnicas estadísticas de utilización ejecutan un conjunto finito de casos de prueba.
• Certificación: Una vez finalizado los procedimientos, se certifican los incrementos.
Modelo de Proceso de Sala Limpia
¿Qué hace diferente la sala limpia?
1. Hace uso explícito del control estadístico de calidad.
2. Verifica la especificación del diseño empleando una demostración de corrección basada en las matemáticas.
3. Hace uso de la comprobación estadística de utilización para descubrir errores de especial incidencia.
Especificación Funcional
Satisface los principios de análisis operacional, empleando un método denominado “especificación de estructura de cajas”.
Una caja encapsula al sistema con cierto grado de detalle.
Mediante el refinamiento progresivo forma una jerarquía, donde cada caja tiene transferencia referencial.
Se utilizan tres tipos de cajas:
Caja negra: Especifica el comportamiento del sistema
.
Caja de estado: Encapsula los datos de estados y de servicios de forma análoga a los objetos.
Caja transparente: Contiene el diseño de procedimientos correspondiente a la caja de estados.
Refinamiento de la estructura de cajas
En la imagen anterior se ilustra el enfoque de refinamiento mediante el uso de una especificación de estructura de cajas. Una caja negra (CN,) define las respuestas de todo un conjunto completo de estímulos. CN, se puede refinar en un conjunto de cajas negras, desde CN, hasta CN, cada una de las cuales aborda una cierta clase de comportamiento. El refinamiento prosigue hasta que se identifique una clase cohesiva de comportamiento (por ejemplo, CN,). A continuación, se define una caja de estado (CE,) para la caja negra (CN,). En este caso, CE, contiene todos los datos y servicios necesarios para implementar el comportamiento definido por CN! ,. Por último, se refina CE, para formar un conjunto de cajas transparentes (CT, ") y se especifican los detalles de diseño de procedimientos. A medida que se va realizando cada uno de estos pasos de refinamiento, se produce también una verificación de la corrección. Se verifican las especificaciones de las cajas de estado para asegurar que todas y cada una de ellas se ajustan al comportamiento definido por la especificación de la caja negra predecesora. De manera similar, se verifican las especificaciones de las cajas transparentes con respecto a la caja de estados predecesora.
Especificación de caja negra
Una especificación de caja negra describe una abstracción, estímulos y respuestas. La función f' se aplica a una secuencia, S*, de entradas (estímulos) y esta función los transforma en una salida (respuesta), R. Para componentes sencillos de software, f; puede ser una función matemática, pero en genera1,f se describe empleando el lenguaje natural (o bien un lenguaje de especificación formal). Muchos de los conceptos introducidos para sistemas orientados a objetos son aplicables también para la caja negra. Las abstracciones de datos y las operaciones que manipulan estas abstracciones, se ven encapsuladas por la caja negra. Al igual que una jerarquía de clases, la especificación de caja negra puede mostrar las jerarquías de utilización en que las cajas de nivel inferior heredan las propiedades de las cajas de nivel superior dentro de la estructura de árbol.
Especificación de caja de estado
La caja de estado es «una generalización sencilla de una máquina de estado. Recordando la descripción del modelado de comportamiento y de los diagramas de transición de estados, un estado es algún modo observable de comportamiento del sistema. A medida que se produce el procesamiento, el sistema va respondiendo a sucesos (estímulos) efectuando una transición que parte del estado y llega a algún nuevo estado. A medida que se efectúa la transición, puede producirse una acción. La caja de estado utiliza una abstracción de datos para determinar la transición al estado siguiente (respuesta) que se producirá como consecuencia de la transición.
Especificación de caja transparente
Esta relacionada con los procedimientos y la programación estructurada. Refina las funciones mediante la expansión progresiva de funciones matemáticas de conectivas lógicas.
Refinamiento y verificación del diseño
Cada especificación de caja limpia representa el diseño de un procedimiento (subfunción) necesario para efectuar una transición de caja de estado. Mediante la caja limpia, se utilizan las estructuras de programación estructurada y de refinamiento progresivo. Una función de programa, .f; se refina para dar lugar a una sucesión de subfunciones g y h. Éstas a su vez se refinan para formar estructuras condicionales (si-entonces-sino y hacer-mientras). Un refinamiento posterior ilustra la elaboración lógica continuada.
Refinamiento progresivo
Ventajas de la verificación del diseño
• Se reduce la verificación a un proceso finito.
• Da lugar a un nivel de defectos próximo a cero
• Produce un código mejor que la comprobación unitaria
• Es escalable
• Permite que los equipos de sala limpia verifiquen todas las líneas de diseño y de código
Comprobación de Sala Limpia
Su objetivo es validar los requisitos de software mediante la demostración de una muestra estadística de casos prácticos.
Equivale a comprobar el software en la forma en los que el usuario tienen intención de utilizarlo.
Determina la distribución de probabilidad de utilización correspondiente al software.
Analiza la especificación (caja negra) de c/incremento del software para definir los estímulos (entradas o procesos) que dan lugar a modificar el comportamiento del software.
Desarrolla un incremento del software que gestione la interacción del usuario con el teclado del sistema de seguridad
Genera una serie de números aleatorios entre 1 y 99, correspondiente al intervalo de la probabilidad.
Certificación
La certificación para la ingeniería del software de sala limpia requiere la creación de tres modelos:
Modelo de muestreo. La comprobación de software ejecuta m casos de prueba aleatoria, y queda certificada si no se produce ningún fallo o si se produce un número de fallos inferior al especificado. El valor de m se deriva matemáticamente para asegurar que se alcance la fiabilidad necesaria.
Modelo de componentes. Es preciso certificar un sistema compuesto por n componentes. El modelo de componentes capacita al analista para determinar la probabilidad de que falle el componente i antes de finalizar el programa.
Modelo de Certificación. Se estima y certifica la fiabilidad global del sistema.
Al final de la prueba estadística de utilización, el equipo de certificación posee la información necesaria para proporcionar un software que tenga un certificado que se habrá calculado empleando todos estos modelos.
No hay comentarios:
Publicar un comentario