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. - El agente puede monitorear todas los fenómenos que necesitan ser conocidas para cumplir con el objetivo. - El agente puede controlar todas los fenómenos que necesitan ser restrigindos para alcanzar el objetivo. - Predica sobre el presente, lo que el agente conoce, no sobre el futuro
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.
(Disclaimer... no estoy ni un poco seguro de la respuesta, no aparece en ningun ppt de la materia)
Rta.
La programacion orientada a interfaces es una forma de programar estableciendo interfaces que luego van a ser implementadas por clases. Las interfaces proveen una serie de metodos y propiedades que luego van a ser usadas por las clases que lo implementen. Esto favorece el desacople de codigo, ya que las clases que utilizan la interfaz tienen una clara vision de los metodos disponibles, sin importar quien la va a implementar y asi minimizar dependencias en el codigo.
8. Explique la diferencia entre módulos y componentes.
Los modulos son entidades en tiempo de diseño. Enfatizan en encapsulamiento: "information hiding" e interfaces. Los componentes tienen entidad en tiempo de ejecucion y de deployment.