El documento presenta el método Cleanroom Software Engineering (CSE) para el desarrollo de software de alta calidad. CSE se basa en fundamentos matemáticos y especifica el software como funciones matemáticas mediante el uso de "cajas" (negras, de estado y transparentes) que mapean entradas a salidas. El desarrollo sigue un proceso incremental con verificación y pruebas estadísticas para garantizar la calidad. CSE puede integrarse con métodos ágiles y es compatible con marcos como CMMI.
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?TestingUy
Expositor: Edgardo Crovetto
Resumen: ¿Cuántas veces pasa que hay que hacer tests cases por el hecho de hacerlos y además hechos para ayer porque no hay tiempo?¿Qué podemos hacer para mantener el máximo cubrimiento de prueba y mínima documentación?
El objetivo es realmente enfocarnos en hacer entrega de un producto de calidad, sin la obligación de crear documentación innecesaria por el hecho de hacerlo. Al mismo tiempo, poder mostrar cubrimiento de pruebas apropiado y hacer los informes necesarios para poder estar confiados que se está entregando con calidad.
En esta charla trataremos de dar un enfoque para poder elegir una buena estrategía en base a algún caso práctico.
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?TestingUy
Expositor: Edgardo Crovetto
Resumen: ¿Cuántas veces pasa que hay que hacer tests cases por el hecho de hacerlos y además hechos para ayer porque no hay tiempo?¿Qué podemos hacer para mantener el máximo cubrimiento de prueba y mínima documentación?
El objetivo es realmente enfocarnos en hacer entrega de un producto de calidad, sin la obligación de crear documentación innecesaria por el hecho de hacerlo. Al mismo tiempo, poder mostrar cubrimiento de pruebas apropiado y hacer los informes necesarios para poder estar confiados que se está entregando con calidad.
En esta charla trataremos de dar un enfoque para poder elegir una buena estrategía en base a algún caso práctico.
03 gestión de pruebas de software diseño de casos de pruebasAntonio Quiña
Un caso de prueba es un conjunto de entradas, condiciones de ejecución y resultados esperados, desarrollado para conseguir un objetivo particular o condición de prueba. Ejemplo: verificar el cumplimiento de un requisito específico
Transparencias de la charla con la que participamos en las III Jornadas de Java de Alicante.
En las transparencias se muestran algunas herramientas para implantar metodologías ágiles en Java y se comentan algunas anécdotas e historias de diferentes implantaciones.
Las transparencias sobre Pruebas de Escritorio en programación ofrecen una visión fundamental y esencial para comprender cómo mejorar la calidad y robustez de nuestro código. Estas pruebas, también conocidas como pruebas de caja blanca, implican examinar el flujo lógico interno de un programa, evaluando cada camino posible y verificando su correctitud. En las transparencias, se explorarán conceptos clave como la selección de casos de prueba, la ejecución manual paso a paso, la identificación de condiciones límite y la detección de posibles errores y excepciones
Estructuras de datos avanzadas: Casos de uso realesSoftware Guru
La utilización de estructuras de datos adecuadas para cada problema hace que se simplifiquen en gran medida los tiempos de respuestas y la cantidad de cómputo realizada.
Por Nelson González
Onboarding new members into an engineering team is not easy on anyone. In a short period of time, the new team member is required to be able to bring professional
Por Victoriya Kalmanovich
El secreto para ser un desarrollador SeniorSoftware Guru
En esta charla platicaremos sobre el “secreto” y el camino para llegar a ser un desarrollador Senior, experiencia, consejos y recomendaciones que en estos 8 años
Por René Sandoval
Apache Airflow es una plataforma en la que podemos crear flujos de datos de manera programática, planificarlos y monitorear de manera centralizada.
Por Yesi Díaz
How thick data can improve big data analysis for business:Software Guru
En esta presentación hablaré sobre cómo el Análisis de Datos Gruesos, específicamente el análisis antropológico y semiótico, puede ayudar a mejorar los resultados del Big Data
Por Martin Cuitzeo
CoDi® es la nueva forma de realizar pagos digitales desarrollada por el Banco de México. Por medio de CoDi puedes realizar cobros y pagos desde tu celular, utilizando una cuenta bancaria o de alguna institución financiera, sin comisiones.
Por Cristian Jaramillo
Gestionando la felicidad de los equipos con Management 3.0Software Guru
En las metodologías agiles hablamos de equipos colaborativos, autogestionados y felices. hablamos de lideres serviciales. El management 3.0 nos ayuda a cultivar el mindset correcto, aquel que servirá como el terreno fértil para que la agilidad florezca.
Por Andrea Vélez Cárdenas
Taller: Creación de Componentes Web re-usables con StencilJSSoftware Guru
Hoy por hoy las experiences de usuario pueden ser enriquecidas mediante el uso de Web Components, que son un estándar de la W3C soportado por la mayoría de los navegadores web modernos.
Por Alex Arriaga
Así publicamos las apps de Spotify sin stressSoftware Guru
En Spotify tenemos 1600+ ingenieros, trabajando en 280+ squads. Aún a esta escala, hemos logrado adoptar prácticas que nos han permitido acelerar la forma en que desarrollamos nuestro producto. Presentado por Erick Camacho en SG Virtual Conference 2020
Achieving Your Goals: 5 Tips to successfully achieve your goalsSoftware Guru
he measure of the executive, Peter F. Drucker reminds us, is the ability to "get the right things done." This involves having clarity on what are the right things as well as avoiding what is unproductive. Intelligence, creativity, and knowledge may all be wasted if not put to work on the things that matter.
Presentado por Cristina Nistor en SG Virtual Conference 2020
Acciones de comunidades tech en tiempos del Covid19Software Guru
Acciones de Comunidades Tech en tiempo del COVID-19 es una platica para informar acerca de las acciones que están realizando algunas comunidades de tecnología en México para luchar contra la propagación del COVID-19. Desde análisis de datos, visualizaciones, simulaciones de contagio, etc.
Presentado por Juana Martínez, Adriana Vallejo y Eduardo Ramírez en SG Virtual Conference 2020
De lo operativo a lo estratégico: un modelo de management de diseñoSoftware Guru
La charla presenta un modelo claro, generado por la ponente, para atender los niveles desde lo operativo a lo estratégico.
Presentado por Gabriela Salinas en SG Virtual Conference
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Telefónica
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0xWord escrito por Ibón Reinoso ( https://mypublicinbox.com/IBhone ) con Prólogo de Chema Alonso ( https://mypublicinbox.com/ChemaAlonso ). Puedes comprarlo aquí: https://0xword.com/es/libros/233-big-data-tecnologias-para-arquitecturas-data-centric.html
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...espinozaernesto427
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta intensidad son un tipo de lámpara eléctrica de descarga de gas que produce luz por medio de un arco eléctrico entre electrodos de tungsteno alojados dentro de un tubo de alúmina o cuarzo moldeado translúcido o transparente.
lámparas más eficientes del mercado, debido a su menor consumo y por la cantidad de luz que emiten. Adquieren una vida útil de hasta 50.000 horas y no generan calor alguna. Si quieres cambiar la iluminación de tu hogar para hacerla mucho más eficiente, ¡esta es tu mejor opción!
Las nuevas lámparas de descarga de alta intensidad producen más luz visible por unidad de energía eléctrica consumida que las lámparas fluorescentes e incandescentes, ya que una mayor proporción de su radiación es luz visible, en contraste con la infrarroja. Sin embargo, la salida de lúmenes de la iluminación HID puede deteriorarse hasta en un 70% durante 10,000 horas de funcionamiento.
Muchos vehículos modernos usan bombillas HID para los principales sistemas de iluminación, aunque algunas aplicaciones ahora están pasando de bombillas HID a tecnología LED y láser.1 Modelos de lámparas van desde las típicas lámparas de 35 a 100 W de los autos, a las de más de 15 kW que se utilizan en los proyectores de cines IMAX.
Esta tecnología HID no es nueva y fue demostrada por primera vez por Francis Hauksbee en 1705. Lámpara de Nernst.
Lámpara incandescente.
Lámpara de descarga. Lámpara fluorescente. Lámpara fluorescente compacta. Lámpara de haluro metálico. Lámpara de vapor de sodio. Lámpara de vapor de mercurio. Lámpara de neón. Lámpara de deuterio. Lámpara xenón.
Lámpara LED.
Lámpara de plasma.
Flash (fotografía) Las lámparas de descarga de alta intensidad (HID) son un tipo de lámparas de descarga de gas muy utilizadas en la industria de la iluminación. Estas lámparas producen luz creando un arco eléctrico entre dos electrodos a través de un gas ionizado. Las lámparas HID son conocidas por su gran eficacia a la hora de convertir la electricidad en luz y por su larga vida útil.
A diferencia de las luces fluorescentes, que necesitan un recubrimiento de fósforo para emitir luz visible, las lámparas HID no necesitan ningún recubrimiento en el interior de sus tubos. El propio arco eléctrico emite luz visible. Sin embargo, algunas lámparas de halogenuros metálicos y muchas lámparas de vapor de mercurio tienen un recubrimiento de fósforo en el interior de la bombilla para mejorar el espectro luminoso y reproducción cromática. Las lámparas HID están disponibles en varias potencias, que van desde los 25 vatios de las lámparas de halogenuros metálicos autobalastradas y los 35 vatios de las lámparas de vapor de sodio de alta intensidad hasta los 1.000 vatios de las lámparas de vapor de mercurio y vapor de sodio de alta intensidad, e incluso hasta los 1.500 vatios de las lámparas de halogenuros metálicos.
Las lámparas HID requieren un equipo de control especial llamado balasto para funcionar
Inteligencia Artificial y Ciberseguridad.pdfEmilio Casbas
Recopilación de los puntos más interesantes de diversas presentaciones, desde los visionarios conceptos de Alan Turing, pasando por la paradoja de Hans Moravec y la descripcion de Singularidad de Max Tegmark, hasta los innovadores avances de ChatGPT, y de cómo la IA está transformando la seguridad digital y protegiendo nuestras vidas.
En este documento analizamos ciertos conceptos relacionados con la ficha 1 y 2. Y concluimos, dando el porque es importante desarrollar nuestras habilidades de pensamiento.
Sara Sofia Bedoya Montezuma.
9-1.
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...
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
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.