440 likes | 1.37k Views
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
E N D
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:
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: • Si r = 0, n divide a m y el MCD es n • Si no, MCD(m,n) = MCD(n,r), y se rebaja el problema a un par de números menores Repitiendo 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
Diseño • Diseño descendente • Refinamientos sucesivos • Diseño modular • Divide y vencerás
Diseño: Nivel 1 inicio leer m, n si (m > 0) y (n > 0) entonces si m < n entonces intercambiar los valores de m y n fin_si r ← m MOD n mientras r > 0 hacer m ← n n ← r r ← m MOD n fin_mientras escribir ‘El MCD es ‘ n si_no escribir ‘Dato inválido’ fin
Diseño: Nivel 2 inicio leer m, n si (m > 0) y (n > 0) entonces si m < n entonces x ← m m ← n n ← x fin_si r ← m MOD n mientras r > 0 hacer m ← n n ← r r ← m MOD n fin_mientras escribir ‘El MCD es ‘ n si_no escribir ‘Dato inválido’ fin
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.
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 begin if (m < n) then begin x := m; m := n; n := x; end; r := m mod n; while (r > 0) do begin m := n; n := r; r := m mod n; end; writeln (output, ‘El MCD es ‘, n) end else writeln (output, ‘Dato inválido’); end.