Final del 02/03/2009 (Ingeniería I)
Requerimientos
1. Explique la diferencia entre objetivos de comportamiento y objetivos blandos.
2. En el contexto del modelo de objetivos explique qué es un requerimiento pertinente.
Rta.
1. Los objetivos de comportamiento son aquellos que describen el comportamiento requerido del sistema. Recortan el espacio de comportamientos requeridos y su comprobacion arroja un resultado binario. Tienen un correlato con modelos operacionales de comportamiento. Los objetivos blandos denotan preferencia de comportamientos. Permiten razonar sobre sistemas alternativos. Su satisfaccion no puede establecerse mirando un sistema o una traza, deben compararse dos sistemas/trazas. Son dificil de comparar con modelos de comportamiento. La principal diferencia es que mientras el objetivo de comportamiento es algo que es deseado que el sistema cumpla, en cambio, el objetivo blando describe el comportamiento preferido de una parte del sistema.
2.
Especificación
3. Qué significa que un lenguaje de especificación tenga semántica de "prunning" o de recorte?
4. Describa los tres tipos básicos de relaciones entre entidades en un modelo conceptual. Indique sus diferencias.
Rta.
3. Semántica de prunning o de recorte: a medida que agregamos especificación recortamos las interpretaciones válidas de la especificación.
4. Asociacion: Una asociación es una abstracción de la relación existente en los enlaces entre los objetos.
Agregacion: Es una asociación especial, una relación del tipo “todo/parte” dentro de la cual una o más clases son partes de un conjunto.
Composicion: La composición es una forma ‘fuerte’ de agregación. Se diferencian en: – En la composición tanto el todo como las partes tienen el mismo ciclo de vida. – Un objeto puede pertenecer solamente a una composición.
Herencia: Herencia: a una relación entre una clase general (superclase o padre) y una versión más específica de dicha clase (subclase o hija).
Verificación y Testing
5. Qué es y para qué sirve el def-use graph?
6. Qué es un oráculo y cómo se usa en testing?
Rta.
5. Dado un programa P y una variable x en P, el def-use flowgraph es el flowgraph de P anotado de la siguiente manera:
• Por cada definición de x, el nodo asociado está etiquetado con una definición de x
• Por cada c-uso, el nodo asociado está etiquetado con un uso de x
• Por cada p-uso todos los arcos salientes del nodo asociado están etiquetados con un uso de x
6. El oraculo es un programa utilizado para conocer el resultado esperado de la ejecucion de una prueba.
http://pruebassw.blogspot.com/2007/01/orculos.html
Diseño
7. Explique qué es la programación orientada a interfaces. Dé un ejemplo de diseño donde este principio resulte útil.
8. Explique la diferencia entre módulos y componentes.