Final del 29/11/2010 (Ingeniería I)
Ejercicio 1
(de un final viejo 27/12/2007) Según Jackson, cuál es la relación entre monitoreabilidad, controlabilidad y la noción de requerimiento?.
Ejercicio 2
Explique que son las flechas y cajas en el diagrama de contexto.
Ejercicio 3
Explique 3 relaciones del modelo conceptual.
Ejercicio 4
Porque no hay que utilizar trazas como relacion de equivalencia? Defina bisimulacion.
Ejercicio 5
(de un final viejo 23/02/09) Supongamos que se tiene una clase que implementa un árbol y tiene una operacion "balancear" que balancea el árbol. Hay que testear esta función. Alguien plantea como categoría el "grado de balance" con opciones:
- Sesgado a la izquierda
- Sesgado a la derecha
- Ni sesgado, ni balanceado
- Balanceado
Luego se plantean dos clases de particion más:
Opción a) Quedarse con la misma particion pero sin el caso balanceado
Opcion b) juntar las opciones sesgado izquierda y derecha en una sola categoría (sesgado) y mantener las demás (balanceado y ni sesgado ni balanceado)
Para las alternativa a) y b) explicar qué se pone en peligro en el criterio de testing (la completitud o la consistencia).
Resolución
Un criterio de testing para es completo si, de existir un error en , existe un conjunto de datos que satisface el criterio para el cual el test no es exitoso.
Un criterio de testing es consistente si, dados y conjuntos de datos que satisfacen el criterio, es exitoso si y sólo si lo es.
La primera opción dada elimina uno de los casos posibles (el árbol balanceado) por lo que el criterio podría dejar de ser completo. Si el único error existiera en la condición balanceada de un árbol, no habría un conjunto de datos, de los que satisfacen el criterio que no fuera exitoso. En cuanto a la consistencia, esta no se ve afectada, puesto que los conjuntos de datos seguirán teniendo un elemento en cada clase de equivalencia.
La segunda opción junta dos casos en uno. Esto sí puede afectar la consistencia. Supongamos que el único error se da cuando el árbol es sesgado a izquierda. Podrían existir y conjuntos de datos tal que el primero pruebe con el árbol sesgado a izquierda y el segundo con el árbol sesgado a derecha. Podría ocurrir entonces que no sea exitoso y sí lo fuera.
En cuanto a la completitud, esta no se vería afectada, puesto que de existir un error podría armarme un conjunto de datos que no sea exitoso. (Cada conjunto de datos del primer criterio, el de la consigna, me dará dos conjuntos asociados en el segundo criterio, el de la segunda opción. Si existía un error y el conjunto de datos del primer criterio lo demostraba, entonces lo demostrará alguno de los conjuntos de datos del último.)