SlideShare una empresa de Scribd logo
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

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
Francisco Javier
 
Ejercicio pert cpm_1
Ejercicio pert cpm_1Ejercicio pert cpm_1
Ejercicio pert cpm_1
gilberto ulloa franco
 
Ra semana 14 2
Ra semana 14 2Ra semana 14 2
Ra semana 14 2victdiazm
 
Actividad #4
Actividad #4Actividad #4
Actividad #4
Dixiana87
 
Método ruta crítica CPM.
Método ruta crítica CPM.Método ruta crítica CPM.
Método ruta crítica CPM.
Al Cougar
 
Caja blanca
Caja blancaCaja blanca
Caja blanca
JefferRosendo
 
Evaluacion1 fundamentos
Evaluacion1 fundamentosEvaluacion1 fundamentos
Evaluacion1 fundamentos
hernanariasacosta
 
ruta critica
ruta criticaruta critica
ruta critica
anahhana
 
Pruebas de Software
Pruebas de SoftwarePruebas de Software
Pruebas de Software
Iván Sanchez Vera
 
Unidad 2.3 Prueba De Programas
Unidad 2.3 Prueba De ProgramasUnidad 2.3 Prueba De Programas
Unidad 2.3 Prueba De ProgramasSergio Sanchez
 
Cuatro.10
Cuatro.10Cuatro.10
Cuatro.10
Diomedes Nunez
 
Programacion RPG: Conceptos ILE
Programacion RPG: Conceptos ILEProgramacion RPG: Conceptos ILE
Programacion RPG: Conceptos ILE
Giovanny Guillen
 

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

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?
TestingUy
 
15_pruebaSW.ppt
15_pruebaSW.ppt15_pruebaSW.ppt
15_pruebaSW.ppt
ROBERTOCHURAMPICANGA
 
Pruebas De Software
Pruebas De SoftwarePruebas De Software
Pruebas De Software
aracelij
 
Unidad 2 programación estructurada
Unidad 2 programación estructuradaUnidad 2 programación estructurada
Unidad 2 programación estructurada
Roberth Camana
 
Diseño caso de pruebas
Diseño caso de pruebasDiseño caso de pruebas
Diseño caso de pruebas
Rocio Camargo Villa
 
Diseño caso de pruebas
Diseño caso de pruebasDiseño caso de pruebas
Diseño caso de pruebas
Rocio Camargo Villa
 
pruebas caja negra y blanca.pdf
pruebas caja negra y blanca.pdfpruebas caja negra y blanca.pdf
pruebas caja negra y blanca.pdf
MARIARENETORREZVARGA
 
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
Antonio Quiña
 
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
Jobsket
 
Pruebas de Escritorio
Pruebas de EscritorioPruebas de Escritorio
Pruebas de Escritorio
Fernando Solis
 
Personal Software Process / Sesion 03
Personal Software Process / Sesion 03Personal Software Process / Sesion 03
Personal Software Process / Sesion 03
andres hurtado
 
Ingeniería del software 3
Ingeniería del software 3Ingeniería del software 3
Ingeniería del software 3enayluis
 
Estimacion de proyectos de software
Estimacion de proyectos de softwareEstimacion de proyectos de software
Estimacion de proyectos de software
Martin Perez
 
Conceptos relacionados con el control estadistico
Conceptos relacionados con el control estadisticoConceptos relacionados con el control estadistico
Conceptos relacionados con el control estadisticoIris Márquez
 
Modelo cocomo
Modelo cocomo Modelo cocomo
Modelo cocomo
mireya2022
 
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
OdalisLinares
 

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

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
Software Guru
 
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
Software Guru
 
Building bias-aware environments
Building bias-aware environmentsBuilding bias-aware environments
Building bias-aware environments
Software Guru
 
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
Software Guru
 
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
Software Guru
 
Automatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowAutomatizando ideas con Apache Airflow
Automatizando ideas con Apache Airflow
Software Guru
 
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:
Software Guru
 
Introducción al machine learning
Introducción al machine learningIntroducción al machine learning
Introducción al machine learning
Software Guru
 
Democratizando el uso de CoDi
Democratizando el uso de CoDiDemocratizando el uso de CoDi
Democratizando el uso de CoDi
Software Guru
 
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
Software Guru
 
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
Software Guru
 
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 ...
Software Guru
 
¿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?
Software Guru
 
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.
Software Guru
 
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
Software Guru
 
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
Software Guru
 
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
Software Guru
 
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
Software Guru
 
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
Software Guru
 
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
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

Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
ValeriaAyala48
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
JimmyTejadaSalizar
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
DanielErazoMedina
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
Leidyfuentes19
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
ManuelCampos464987
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
PABLOCESARGARZONBENI
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
cj3806354
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
cofferub
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
espinozaernesto427
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
Ing. Julio Iván Mera Casas
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
Emilio Casbas
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
sarasofiamontezuma
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 

Último (20)

Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 

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