Categories: All - complejidad - algoritmos - notación - concurrencia

by Juan Martinez 5 months ago

51

Verificación Formal de Programas

El texto aborda varios aspectos esenciales en el campo de la informática, centrándose en la verificación y análisis de programas y algoritmos. Se mencionan conceptos como la complejidad computacional, evaluando tanto el tiempo de ejecución como la memoria utilizada por diferentes algoritmos.

Verificación Formal de Programas

Verificación Formal de Programas

Análisis de flujo de datos

Análisis de flujo de información
Seguimiento de flujos de datos sensibles
Identificación de filtraciones de información
Análisis de propagación de información
Análisis de flujo de control
Optimización de la estructura de control
Identificación de cuellos de botella
Análisis de rutas críticas
Análisis de dependencias
Resolución de dependencias circulares
Detección de ciclos de datos
Análisis de dependencia de datos

Garantías de calidad en software

Mejora continua del software
Recopilación de comentarios
Encuestas de satisfacción
Retroalimentación del usuario
Análisis estático de código
Revisión de código
Análisis de calidad de código
Análisis de código fuente
Pruebas de software
Pruebas de aceptación del usuario
Pruebas de integración
Pruebas funcionales

Modelado de sistemas

Verificación de concurrencia
Gestión de exclusión mutua
Detección de condiciones de carrera
Control de concurrencia
Verificación de rendimiento
Evaluación tiempo de ejecución
Análisis de uso de memoria
Optimización de recursos
Verificación de propiedades de sistemas
Auditoría de acceso
Análisis de vulnerabilidades
Seguridad y privacidad

Análisis de Algoritmos

Notación Asintótica
Eficiencia de un algoritmo
Tasa de crecimiento
Notación O (n²) Notación Ω (n) Notación Θ (n log n)
Tasa de Crecimiento de T(n)
Funciones lineales Cuadráticas y Exponenciales
Función de Tiempo respecto a n
Complejidad Computacional de Algoritmos
Memoria Utilizada
Tiempo de Ejecución
Mejor Caso y Peor Caso
Escenarios óptimos y pesimistas
Ordenamiento de burbuja
Estimación de Tiempo de Ejecución
Operaciones básicas de un algoritmo

Algoritmo de ordenamiento

Lógica de Hoare

Triplas de Hoare
Formato: {P} S {Q}
{P}Precondición {S}Instrucción {Q}Postcondición
Verificación de Programas Iterativos
Cota de Ciclo

Asegura que el ciclo terminará

Invariante de Bucle

Condición que es verdadera antes y después de cada iteración del bucle

Verificación de la Corrección de Programas
Pruebas formales Pruebas de ejecución
Corrección Parcial Corrección Total

Tipos de Instrucciones y sus Verificaciones

Composición Secuencial
Precondición más débil (wp): wp(S1, wp(S2, R))
Ejecuta instrucciones una tras otra.
Instrucción Condicional
Precondición más débil (wp): (C ⇒ wp(A, R)) ∧ (¬C ⇒ wp(B, R))
Ejecuta diferentes caminos de código según una condición.
Asignación
Precondición más débil (wp): R(x:=E) donde x es la variable y E la expresión.
Cambia el valor de una variable.
Instrucción Vacía
Precondición más débil (wp): Es igual a la poscondición.
No modifica el estado del programa.