Sie sind auf Seite 1von 28

TPICOS SOBRE INGENIERA DE SOFTWARE

Unidad 4

Objetivo

Conocer algunos enfoques diferentes para el desarrollo de software, como:


Cleanroom Reingeniera Ingeniera

Web Desarrollo basado en componentes Sistemas crticos

Evidencias de la unidad

Elaborar un ensayo exponiendo sus puntos de vista sobre alguno de los enfoques vistos en clase
Valor

15% (Individual)

Realizacin de un cuestionario sobre tpicos de ingeniera de software


Valor

15% (Individual)

Cleanroom
1. 2. 3. 4.

Definicin Estrategias Proceso Equipos de desarrollo

Definicin

Es una filosofa de desarrollo de software que busca evitar los defectos del software al utilizar mtodos formales de desarrollo y un proceso de inspeccin riguroso (Trammel, 1990).

Definicin

El proceso de ingeniera de software sigue un modelo de proceso


Waterfall

model

Que separa claramente las etapas de requisitos, diseo, codificacin y pruebas.


Pero

los detalles de que se hace en cada paso, es informal

Definicin

El modelo cleanroom toma en consideracin:


1.

2.

3.

Gasta dinero y tiempo por adelantado evitando defectos Utiliza mtodos estadsticos para garantizar la calidad Demuestra formalmente las necesidades de requisitos

Estrategias

El enfoque cleanroom se basa en 5 estrategias:


1. 2. 3. 4. 5.

Especificacin formal Desarrollo incremental Programacin estructurada Verificacin esttica Pruebas estadsticas del sistema

Estrategias
1. Especificacin formal
Un

modelo de transicin de estados que muestra las respuestas del sistema a los estmulos.

2. Desarrollo incremental
El

software se particiona en incrementos que se desarrollan y validan de forma separada.

Estrategias
3. Programacin estructurada
El

proceso de desarrollo del programa es un proceso de refinamiento paso a paso de la especificacin.

4. Verificacin esttica
El

software desarrollado se verifica mediante inspecciones rigurosas.


No

existe mdulo de pruebas para componentes de cdigo

Estrategias
5. Pruebas estadsticas del sistema
Se

prueba el software estadsticamente para determinar su fiabilidad


Las

pruebas se basan en un perfil de funcionamiento (Operational Profile) que se desarrolla en paralelo con la especificacin del sistema.

Proceso cleanroom

Equipos de desarrollo

Existen tres equipos


1. 2. 3.

El equipo de especificacin El equipo de desarrollo El equipo de certificacin

Indagar la labor de cada equipo

Relacionar las columnas


1. Verificacin 2.Validacin 3.Inspeccin del programa
( ) Su objetivo es mostrar que un programa cumple con su especificacin. ( ) Su objetivo es localizar fallos y el proceso es guiado por un lista de comprobacin. ( ) Su objetivo es mostrar que el programa hace lo que el usuario requiere

Relacionar las columnas


1. Verificacin 2.Validacin 3.Inspeccin del programa
( 1 ) Su objetivo es mostrar que un programa cumple con su especificacin. ( 3 ) Su objetivo es localizar fallos y el proceso es guiado por un lista de comprobacin. ( 2 ) Su objetivo es mostrar que el programa hace lo que el usuario requiere

Clase 15 de Julio

Bsqueda de:
Origen

de la palabra cleanroom Labor de los equipos de desarrollo


Continuacin de cleanroom Actividad enclase

Tarea de bsqueda

Palabra cleanroom
Es

una analoga que se deriva de las unidades de fabricacin de semiconductores donde se evitan los defectos mediante la fabricacin en un ambiente ultralimpio.

Cuando se emplea el proceso cleanroom en el desarrollo de grandes sistemas


Se

cuenta con 3 equipos distintos

Equipos

Equipo de especificacin
Es

responsable del desarrollo y mantenimiento de la especificacin del sistema. Produce dos clases de especificaciones
Las

orientadas al cliente (definicin de requisitos) Matemticas orientadas a la verificacin


En

algunos casos, asume tambin la responsabilidad del desarrollo

Equipos

Equipo de desarrollo
Se

encarga de desarrollar y verificar el software Utilizan un enfoque estructurado y formal para la verificacin, basada en la inspeccin de cdigo.

Equipos

Equipo de certificacin
Se

encarga de desarrollar el conjunto de pruebas estadsticas para probar el cdigo despus de su desarrollo. El desarrollo de casos de prueba se realiza en paralelo con el desarrollo de software. Para que sirven los casos de prueba?
Para

certificar la fiabilidad del software

Inspeccin rigurosa del programa

Es una parte fundamental del proceso cleanroom


Se

parte de un modelo de estado del sistema Este modelo se refina a travs de modelos mas detallados a un programa ejecutable En cada etapa se inspecciona la nueva representacin y se desarrollan argumentos matemticos que demuestran que la salida de la transformacin es coherente con su entrada.

Inspeccin rigurosa del programa

La inspeccin y anlisis formal se han encontrado muy eficaces en el proceso cleanroom. Linger [3] informa que en promedio se descubren 2.3 defectos por cada 1,000 lneas de cdigo, al momento de realizar las pruebas para proyectos cleanroom.

Inspeccin rigurosa del programa

Por otro lado, Selby [4] realiz un experimento para comparar el desarrollo de cleanroom con las tcnicas convencionales.
La

mayora de los equipos utilizaron con xito cleanroom Los programas producidos fueron de mayor calidad El cdigo fuente tena mas comentarios y una estructura mas simple

Comentarios generales de cleanroom

El proceso funciona bien cuando hay ingenieros calificados y comprometidos. Los informes de xito desde la industria vienen de personas ya comprometidas con este proceso. La transferencia de este proceso a otras organizaciones menos avanzadas tcnicamente, siguen siendo un reto.

Cleanroom y SEI

Existe un informe de referencia elaborado por el SEI (Software Engineering Institute)


Se

compone de 14 procesos Y de 20 productos de trabajo

Es una gua para la gestin de proyectos, su rendimiento, evaluacin y transferencia de tecnologa.

Actividad en clase

Identificar los casos de xito en proyectos cleanroom


Pginas

3, 4 y 5 de artculo Cleanroom software engineering for zero defect software

Trabajar por equipos, de modo que cada uno relate dos casos.

Actividad en clase

Relatar el ejemplo de especificacin matemtica de la lectura


Cleanroom

software engineering: Plan your work and work your plan in small increments

Referencias

[1] Prowell, S. J., Trammell, C. J., Linger, R. C. and Poore, J. H. (1999). Cleanroom Software Engineering: Technology and Process. Reading, Mass.: Addison-Wesley. [2] Sommerville Ian, Software Engineering, Eighth Edition (2007). AddisonWesley. [3] Linger, R. C. (1994). Cleanroom process model. IEEE Software, 11(2), 508. (Chs. 4, 22). [4] Selby, R. W., Basili, V. R., et al. (1987). Cleanroom software development: an empirical evaluation. IEEE Trans. on Software Engineering, SE-13(9), 102737. (Chs. 4, 22).