Diferencia entre revisiones de «Ingeniería de Software II»

De Cuba-Wiki
Línea 50: Línea 50:
=== Primer Parcial ===
=== Primer Parcial ===


* Primer Parcial del 1er Cuatrimestre de 2024 [[Medio:1erParcial-Inge2_1C2024.pdf.pdf|(Resuelto)]]
* Primer Parcial del 1er Cuatrimestre de 2024 [[Medio:1erParcial-Inge2 1C2024.pdf.pdf|(Resuelto)]]
* Primer Parcial del 2do Cuatrimestre de 2023 [[Medio:Inge2 2do parcial 2do 2023.pdf|(Resuelto)]]
* Primer Parcial del 2do Cuatrimestre de 2023 [[Medio:Inge2 2do parcial 2do 2023.pdf|(Resuelto)]]
* Primer Parcial del 1er Cuatrimestre de 2023 [[Medio:Ing2_1parcial_08-05-2023.pdf|(Enunciado)]]
* Primer Parcial del 1er Cuatrimestre de 2023 [[Medio:Ing2_1parcial_08-05-2023.pdf|(Enunciado)]]

Revisión del 23:46 3 jun 2024

Esta página es sobre la materia del plan de estudios 1993.

Ingenería de Software II es una materia dedicada al estudio de la Ingeniería de Software. Según el Plan de la Carrera, es una materia a ser cursada en Cuarto año. Se necesita Ingeniería de Software I, Paradigmas de Lenguajes de Programación y Sistemas Operativos para cursarla.

Objetivo

En esta materia se estudiarán algoritmos, estructuras de datos, técnicas y herramientas que apuntan a analizar software automáticamente. Prácticamente todos los análisis interesantes (que serían de utilidad para un ingeniero de software que desea garantías sobre el comportamiento de lo que está construyendo) son indecidibles o computacionalmente intratables. Por lo tanto lo que se estudiará en clase es el estado del arte en materia de análisis y verificación automática, un área que a pesar de estar dando pasos agigantados, aún tiene mas preguntas abiertas que respuestas.

Programa

Unidad 1: Análisis Estático de Programas

  • Análisis de dataflow.
  • Grafo de flujo de control.
  • Ecuaciones de flujo de datos.
  • Análisis Intraprocedural vs. Interprocedural
  • May versus Must Analysis

Unidad 2: Testing Automatizado de Software

  • Criterios clásicos de calidad de un test suite.
  • Análisis de mutación.
  • Técnicas de generación de tests basadas en aleatoriedad.
  • Generación utilizando Ejecución Simbólica Pura y Ejecución Simbólica Dinámica.
  • Heurísticas de generación basadas en búsqueda.
  • Algoritmos Genéticos y Algoritmos Evolutivos.
  • Testing de Seguridad.
  • Fuzzing de caja negra, caja gris y caja blanca.
  • Fuzzing de Gramáticas.

Unidad 3: Verificación de Software Concurrente

  • Modelos de Concurrencia
  • Algebras de Proceso y Bisimulación
  • Lógicas temporales. LTL
  • Model Checking de LTL

Apuntes

Prácticas

Exámenes

Primer Parcial

Segundo Parcial

Coloquio

Finales

Enlaces Externos