SlideShare una empresa de Scribd logo
1 de 25
No estaba muerto…
Cleanroom Software Engineering
Presenta:
Francisco López-Lira Hinojo
“Hoping nobody notices”
2015, 4,452 entrevistados de 108 países.
Adopción generalizada
Mejoras en diversos aspectos:
● Satisfacción
● Tiempo
● Costos?
● Deuda técnica
Adopción generalizada
Mejoras en diversos aspectos:
● Satisfacción
● Tiempo
● Costos?
● Deuda técnica
¿Por qué otro método?
Prácticas
● Retroalimentación continua
● Pair programming
● Clean code
● Refactoring
● Pruebas: Automatización, TDD, PU
● Integración y despliegue continuos
Prácticas
● Retroalimentación continua
● Pair programming
● Clean code
● Refactoring
● Pruebas: Automatización, TDD, PU
● Integración y despliegue continuos
Deuda técnica
“La atención continua a la excelencia técnica y el buen diseño
mejora la agilidad”.
Agile Manifesto
● Implementación pobre
● No implementación de prácticas de calidad
● Es más costoso detectar defectos al final
● Un programador usando análisis estático e inspecciones
genera más calidad a la mitad del costo y 3/4 partes del
tiempo que un par de programadores trabajando juntos*
● La efectividad de las pruebas es de solo 35%*
● Alrededor de un 6% de los casos de prueba tienen
defectos en sí mismos*
Seguimos generando defectos :(
*Caper Jones
La triste realidad...
¿Cuántos defectos generamos?
3 def.x 3h = 9h/p
60 def. X 3h = 180h/p
¿Dónde los generamos?
¿Dónde es más costoso corregirlos?
Fuente: IBM
Uso de inspecciones
Fuente:
¿Qué es el CSE?
Imagen: By Uploaded by Duk 08:45, 16 Feb 2005 (UTC) -
http://www.grc.nasa.gov/WWW/ictd/content/labmicrofab.html, Public Domain,
https://commons.wikimedia.org/w/index.php?curid=60825
Cleanroom Software Engineering es un
método para la producción de software de
alta calidad.
Tiene su fundamento teórico en las
matemáticas.
Breve historia de CSE
“En análisis matemático, el concepto general de función,
aplicación o mapeo se refiere a una regla que asigna a
cada elemento de un primer conjunto un único elemento
de un segundo conjunto”.
Función matemática
Una función vista como una
«caja negra», que transforma
los valores u objetos de
«entrada» en los valores u
objetos de «salida»
Fuente: Wikipedia
● Los programas son reglas que expresan funciones
matemáticas
● La especificación de un programa es la especificación de una
función que mapea del dominio del programa (secuencias de
inputs) a su rango (espacio de salida).
● Atributos:
– Completez: Cada elemento del dominio se mapea a al menos
un elemento del rango
– Consistencia: Cada elemento del dominio se mapea a lo
mucho un valor en el rango
– Corrección: De las especificaciones contra los requerimientos
Fundamentos de CSE
Especificación y diseño de “cajas”
Caja negra (BB)
Caja de estados (SB)
Caja transparente (CB)
EH -> R
(estado anterior, estímulo) -> (nuevo estado, respuesta)
(estado anterior, estímulo) -> (nuevo estado, respuesta)
a través de un modelo procedural
Vistas de un sistema
BB y SB: Representación tabular
Regla No. Historia Estímulo actual Respuesta
1 Usuario no dado de alta Ingresar al sistema Redireccionar a darse de alta
2 Usuario no dado de alta
En página de alta
Registrar datos y enviar Correo de confirmación
3 Usuario no dado de alta
En página de alta
Con correo enviado
Confirmación de correo Alta en el sistema y reenvío
a ventana de ingreso
4 Usuario no dado de alta
En página de alta
Con correo enviado
Ingresar al sistema “Mensaje de correo enviado”
Transici
ón
No.
Estado
anterior
Estímulo Nuevo estado Respuesta Regla
BB
1 noAlta Ingresar
al sistema
enProcesoAlta Redireccionar a darse de alta 1
2 enProces
oAlta
Registrar
datos y
enviar
esperandoCorreo Correo de confirmación 2
3 esperand
oCorreo
Confirmaci
ón de
correo
esperandoIngreso Alta en el sistema y envío a
ventana de ingreso
3
4 esperand
oCorreo
Ingresar
al sistema
esperandoCorreo “Mensaje de correo enviado” 4
BB
SB
●
Secuencia
–Do g; h; enddo
●
Ifthen
–If p then g; endif
●
Ifthenelse
–if p then g else h; endif
●
Whiledo
–while p do g; enddo
●
DoUntil
–do g until p; enddo
CB: Representación procedural
Jerarquía de cajas
BB
SB
CB
BB
SB
CB
BB
SB
CB
BB
SB
CB
BB
SB
CB
● Los programas son reglas que expresan
funciones matemáticas
● Especificación y diseño vía “cajas”
● Verificación y Validación vía Peer review
● Desarrollo incremental
● Testing con muestreo estadístico y certificación
de calidad
Fundamentos de CSE
● Prueba con muestreo estadístico:
– Se utiliza en otros dominios (Ej. Manufactura)
– Valiosa cuando es imposible medir la totalidad (Ej.
Contaminación del mar)
– En software es imposible probar el 100% (”La única
prueba exhaustiva..”)
Testing estadístico
● El software se ve como un modelo estocástico,
esto es una serie de eventos que se desarrollarán
en el tiempo con una cierta probabilidad
– Se elabora un modelo de utilización para representar la
(usualmente) infinita población de usos del sistema y a
partir de ahí se generan los casos de prueba
considerando un muestreo de esa población.
– Con el resultado se generan inferencias estadísticas.
– Los modelos de utilización se pueden representar
usando cadenas de Markov o gramáticas formales.
Testing estadístico
Representación con Markov
Estado
B
Inicio
Estado
A
Fin
100% 1%
20%
50%
10% 70%
100%
En el modelo de Markov se representan estados de uso conectados por arcos de
transición que representan estímulos posibles al sistema bajo prueba, con una
probabilidad asignada a cada arco. La probabilidad representa qué tanto se puede
seleccionar un arco de transición a partir de un estado.
Proceso
Compatibilidad
● Métodos ágiles
● Historias de usuario, Casos de uso
● CMMI, Moprosoft, ISO/IEC 29110
● UP
● Paradigma OO
● Reuso, Product line
● SPC
flopezlira
Francisco López-Lira Hinojo
https://www.linkedin.com/in/fl
opezlira
flopezlira@gmail.com
flopezlira

Más contenido relacionado

La actualidad más candente (14)

Caja negra
Caja negraCaja negra
Caja negra
 
Método pert cpm y gráficas gantt
Método pert cpm y gráficas ganttMétodo pert cpm y gráficas gantt
Método pert cpm y gráficas gantt
 
Ejercicio pert cpm_1
Ejercicio pert cpm_1Ejercicio pert cpm_1
Ejercicio pert cpm_1
 
Ra semana 14 2
Ra semana 14 2Ra semana 14 2
Ra semana 14 2
 
Actividad #4
Actividad #4Actividad #4
Actividad #4
 
Método ruta crítica CPM.
Método ruta crítica CPM.Método ruta crítica CPM.
Método ruta crítica CPM.
 
Caja blanca
Caja blancaCaja blanca
Caja blanca
 
Método pertycpm
Método pertycpmMétodo pertycpm
Método pertycpm
 
Evaluacion1 fundamentos
Evaluacion1 fundamentosEvaluacion1 fundamentos
Evaluacion1 fundamentos
 
ruta critica
ruta criticaruta critica
ruta critica
 
Pruebas de Software
Pruebas de SoftwarePruebas de Software
Pruebas de Software
 
Unidad 2.3 Prueba De Programas
Unidad 2.3 Prueba De ProgramasUnidad 2.3 Prueba De Programas
Unidad 2.3 Prueba De Programas
 
Cuatro.10
Cuatro.10Cuatro.10
Cuatro.10
 
Programacion RPG: Conceptos ILE
Programacion RPG: Conceptos ILEProgramacion RPG: Conceptos ILE
Programacion RPG: Conceptos ILE
 

Similar a No estaba muerto... cleanroom software engineering

Ingeniería del software 3
Ingeniería del software 3Ingeniería del software 3
Ingeniería del software 3
enayluis
 
Conceptos relacionados con el control estadistico
Conceptos relacionados con el control estadisticoConceptos relacionados con el control estadistico
Conceptos relacionados con el control estadistico
Iris Márquez
 

Similar a No estaba muerto... cleanroom software engineering (20)

Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
 
15_pruebaSW.ppt
15_pruebaSW.ppt15_pruebaSW.ppt
15_pruebaSW.ppt
 
Pruebas De Software
Pruebas De SoftwarePruebas De Software
Pruebas De Software
 
Unidad 2 programación estructurada
Unidad 2 programación estructuradaUnidad 2 programación estructurada
Unidad 2 programación estructurada
 
Diseño caso de pruebas
Diseño caso de pruebasDiseño caso de pruebas
Diseño caso de pruebas
 
Diseño caso de pruebas
Diseño caso de pruebasDiseño caso de pruebas
Diseño caso de pruebas
 
Is new
Is newIs new
Is new
 
Capacidad
CapacidadCapacidad
Capacidad
 
pruebas caja negra y blanca.pdf
pruebas caja negra y blanca.pdfpruebas caja negra y blanca.pdf
pruebas caja negra y blanca.pdf
 
03 gestión de pruebas de software diseño de casos de pruebas
03 gestión de pruebas de software   diseño de casos de pruebas03 gestión de pruebas de software   diseño de casos de pruebas
03 gestión de pruebas de software diseño de casos de pruebas
 
Desarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agilesDesarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agiles
 
Pruebas de Escritorio
Pruebas de EscritorioPruebas de Escritorio
Pruebas de Escritorio
 
Personal Software Process / Sesion 03
Personal Software Process / Sesion 03Personal Software Process / Sesion 03
Personal Software Process / Sesion 03
 
Ingeniería del software 3
Ingeniería del software 3Ingeniería del software 3
Ingeniería del software 3
 
Clase 6, 5/9/2007
Clase 6, 5/9/2007Clase 6, 5/9/2007
Clase 6, 5/9/2007
 
Estimacion de proyectos de software
Estimacion de proyectos de softwareEstimacion de proyectos de software
Estimacion de proyectos de software
 
Conceptos relacionados con el control estadistico
Conceptos relacionados con el control estadisticoConceptos relacionados con el control estadistico
Conceptos relacionados con el control estadistico
 
Modelo cocomo
Modelo cocomo Modelo cocomo
Modelo cocomo
 
Desarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por PruebasDesarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por Pruebas
 
INDUCCION A QA TESTER.pptx
INDUCCION A QA TESTER.pptxINDUCCION A QA TESTER.pptx
INDUCCION A QA TESTER.pptx
 

Más de Software Guru

Más de Software Guru (20)

Hola Mundo del Internet de las Cosas
Hola Mundo del Internet de las CosasHola Mundo del Internet de las Cosas
Hola Mundo del Internet de las Cosas
 
Estructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso realesEstructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso reales
 
Building bias-aware environments
Building bias-aware environmentsBuilding bias-aware environments
Building bias-aware environments
 
El secreto para ser un desarrollador Senior
El secreto para ser un desarrollador SeniorEl secreto para ser un desarrollador Senior
El secreto para ser un desarrollador Senior
 
Cómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto idealCómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto ideal
 
Automatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowAutomatizando ideas con Apache Airflow
Automatizando ideas con Apache Airflow
 
How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:
 
Introducción al machine learning
Introducción al machine learningIntroducción al machine learning
Introducción al machine learning
 
Democratizando el uso de CoDi
Democratizando el uso de CoDiDemocratizando el uso de CoDi
Democratizando el uso de CoDi
 
Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0
 
Taller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSTaller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJS
 
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
 
¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?
 
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
 
Pruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOps
 
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosElixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
 
Así publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressAsí publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stress
 
Achieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsAchieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goals
 
Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19
 
De lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoDe lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseño
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 
Editorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfEditorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdf
Yanitza28
 
QUINTA SEXTA GENERACION de COMPUTADORAS
QUINTA  SEXTA GENERACION de COMPUTADORASQUINTA  SEXTA GENERACION de COMPUTADORAS
QUINTA SEXTA GENERACION de COMPUTADORAS
Marc Liust
 

Último (18)

investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
10°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-810°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-8
 
presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfpresentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
 
Función del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacionFunción del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacion
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
 
Editorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfEditorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdf
 
QUINTA SEXTA GENERACION de COMPUTADORAS
QUINTA  SEXTA GENERACION de COMPUTADORASQUINTA  SEXTA GENERACION de COMPUTADORAS
QUINTA SEXTA GENERACION de COMPUTADORAS
 
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxinfor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
 
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptxAVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
 
Editorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdfEditorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdf
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 

No estaba muerto... cleanroom software engineering

  • 1. No estaba muerto… Cleanroom Software Engineering Presenta: Francisco López-Lira Hinojo
  • 3. 2015, 4,452 entrevistados de 108 países. Adopción generalizada Mejoras en diversos aspectos: ● Satisfacción ● Tiempo ● Costos? ● Deuda técnica Adopción generalizada Mejoras en diversos aspectos: ● Satisfacción ● Tiempo ● Costos? ● Deuda técnica ¿Por qué otro método?
  • 4. Prácticas ● Retroalimentación continua ● Pair programming ● Clean code ● Refactoring ● Pruebas: Automatización, TDD, PU ● Integración y despliegue continuos Prácticas ● Retroalimentación continua ● Pair programming ● Clean code ● Refactoring ● Pruebas: Automatización, TDD, PU ● Integración y despliegue continuos Deuda técnica “La atención continua a la excelencia técnica y el buen diseño mejora la agilidad”. Agile Manifesto
  • 5. ● Implementación pobre ● No implementación de prácticas de calidad ● Es más costoso detectar defectos al final ● Un programador usando análisis estático e inspecciones genera más calidad a la mitad del costo y 3/4 partes del tiempo que un par de programadores trabajando juntos* ● La efectividad de las pruebas es de solo 35%* ● Alrededor de un 6% de los casos de prueba tienen defectos en sí mismos* Seguimos generando defectos :( *Caper Jones La triste realidad...
  • 6. ¿Cuántos defectos generamos? 3 def.x 3h = 9h/p 60 def. X 3h = 180h/p
  • 8. ¿Dónde es más costoso corregirlos? Fuente: IBM
  • 10. ¿Qué es el CSE? Imagen: By Uploaded by Duk 08:45, 16 Feb 2005 (UTC) - http://www.grc.nasa.gov/WWW/ictd/content/labmicrofab.html, Public Domain, https://commons.wikimedia.org/w/index.php?curid=60825 Cleanroom Software Engineering es un método para la producción de software de alta calidad. Tiene su fundamento teórico en las matemáticas.
  • 12. “En análisis matemático, el concepto general de función, aplicación o mapeo se refiere a una regla que asigna a cada elemento de un primer conjunto un único elemento de un segundo conjunto”. Función matemática Una función vista como una «caja negra», que transforma los valores u objetos de «entrada» en los valores u objetos de «salida» Fuente: Wikipedia
  • 13. ● Los programas son reglas que expresan funciones matemáticas ● La especificación de un programa es la especificación de una función que mapea del dominio del programa (secuencias de inputs) a su rango (espacio de salida). ● Atributos: – Completez: Cada elemento del dominio se mapea a al menos un elemento del rango – Consistencia: Cada elemento del dominio se mapea a lo mucho un valor en el rango – Corrección: De las especificaciones contra los requerimientos Fundamentos de CSE
  • 14. Especificación y diseño de “cajas” Caja negra (BB) Caja de estados (SB) Caja transparente (CB) EH -> R (estado anterior, estímulo) -> (nuevo estado, respuesta) (estado anterior, estímulo) -> (nuevo estado, respuesta) a través de un modelo procedural
  • 15. Vistas de un sistema
  • 16. BB y SB: Representación tabular Regla No. Historia Estímulo actual Respuesta 1 Usuario no dado de alta Ingresar al sistema Redireccionar a darse de alta 2 Usuario no dado de alta En página de alta Registrar datos y enviar Correo de confirmación 3 Usuario no dado de alta En página de alta Con correo enviado Confirmación de correo Alta en el sistema y reenvío a ventana de ingreso 4 Usuario no dado de alta En página de alta Con correo enviado Ingresar al sistema “Mensaje de correo enviado” Transici ón No. Estado anterior Estímulo Nuevo estado Respuesta Regla BB 1 noAlta Ingresar al sistema enProcesoAlta Redireccionar a darse de alta 1 2 enProces oAlta Registrar datos y enviar esperandoCorreo Correo de confirmación 2 3 esperand oCorreo Confirmaci ón de correo esperandoIngreso Alta en el sistema y envío a ventana de ingreso 3 4 esperand oCorreo Ingresar al sistema esperandoCorreo “Mensaje de correo enviado” 4 BB SB
  • 17. ● Secuencia –Do g; h; enddo ● Ifthen –If p then g; endif ● Ifthenelse –if p then g else h; endif ● Whiledo –while p do g; enddo ● DoUntil –do g until p; enddo CB: Representación procedural
  • 19. ● Los programas son reglas que expresan funciones matemáticas ● Especificación y diseño vía “cajas” ● Verificación y Validación vía Peer review ● Desarrollo incremental ● Testing con muestreo estadístico y certificación de calidad Fundamentos de CSE
  • 20. ● Prueba con muestreo estadístico: – Se utiliza en otros dominios (Ej. Manufactura) – Valiosa cuando es imposible medir la totalidad (Ej. Contaminación del mar) – En software es imposible probar el 100% (”La única prueba exhaustiva..”) Testing estadístico
  • 21. ● El software se ve como un modelo estocástico, esto es una serie de eventos que se desarrollarán en el tiempo con una cierta probabilidad – Se elabora un modelo de utilización para representar la (usualmente) infinita población de usos del sistema y a partir de ahí se generan los casos de prueba considerando un muestreo de esa población. – Con el resultado se generan inferencias estadísticas. – Los modelos de utilización se pueden representar usando cadenas de Markov o gramáticas formales. Testing estadístico
  • 22. Representación con Markov Estado B Inicio Estado A Fin 100% 1% 20% 50% 10% 70% 100% En el modelo de Markov se representan estados de uso conectados por arcos de transición que representan estímulos posibles al sistema bajo prueba, con una probabilidad asignada a cada arco. La probabilidad representa qué tanto se puede seleccionar un arco de transición a partir de un estado.
  • 24. Compatibilidad ● Métodos ágiles ● Historias de usuario, Casos de uso ● CMMI, Moprosoft, ISO/IEC 29110 ● UP ● Paradigma OO ● Reuso, Product line ● SPC