Final del 4/03/2008 (Ingeniería I)
Requerimientos
1. Explique qué es un Stakeholder en el contexto de Ingeniería de Requerimientos.
Quien se vea afectado por el sistema o proceso.
2. A qué nos referimos cuando decimos que los Requerimientos, tanto funcionales como no funcionales, deben ser refutables de manera objetiva? Ejemplifique.
Para poder verificarlos bien.
Especificación
3. Explique la diferencia entre lenguajes de especificación de comportamiento basados en interacciones y estados. Dé ejemplos de notaciones concretas de ambas categorías.
FSM, Petri vs. MSC y Secuencias.
4. A qué nos referimos cuando hablamos de relaciones derivadas en modelos conceptuales?
Una relación que ya podíamos navegar por otro lado.
Verificación y Testing
5. Qué es y para que sirve (en el contexto de testing) un flow graph?
Code coverage.
6. Dé tres heurísticas que pueden utilizarse para la partición del domino en categorías en el contexto de la generación de casos de test.
Teórica de Testing, las Heurísticas comienzan en la diapositiva 81.
- Básica: SIEMPRE tratar los casos de bordes aparte.
- Si la especificación define un intervalo de valores, crear dos clases inválidas y una válida (e.g. x<10, 10<=x<=20 y x>20)
- Si hay una restriccion de cantidades, por ejemplo: una proyecto toma de 2 a 5 empleados, separar en menos de 2, entre 2 y 5, y mas de 5.
- Si un input toma valores de un tipo y sabemos que el programa los trata de manera distinta los separamos. Por ejemplo si el input es un electrodomestico las clases válidas serían: TV, plancha, lavarropas, etc. y una inválida sería: cocodrilo.
- SI la especificación dice que algo debe ocurrir dividimos en cuando ocurre y ando no, por ejemplo si el usuario debe ser mayor de 18 años la clase inválida es que tiene 16 y la válida 18.
- Dar valores de otro tipo que no sea el esperado (patos en vez de manzanas) o rones (31 de febrero de 1998).
- Variaciones depende el tipo de dato, por ejemplo si es lista: vacía, con un elemento, con muchos elementos.
- Variaciones dependiendo de las cardinalidades de las asociaciones del modelo.
Diseño
7. Explique la diferencia entre frameworks y librerías en términos de sus relaciones "usa-a" con código de usuario.
Librerías son llamadas por el codigo de usuario y las frameworks llaman al codigo ellas.
8. Explique las diferencias entre las siguientes tres vistas de diseño: Estática, Dinámica y de Despliegue.
Miren las diapos.