Permite a un objeto alterar su comportamiento cuando su estado interno cambia
State
Es el rey de los patrones compuestos
MVC
¿Qué es la especificación de una función?
Describe el comportamiento de entrada y salida de la función
Operaciones atómicas y mutuamente exclusivas de un semáforo
- acquire() || P()
- realease() || V()
Nombre completo de la profesora y los ayudantes
- Rosa Victoria Villa Padilla
- Alvaro Ramírez López
- Gael García Aguilera
Verdadero o Falso
Los patrones de diseño son dependientes de los lenguajes de programación y de los detalles de implementación
Falso
Patrón que se podría utilizar en un restaurante de hamburguesas donde la receta varía sólo en unos cuantos pasos
Template
¿Para qué sirven las pruebas de desempeño?
Estimar de manera precisa el desempeño de un componente de software respecto a diversos tipos de recursos
¿Qué es exclusión mutua?
Solo un proceso puede entrar a la sección crítica en un momento dado.
4 tipos de diagramas en UML
- Diagrama de Clases
- Diagrama de Casos de Uso
- Diagrama de Estados
- Diagrama de Actividades
- Diagrama de Secuencias
Clasificación de los patrones
- Patrones creacionales
- Patrones estructurales
- Patrones de comportamiento
3 patrones de comportamiento
Iterator, observer, state, strategy, template
¿En qué consisten las pruebas de Caja Negra?
Elegir casos de prueba solo a partir de la especificación, no de la implementación de la función
Dos problemas clásicos de sincronización
- Productor-Consumidor
- Lectores-Escritores
- Filósofos Comensales
Clasificación de los paradigmas de programación
- Imperativo: Procedural, Orientado a Objetos
- Declarativo: Funcional, Lógico, Bases de Datos
2 beneficios de los patrones
- Favorecen la reutilización de diseños y arquitecturas a gran escala
- Capturan el conocimiento de los expertos y lo hacen accesible a toda la comunidad software
- Establecer terminología en común
- Software con buena estructura (flexible, mantenible, reutilizable)
Este patrón provee un sustituto para otro objeto para controlar el acceso a este
Menciona sus componentes
- Proxy
- Proxy, Sujeto(Interfaz), Sujeto Real
4 tipos de pruebas que existen
Unitarias, de integración, automatizadas, de regresión, de sistema, de desempeño, de usabilidad, de seguridad, de localización...
¿Qué es una sección crítica?
Parte del código que verifica/modifica un recurso compartido
¿Qué es fragilidad?
El software falla en muchos lugares al insertar un cambio
Menciona algún otro tipo de patrón que exista
De programación concurrente, de interfaz gráfica, de organización de código, de optimización de código, de robustez de código, guiados por prueba
1 problema de los patrones
- La integración aún se hace de forma manual
- El número de patrones identificados es cada vez más grande
- El número de combinaciones patrones estilos y atributos que se dan en la práctica son incontables
- Se validan por la experiencia y el debate, no mediante la aplicación de técnicas formales
¿Qué es Coverage y cuáles son sus tipos?
Técnica para asegurarse de que las pruebas realmente estén probando su código o la cantidad de código que cubre al ejecutar la prueba
Cobertura de estado, de ramas y de ruta
¿Qué indica la Ley de Amdahl?
El límite máximo de mejora (speedup) que puede obtenerse al paralelizar un programa.
Comandos para:
- Inicializar un repositorio
- Clonar un repositorio
- Crear y cambiar de rama
- git init
- git clone URL
- git checkout -b <rama> || git branch <nombre>, git checkout <rama>