Plan de Trabajo

Post on 03-Jan-2016

26 views 0 download

description

Plan de Trabajo. Fases de Desarrollo de un Programa. Fases de desarrollo. Análisis Especificación y batería de pruebas Pruebas de escritorio Diseño Revisión y ampliación de la batería de pruebas Pruebas de escritorio (trazas) Codificación Revisión y ampliación de la batería de pruebas - PowerPoint PPT Presentation

Transcript of Plan de Trabajo

Plan de Trabajo

Fases de Desarrollo de un Programa

Fases de desarrollo Análisis

Especificación y batería de pruebas

Pruebas de escritorio Diseño

Revisión y ampliación de la batería de pruebas

Pruebas de escritorio (trazas) Codificación

Revisión y ampliación de la batería de pruebas

Pruebas de ejecución

Análisis y Especificaciones

Entradas: Salidas: Objetivo: Método: Suposiciones: Entorno local

Constantes: Variables: Usa: ...

Batería de pruebas:

Caso Entrada Salida esperada Salida obtenida

1 ... ...

... ... ...

Análisis: Especificación Enunciado: Dados dos números enteros estrictamente

positivos, obtener sus máximo común divisor. Entradas: m, n números enteros estrictamente

positivos. Salidas: Su MCD Método: Algorítmo de Euclides

Se basa en que, si m >= n y r es el resto de m / n:(1) Si r = 0, n divide a m y el MCD es n(2) Si no, MCD(m,n) = MCD(n,r), y se rebaja el problema a un par

de números menoresRepitiendo el proceso se llegará a la situación (1)

Suposiciones: m, n > 0 Si no, se responderá con un mensaje

Entorno local: Variables: r para el resto de la división

Análisis: Batería de Pruebas

Caso Entrada Salida esperada Salida obtenida

1 120, 36 12

2 225, 49 1

3 225, 5 5

4 0, 7 ‘Dato inválido’

Diseño

Diseño descendenteRefinamientos sucesivos

Diseño modularDivide y vencerás

Diseño: Nivel 1inicio

leer m, nsi (m > 0) y (n > 0) entonces

si m < n entoncesintercambiar los valores de m y n

fin_sir ← m MOD nmientras r > 0 hacer

m ← nn ← rr ← m MOD n

fin_mientrasescribir ‘El MCD es ‘ n

si_noescribir ‘Dato inválido’

fin

Diseño: Nivel 2inicio

leer m, nsi (m > 0) y (n > 0) entonces

si m < n entoncesx ← mm ← nn ← x

fin_sir ← m MOD nmientras r > 0 hacer

m ← nn ← rr ← m MOD n

fin_mientrasescribir ‘El MCD es ‘ n

si_noescribir ‘Dato inválido’

fin

Diseño: Batería de Pruebas

Caso Entrada Salida esperada Salida obtenida

1 36,120 12

2 225, 49 1

3 225, 5 5

4 0, 7 ‘Dato inválido’

Pruebas de escritorio

Ejecución manual de un algoritmo sobre un caso de prueba.

Se representa como una tabla.Cada columna representa el entorno.Cada fila muestra la modificación del entorno

a medida que se simula la ejecución línea a línea del algoritmo.

0 inicio lin m n x r condición salida

1 leer m, n 0 ? ? ? ?

2 si (n>0) y (m>0) entonces 1 36 120 ? ?

3 si m<n entonces 2 36 120 ? ? (n>0) y (m>0) = T

4 x ← m 3 36 120 ? ? (m < n) = T

5 m ← n 4 36 120 36 ?

6 n ← x 5 120 120 36 ?

7 fin_si 6 120 36 36 ?

8 r ← m MOD n 7

9 mientras r > 0 hacer 8 120 36 36 12

10 m ← n 9 120 36 36 12 (r > 0) = T

11 n ← r 10 36 36 36 12

12 r ← m MOD n 11 36 12 36 12

13 fin_mientras 12 36 12 36 0

14 escribir ‘El MCD es’ n 13 36 12 36 0

15 si_no 9 36 12 36 0 (r > 0) = F

16 escribir ‘Dato inválido’ 14 36 mcd 12

17 fin_si 17 36

18 fin 18

Codificación

Traducción del algoritmo a un programa Lenguaje de programación

PASCAL

program mcd (input, output);var

m, n, r, x: integer;begin

readln (input, m, n);if (m > 0) and (n > 0) then

beginif (m < n) then

beginx := m;m := n;n := x;

end;r := m mod n;while (r > 0) do

beginm := n;n := r;r := m mod n;

end;writeln (output, ‘El MCD es ‘, n)

endelse

writeln (output, ‘Dato inválido’);end.