Preguntas tipo test (I)

14
Programación II (Sistemas) - Curso 2 002/03 1 Ejemplo de Examen Preguntas tipo test (I) Indique cuál de los siguientes enunciados es verdadero: La etapa de mayor coste en tiempo y recursos es la implementación. En los modelos de desarrollo basados en prototipos lo deseable es incrementar los factores de calidad en cada iteración manteniendo constante la funcionalidad. Un incremento en la eficiencia suele afectar negativamente a la extendibilidad. El nivel de cohesión mide el grado de interrelación entre los módulos.

description

Preguntas tipo test (I). Indique cuál de los siguientes enunciados es verdadero: La etapa de mayor coste en tiempo y recursos es la implementación. - PowerPoint PPT Presentation

Transcript of Preguntas tipo test (I)

Page 1: Preguntas tipo test (I)

Programación II (Sistemas) - Curso 2002/03 1Ejemplo de

Examen

Preguntas tipo test (I)

• Indique cuál de los siguientes enunciados es verdadero:

La etapa de mayor coste en tiempo y recursos es la implementación.

En los modelos de desarrollo basados en prototipos lo deseable es incrementar los factores de calidad en cada iteración manteniendo constante la funcionalidad.

Un incremento en la eficiencia suele afectar negativamente a la extendibilidad.

El nivel de cohesión mide el grado de interrelación entre los módulos.

Page 2: Preguntas tipo test (I)

Programación II (Sistemas) - Curso 2002/03 2Ejemplo de

Examen

Preguntas tipo test (II)

• Indique cuál de los siguientes enunciados es falso:

La etapa de análisis produce como resultado las especificaciones de la aplicación.

Un módulo debe ocultar los detalles de cómo realiza su tarea.

Los factores de calidad son independientes entre sí.

Reducir la cohesión puede incrementar el acoplamiento, y viceversa.

Page 3: Preguntas tipo test (I)

Programación II (Sistemas) - Curso 2002/03 3Ejemplo de

Examen

Preguntas tipo test (III)

• En el paradigma de programación bajo contrato..

Un módulo nunca puede fallar.

Los parámetros de un módulo deben cumplir la postcondición para que la precondición sea cierta.

Si la precondición es cierta, entonces los resultados deben cumplir la postcondición.

El módulo que llama a otro debe garantizar su postcondición.

Page 4: Preguntas tipo test (I)

Programación II (Sistemas) - Curso 2002/03 4Ejemplo de

Examen

Preguntas tipo test (IV)

• La descripción de los objetivos de la aplicación se encuentra en..

Sólo en el documento de especificaciones, dentro de la documentación del sistema.

Sólo en el documento de descripción funcional, dentro de la documentación del usuario.

En los dos documentos anteriores.

En ningún documento concreto.

Page 5: Preguntas tipo test (I)

Programación II (Sistemas) - Curso 2002/03 5Ejemplo de

Examen

Preguntas tipo test (V)

• Un analista diseña una batería de pruebas para un módulo. Al probar el módulo con esa batería no se detecta ningún fallo. ¿Cuál sería la valoración más adecuada de éste resultado desde el punto de vista del analista?

La prueba ha sido un éxito.

La prueba ha sido un fracaso.

El módulo está libre de errores.

El diseño de la batería de pruebas es correcto.

Page 6: Preguntas tipo test (I)

Programación II (Sistemas) - Curso 2002/03 6Ejemplo de

Examen

Preguntas tipo test (VI)

• Un módulo recibe como entrada dos enteros, a y b, y devuelve como resultado la cadena "error" si a < 0, la cadena "iguales" si a = b (y no es error) y "distintos" en el resto de casos.Indicar cuál de los siguientes conjuntos de pares de valores (a,b) podría corresponder a la columna de entradas de una batería de pruebas obtenida aplicando la técnica de caja negra (sin análisis de valores límite):

(0,0) (0,1) (1,0)

(1,1) (-1,-1) (-1,1)

(-1,0) (0,-1) (-1,-1)

(4,-3) (2,2) (-3,3)

Particiones

{a < 0}1

{a 0, a = b}2

{a 0, a b}3

2,3,3

2,1,1

1,3,1

3,2,1

Page 7: Preguntas tipo test (I)

Programación II (Sistemas) - Curso 2002/03 7Ejemplo de

Examen

Preguntas tipo test (VII)

• Indicar cuál de las siguientes afirmaciones es falsa:

La cobertura de decisiónes incluye cobertura de sentencias.

Si no existen ramas vacías, la cobertura de sentencias incluye cobertura de decisiones.

Si no existen decisiones anidadas, la cobertura de condiciónes incluye cobertura de decisiones.

Si cada decisión consta de una única condición, la cobertura de condición múltiple es equivalente a cobertura de condiciónes.

C1 or C2 +_Dec. C1 C2

T T F T F T

Page 8: Preguntas tipo test (I)

Programación II (Sistemas) - Curso 2002/03 8Ejemplo de

Examen

Preguntas tipo test (VIII)

• Indique la precondición más débil que hace correcto el siguiente fragmento de código:

{ falso } n := n+1; { n = n+1 }

{ cierto } n := n+1; { n = n+1 }

{ n = n } n := n+1; { n = n+1 }

{ n = N } n := n+1; { n = n+1 }

falso

falso

falso

falso

Page 9: Preguntas tipo test (I)

Programación II (Sistemas) - Curso 2002/03 9Ejemplo de

Examen

Preguntas de respuesta corta (I)

• Un módulo recibe como entrada una fecha (dia, mes y año) y devuelve dos valores: El número de días transcurridos desde el 1/1/2000, y el día de la semana (calculado a partir del valor anterior).¿Cuál es el nivel de cohesión del módulo?

• Éste módulo es llamado por otro al que sólo le interesa saber el día de la semana.¿Cuál sería el tipo de acoplamiento entre los módulos?

Secuencial

Acoplamiento por Estructura

Page 10: Preguntas tipo test (I)

Programación II (Sistemas) - Curso 2002/03 10Ejemplo de

Examen

Preguntas de respuesta corta (II)

• ¿Existe alguna cobertura de caja blanca que garantice que con los casos de prueba generados se van a recorrer todos los posibles flujos de ejecución del algoritmo? Si la respuesta es afirmativa, indicar cual es esa cobertura y justificar la respuesta. En caso contrario, proporcionar un contraejemplo.

C2a and C2b

C1a and C1b D1

D2

D1 D2 C1a C1b C2a C2b

T T T T T T F F T F T F F F F T F T F F F F F F

Contraejemplo: existen caminosno cubiertos

Cobertura de cond. múltiple

Page 11: Preguntas tipo test (I)

Programación II (Sistemas) - Curso 2002/03 11Ejemplo de

Examen

Problema (I)

• Se dispone de la siguiente función:

function dif(x,y: integer) dev d: integer;var a: integer;begin { y x } <a,d> := <x+1,0>; while a <> y do begin <a,d> := <a+1,d+1> endend;

Para los siguientes candidatos a invariantes del bucle, comprobar si son correctos o no. En caso afirmativo encontrar la postcondición.

{ a = x+d } { x y }

Page 12: Preguntas tipo test (I)

Programación II (Sistemas) - Curso 2002/03 12Ejemplo de

Examen

Problema (II)

• Candidato a invariante: { a = x+d }

function dif(x,y: integer) dev d: integer;var a: integer;begin { y x } <a,d> := <x+1,0>; while a <> y do begin <a,d> := <a+1,d+1> endend;

function dif(x,y: integer) dev d: integer;var a: integer;begin { y x } <a,d> := <x+1,0>; while a <> y do begin <a,d> := <a+1,d+1> { a = x+d } endend;

function dif(x,y: integer) dev d: integer;var a: integer;begin { y x } <a,d> := <x+1,0>; while a <> y do begin { a = x+d, a y } <a,d> := <a+1,d+1> { a = x+d } endend;

function dif(x,y: integer) dev d: integer;var a: integer;begin { y x } <a,d> := <x+1,0>; while a <> y do begin { a = x+d, a y } { a+1 = x+d+1, a+1 y+1 } <a,d> := <a+1,d+1> endend;

function dif(x,y: integer) dev d: integer;var a: integer;begin { y x } <a,d> := <x+1,0>; while a <> y do begin { a = x+d, a y } { a+1 = x+d+1, a+1 y+1 } <a,d> := <a+1,d+1> { a = x+d, a y+1 } endend;

function dif(x,y: integer) dev d: integer;var a: integer;begin { y x } <a,d> := <x+1,0>; while a <> y do begin { a = x+d, a y } { a+1 = x+d+1, a+1 y+1 } <a,d> := <a+1,d+1> { a = x+d, a y+1 } { a = x+d } endend;

function dif(x,y: integer) dev d: integer;var a: integer;begin { y x } <a,d> := <x+1,0>; { a = x+1, d = 0, y x } while a <> y do begin { a = x+d, a y } { a+1 = x+d+1, a+1 y+1 } <a,d> := <a+1,d+1> { a = x+d, a y+1 } { a = x+d } endend;

function dif(x,y: integer) dev d: integer;var a: integer;begin { y x } <a,d> := <x+1,0>; { a = x+1, d = 0 } { a = x+d } while a <> y do begin { a = x+d, a y } { a+1 = x+d+1, a+1 y+1 } <a,d> := <a+1,d+1> { a = x+d, a y+1 } { a = x+d } endend;

function dif(x,y: integer) dev d: integer;var a: integer;begin { y x } <a,d> := <x+1,0>; { a = x+1, d = 0 } { a = x+d } { a = x+1, d = 0 } { x+1 = x+0 } while a <> y do begin { a = x+d, a y } { a+1 = x+d+1, a+1 y+1 } <a,d> := <a+1,d+1> { a = x+d, a y+1 } { a = x+d } endend;

function dif(x,y: integer) dev d: integer;var a: integer;begin { y x } <a,d> := <x+1,0>; { a = x+1, d = 0 } { a = x+d } while a <> y do begin { a = x+d, a y } { a+1 = x+d+1, a+1 y+1 } <a,d> := <a+1,d+1> { a = x+d, a y+1 } { a = x+d } endend;

Page 13: Preguntas tipo test (I)

Programación II (Sistemas) - Curso 2002/03 13Ejemplo de

Examen

function dif(x,y: integer) dev d: integer;var a: integer;begin { y x } <a,d> := <x+1,0>; while a <> y do begin <a,d> := <a+1,d+1> endend;

Problema (III)

• Candidato a invariante: { x y }

function dif(x,y: integer) dev d: integer;var a: integer;begin { y x } <a,d> := <x+1,0>; { a = x+1, d = 0, x y } { x y } while a <> y do begin { x y } <a,d> := <a+1,d+1> { x y } endend;

Page 14: Preguntas tipo test (I)

Programación II (Sistemas) - Curso 2002/03 14Ejemplo de

Examen

function dif(x,y: integer) dev d: integer;var a: integer;begin { y x } <a,d> := <x+1,0>; while a <> y do begin <a,d> := <a+1,d+1> endend;

Problema (IV)

• Demostrar la finitud del algoritmo indicando, en su caso, las modificaciones que se deberían realizar a la pre-condición.

an = x+1+n

y-x-n-2 > 0 y x-1

vn = |y-a| = |y-x-n-1|

vn 0 |y-a| = 0 y = avn > 0 |y-a| > 0 y a

vn = |y-a| = |y-x-n-1|

vn+1 < vn

|y-x-n-2| < |y-x-n-1| y-x-n-2 > 0

y-x-n-2 < y-x-n-1-1 < 0cierto

vn = |y-a| = |y-x-n-1|

vn+1 < vn

|y-x-n-2| < |y-x-n-1| y-x-n-2 < -1

-y+x+n+2 < -y+x+n+12 < 1falso

vn = |y-a| = |y-x-n-1|

vn+1 < vn

|y-x-n-2| < |y-x-n-1| y-x-n-2 = -1

|-1| < |0|1 < 0falso