plan de trabajo
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 PresentationTRANSCRIPT
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.