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

De Cuba-Wiki
Línea 44: Línea 44:
* Primer Recuperatorio del Segundo Cuatrimestre de 2022 [[IngSoft2_1recu_28-11-22|(Enunciado)]]
* Primer Recuperatorio del Segundo Cuatrimestre de 2022 [[IngSoft2_1recu_28-11-22|(Enunciado)]]
* Primer Parcial del 2do Cuatrimestre de 2022 [[IngSoft2 primer parcial 06/10/2022|(Resuelto)]]
* Primer Parcial del 2do Cuatrimestre de 2022 [[IngSoft2 primer parcial 06/10/2022|(Resuelto)]]
* Primer Parcial del 2do Cuatrimestre de 2019 [[Medio:Ing2 1parcial 19-09-19.pdf| (Resuelto)]]
* Primer Parcial del 2do Cuatrimestre de 2019 [[Medio:Ing2 1parcial 19-09-19.pdf|(Resuelto)]]
* Parcial Único del 2do Cuatrimestre de 2018 [[Medio:Ing2_1parcial_01-11-18.pdf| (Enunciado)]] [[Medio:Ing2_1parcial_01-11-18_resuelto_parte1.pdf| (Resuelto)]] [[Medio:Ing2_1parcial_01-11-18_resuelto_parte2.pdf| (Resuelto)]]
* Parcial Único del 2do Cuatrimestre de 2018 [[Medio:Ing2_1parcial_01-11-18.pdf|(Enunciado)]] [[Medio:Ing2_1parcial_01-11-18_resuelto_parte1.pdf|(Resuelto)]] [[Medio:Ing2_1parcial_01-11-18_resuelto_parte2.pdf|(Resuelto)]]
* Simulacro del Parcial Único del 2do Cuatrimestre de 2018 [[Medio:Ing2_simulacro_2018c2.pdf| (Enunciado)]]
* Simulacro del Parcial Único del 2do Cuatrimestre de 2018 [[Medio:Ing2_simulacro_2018c2.pdf|(Enunciado)]]


=== Segundo Parcial ===
=== Segundo Parcial ===

Revisión del 14:05 10 dic 2022

Plantilla:Completar guías 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

Exámenes

Primer Parcial

Segundo Parcial

Coloquio

Finales

Enlaces Externos