La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Bases Metodológicas de la Programación

Presentaciones similares


Presentación del tema: "Bases Metodológicas de la Programación"— Transcripción de la presentación:

1 Bases Metodológicas de la Programación
Tema 2 Bases Metodológicas de la Programación

2 Representación de Algoritmos
Diagramas de Flujo Representación gráfica Claros en problemas pequeños y confusos en problemas grandes Pseudocódigo Lenguaje natural restringido Se ajusta a la programación estructurada

3 Programación estructurada
Programa estructurado es el construido a partir de las cinco estructuras básicas de control: Secuencia Selección Simple Selección doble Iteración con condición al principio Iteración con condición al final

4 Métodos de Descripción de Sintaxis
Gráficos de Conway Método de representación gráfico Claro y visual en casos pequeños Notación Backus-Naur Cada descripción es una definición Las definiciones se representan usando caracteres con un significado especial

5 Gráficos de Conway Realizan la descripción mediante el recorrido de un grafo dirigido Los literales se escriben dentro de un círculo Los objetos definidos aparecen dentro de un rectángulo

6 Ejemplo: Digito 1 2 3 4 dígito 5 6 7 8 9

7 Ejemplo: Número sin signo
dígito . - + E

8 Notación Backus-Naur Los símbolos ::= se usan como equivalencia
El objeto a definir aparece a la izquierda de ::= y la definición a la derecha Si hay más de una definición de separan con el símbolo | Los literales en letra normal Los términos que se usan para describir entre <> o en itálica Los términos que se repitan (0 o más) se encierran entre llaves {}

9 Ejemplo: Número sin signo
<digito> ::= 0| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 <digitos> ::= <digito> {<digito>} <exponente> ::= E <digitos> | E + <digitos> | E - <digitos> | <numero> ::= <digitos> | <digitos> <exponente> | <digitos> . <digitos> | <digitos> . <digitos> <exponente>

10 Métodos de Diseño de Programas
Diseño descendente Diseño modular Diseño mixto En cada paso del refinamiento se decide si una acción no elemental: Se refina (diseño descendente) Se “contrata” (diseño modular)

11 Diseño Descendente Se busca una solución para un procesador de alto nivel Refinamientos sucesivos En cada nivel se van detallando las acciones hasta obtener un algoritmo en términos de acciones elementales Ejemplo: Resolver la ecuación de segundo grado ax2 + bx + c = 0 dados tres números reales como coeficientes

12 Ejemplo diseño descendente: Nivel 1
inicio leer a, b, c si a ≠ 0 entonces disc ← b2 – 4*a*c si disc > 0 entonces calcular soluciones reales si‗no si disc = 0 entonces calcular solución doble calcular soluciones complejas fin‗si si_no escribir ‘No es de segundo grado’ fin

13 Ejemplo diseño descendente: Nivel 2
inicio leer a, b, c si a ≠ 0 entonces disc ← b2 – 4*a*c si disc > 0 entonces escribir (-b+ √ disc) / (2*a) escribir (-b - √ disc) / (2*a) si‗no si disc = 0 entonces escribir –b / (2*a) ‘doble’ real ← -b / (2*a) imag ← √ (-disc) / (2*a) escribir real ‘+’ imag ‘i’ escribir real ‘-’ imag ‘i’ fin‗si si_no escribir ‘No es de segundo grado’ fin

14 Diseño Modular Cada acción no elemental se convierte en un módulo que se traduce en un subprograma Los módulos no se comunican con el exterior Módulos Tarea determinada (acción o calculo no elemental) Análisis, diseño, codificación y pruebas independientes Reutilizables Elevan el nivel del lenguaje Favorecen la fragmentación y distribución de trabajo Pueden definir subtareas (submódulos) Ejemplo: Expresar en binario un número estrictamente positivo

15 Ejemplo diseño modular
decimal_binario maxima_potencia num maxpot

16 Ejemplo diseño modular. Algoritmo principal
inicio leer n si (n > 0) entonces maxima‗potencia (n, maxpot) repetir si n ≥ maxpot entonces escribir 1 n ← n – maxpot si‗no escribir 0 fin‗si maxpot ← maxpot / 2 hasta_que (maxpot = 0) si_no escribir ‘Dato inválido’ fin

17 Ejemplo diseño modular. Algoritmo para el módulo
modulo maxima_potencia (entrada:num, salida:maxpot) inicio maxpot ← 1 mientras (maxpot ≤ num) hacer maxpot ← maxpot * 2 fin_mientras maxpot ← maxpot / 2 fin

18 Documentación de Programas
Documentación Interna Comentarios Identificación (objetivo, e/s, fecha, autor…) Rastros de diseño Verificación Nombres adecuados de elementos (constantes, variables, subprogramas) Documentación Externa Resultados de las fases de Análisis (documento de especificación, pruebas de escritorio) Diseño (diseño modular, algoritmo, trazas) Codificación (pruebas de ejecución)

19 Depuración y Pruebas de Programas
Verificación: demostrar la corrección: “el programa/módulo cumple la especificación” Tiene éxito cuando lo demuestra Se basa en una formulación lógica del programa/módulo Validación: incrementar la fiabilidad del programa/módulo Se basa en pruebas (de escritorio, trazas, en ejecución) Tiene éxito cuando encuentra un error Batería de pruebas “económica”, encuentra el mayor número de errores con el menor número casos Depuración: estudio de las causas y consecuencias del error, localización, reparación (codificación, diseño, análisis) y actualización de la documentación


Descargar ppt "Bases Metodológicas de la Programación"

Presentaciones similares


Anuncios Google