Diferencia entre revisiones de «Ingeniería de Software II»
Sin resumen de edición |
Sin resumen de edición |
||
(No se muestran 43 ediciones intermedias de 20 usuarios) | |||
Línea 1: | Línea 1: | ||
{{ | {{Plan 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 [[Plan de la Carrera#Cuarto año|Cuarto año]]. Se necesita [[Ingeniería de Software I]], [[Paradigmas de Lenguajes de Programación]] y [[Sistemas Operativos]] para cursarla. | '''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 [[Plan de la Carrera#Cuarto año|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 == | |||
<big>Unidad 1: Análisis Estático de Programas</big> | |||
* Análisis de dataflow. | |||
* Grafo de flujo de control. | |||
* Ecuaciones de flujo de datos. | |||
* Análisis Intraprocedural vs. Interprocedural | |||
* May versus Must Analysis | |||
<big>Unidad 2: Testing Automatizado de Software</big> | |||
* 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. | |||
<big>Unidad 3: Verificación de Software Concurrente</big> | |||
* | |||
* Modelos de Concurrencia | |||
* Algebras de Proceso y Bisimulación | |||
* Lógicas temporales. LTL | |||
* Model Checking de LTL | |||
== Apuntes == | == Apuntes == | ||
== | |||
* [[Medio:Ing2_apunte_2019.pdf| Apuntes para parciales 2019]]. <big style="color: red">Usar a discreción</big>. Esto fue un intento que hicimos con mi grupo de juntar y explicar los temas importantes de la materia para los primeros dos parciales. Puede contener errores y faltar cosas. [https://github.com/Gian150/resumenes-uba/tree/master/Ing2 Codigo fuente] | |||
* [[Medio:IngSoft2_resumen.pdf| Apunte para final 2021]] | |||
* Apunte/Resumen para el Final (2022) preparado por un alumno para rendir el final, y escrito en base a las clases teóricas del segundo cuatrimestre de 2022 (Ojo: los temas de la materia parecen cambiar frecuentemente). Separado en dos partes para que entre en el límite de tamaño para archivos: | |||
** [[Medio:ISW2_Resumen_Final_2022_P1.pdf| Parte 1: Testing automatizado de software]] | |||
** [[Medio:ISW2_Resumen_Final_2022_P2.pdf| Parte 2: Verificación de software concurrente]] | |||
== Prácticas == | |||
* [https://brick-witness-6cf.notion.site/Guias-2C2023-cbc91388485849a3b2ee3c042e9ab758?pvs=4 Guías de ejercicios del 2do Cuatrimestre del 2023] | |||
== Exámenes == | |||
=== Primer Parcial === | === Primer Parcial === | ||
* Parcial | * Primer Recuperatorio del 2do Cuatrimestre de 2024 [[Medio:IngSoft2_1recu_2c2024.pdf|(Resuelto)]] | ||
* Simulacro del | * Primer Parcial del 1er Cuatrimestre de 2024 [[Medio:1erParcial-Inge2_1C2024.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 Recuperatorio del 2do Cuatrimestre de 2022 [[IngSoft2_1recu_28-11-22|(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)]] | |||
* 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)]] | |||
=== Segundo Parcial === | === Segundo Parcial === | ||
* Segundo Recuperatorio del 1er Cuatrimestre de 2024 [[Medio:Recu2inge2.pdf|(Resuelto)]] | |||
* Segundo Parcial del 1er Cuatrimestre de 2024 [[Medio:2doP-Inge2-1C2024.pdf|(Resuelto)]] | |||
* Segundo Recuperatorio del 2do Cuatrimestre de 2023 [[Medio:recu.pdf|(Enunciado)]] | |||
* Segundo Parcial del 2do Cuatrimestre de 2023 [[Medio:inge2_seg_parcial_2do_2023.pdf|(Resuelto)]] | |||
* Segundo Parcial del 1er Cuatrimestre de 2023 [[Medio:Ing2_2parcial_26-06-2023.pdf|(Enunciado)]] | |||
* Segundo Recuperatorio del 2do Cuatrimestre de 2022 [[IngSoft2_2recu_05-12-22|(Enunciado)]] | |||
* Segundo parcial 24/11/2022 [[Segundo parcial 24/11/2022 (IngSoft2)|(Resuelto)]] | |||
* Segundo Parcial 21/10/2019 [[Medio:ing2_2do_parcial_21-10-19.pdf|(Resuelto)]] | |||
=== Coloquio === | |||
* Coloquio 21/11/2019 [[Medio:Ing2-coloquio-21-11-19.pdf| (Enunciado)]] | |||
== Finales == | == Finales == | ||
== Enlaces Externos == | == Enlaces Externos == | ||
[ | * [https://www.doc.ic.ac.uk/ltsa/eclipse/help/index.html?appendix_b___fsp_language_spec.htm Especificación de FSP] |
Revisión actual - 05:58 3 dic 2024
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
- Apuntes para parciales 2019. Usar a discreción. Esto fue un intento que hicimos con mi grupo de juntar y explicar los temas importantes de la materia para los primeros dos parciales. Puede contener errores y faltar cosas. Codigo fuente
- Apunte para final 2021
- Apunte/Resumen para el Final (2022) preparado por un alumno para rendir el final, y escrito en base a las clases teóricas del segundo cuatrimestre de 2022 (Ojo: los temas de la materia parecen cambiar frecuentemente). Separado en dos partes para que entre en el límite de tamaño para archivos:
Prácticas
Exámenes
Primer Parcial
- Primer Recuperatorio del 2do Cuatrimestre de 2024 (Resuelto)
- Primer Parcial del 1er Cuatrimestre de 2024 (Resuelto)
- Primer Parcial del 2do Cuatrimestre de 2023 (Resuelto)
- Primer Parcial del 1er Cuatrimestre de 2023 (Enunciado)
- Primer Recuperatorio del 2do Cuatrimestre de 2022 (Resuelto)
- Primer Parcial del 2do Cuatrimestre de 2022 (Resuelto)
- Primer Parcial del 2do Cuatrimestre de 2019 (Resuelto)
- Parcial Único del 2do Cuatrimestre de 2018 (Enunciado) (Resuelto) (Resuelto)
- Simulacro del Parcial Único del 2do Cuatrimestre de 2018 (Enunciado)
Segundo Parcial
- Segundo Recuperatorio del 1er Cuatrimestre de 2024 (Resuelto)
- Segundo Parcial del 1er Cuatrimestre de 2024 (Resuelto)
- Segundo Recuperatorio del 2do Cuatrimestre de 2023 (Enunciado)
- Segundo Parcial del 2do Cuatrimestre de 2023 (Resuelto)
- Segundo Parcial del 1er Cuatrimestre de 2023 (Enunciado)
- Segundo Recuperatorio del 2do Cuatrimestre de 2022 (Enunciado)
- Segundo parcial 24/11/2022 (Resuelto)
- Segundo Parcial 21/10/2019 (Resuelto)
Coloquio
- Coloquio 21/11/2019 (Enunciado)