Final del 14/04/2009 (Ingeniería I)

De Cuba-Wiki

Requerimientos[editar]

1. Cual es el vinculo entre objetivos blandos y o-refinamientos? Ejemplifique

Rta.

Los o-refinamientos proveen de alternativas para resolver determinado objetivo y los objetivos blandos dan un contexto para poder razonar y finalmente elegir entre las alternativas.

2. Que es y por que se usa el patron de refinamiento por monitorabilidad.

Rta.

El patron de refinamiento por monitorabilidad es aquel que se utiliza para lograr objetivos asignables. Se introducen cuando un objetivo es no realizable por una condicion no monitoreable, por lo tanto se agregan dos objetivos que ayudan a lograr el primero. Un objetivo sobre una condicion monitoreable y otro de la forma Condición no Monitoreable Sii Condición Monitoreable para establecer la relacion y asi podes cumplir con el objetivo mas alto.

Especificacion[editar]

3. Explique la semantica de automata temporizado en terminos de sistemas de transicion etiquetados.

4. Explique la relacion entre redes de Petri y diagramas de actividad.

Rta.

Los DA presentan un flujo de actividades que responden a un evento. Cada actividad se muestra conectada a la actividad que le continúa mediante una flecha que indica la transición entre ambas. El uso normal de una acción es modelar un paso o un conjunto de pasos en la ejecución de un algoritmo (un procedimiento). Son un tipo especial de red de petri. Una red de Petri es un grafo bipartito en el que hay nodos de places y transitions. Los arcos van de places a transitions, y de esas transitions a otros places. Los places de origen son el preset de una transición y los de destino el posset. Cada arco tiene asociado un peso determinado. La relación es que un DA es una red de petrí user friendly. Si cada arco ponemos 1, le damos semántica a los places y ponemos solo un token en el primero, tendremos un DA!

Testing[editar]

5. En testing de regresion, cual es la problematica de seleccion de casos de test?

Rta.

En un test de regresion, pueden existir varios casos a tomar en cuenta para retestear en el caso de una modificacion, correcion o cambio de ambiente, por ejemplo:

  • Casos reusables: corresponden a partes del software no modificadas (ni especificación, ni implementación)
  • Retesteables: la especificación no cambia, pero sí la implementación
  • Obsoletos: no pueden seguir usándose

6. El testing es una actividad de verificacion o validacion? Justifique.

Rta.

El testing es una actividad de verificacion, ya que se trata de probar que lo que se esta haciendo es lo que se dijo en los requerimientos que se iba a realizar y ademas notar las diferencias entre el comportamiento real y el comportamiento esperado. La validacion en cambio se ocupa de ver si el producto que se esta realizando es el correcto para las necesidades.

Diseño[editar]

7. Cual es la relacion entre el tipo aparente y el tipo real de una variable. Como aporta al uso polimorfico de objetos en un lenguaje de programacion orientado a objetos. Ejemplifique.

Rta.

El tipo aparente de un objeto es que deriva estáticamente el compilador. El tipo real es el tipo que realmente tiene en run-time. El tipo aparente debe ser un super tipo del tipo real. El acceso a campos y metodos debe ser compatible con el tipo aparente. El polimorfismo se refiere a la habilidad de tratar de manera uniforme estructuras que pueden tener más de una forma. Al tener un tipo aparente al compilar el programa, deja para el run-time la posibilidad de cambiar el tipo real (siempre respetando la herencia con el tipo aparente).

8. Por que la herencia multiple trae mas complicaciones en diseño que en el modelo conceptual. Relacione con el principio de Liskov.

Rta.

El motivo por el que en diseño, la herencia multiple trae mas complicaciones que en el modelo conceptual se debe a que existen problemas con la herencia como mecanismo de subtipado en el diseño y con la redefinicion de signaturas y subtipado, ya que estos conceptos no existen en el MC. El modelo conceptual es solamente una vision estatica del dominio que se quiere representar y no conoce de problemas de tipado o ejecucion.