Metodología de La Programación - Programación Estructurada

download Metodología de La Programación - Programación Estructurada

of 24

Transcript of Metodología de La Programación - Programación Estructurada

  • 8/18/2019 Metodología de La Programación - Programación Estructurada

    1/24

    Metodología de la

    programación y desarrollode software

  • 8/18/2019 Metodología de La Programación - Programación Estructurada

    2/24

    Contenido

    1. Fases en la resolución deproblemas

    2. Programación modular

    3. Programaciónestructurada

  • 8/18/2019 Metodología de La Programación - Programación Estructurada

    3/24

    Fases en la resolución de problemas

    • Análisis del problema.

    • Diseño del algoritmo.

    • Codificación.

    • Compilación yejecución.

    • Verificación.

    • Depuración.

    • Mantenimiento.

    • Documentación.

  • 8/18/2019 Metodología de La Programación - Programación Estructurada

    4/24

    Características de un algoritmo

    • preciso (indica el orden de realización en cadapaso),

    • definido (si se sigue dos veces, obtiene el mismoresultado cada vez),

    • finito (tiene fin; un número determinado depasos).

  • 8/18/2019 Metodología de La Programación - Programación Estructurada

    5/24

    Análisis del problema

    • Requiere una clara definición, donde se contempleexactamente lo que debe hacer el programa y el resultado o

    solución deseada. • ¿Qué entradas se requieren? (tipode datos con los cuales se trabajay cantidad).

    • ¿Cuál es la salida deseada? (tipode datos de los resultados ycantidad).

    • ¿Qué método produce la salidadeseada?

    • Requisitos o requerimientosadicionales y restricciones a lasolución.

    Fases en la resolución de problemas

  • 8/18/2019 Metodología de La Programación - Programación Estructurada

    6/24

    Problema

    • Se desea obtener una tabla con las depreciaciones acumuladas y los valores reales decada año, de un automóvil comprado por 20.000 euros en el año 2005, durante losseis años siguientes suponiendo un valor de recuperación o rescate de 2.000.Realizar el análisis del problema, conociendo la fórmula de la depreciación anualconstante D para cada año de vida útil.

    D = coste – valor de recuperaciónvida útil

    D = 20,000 – 2,0006

    = 18,000

    6= 3,000

    Entrada• Coste original• Vida útil• Valor de recuperación

    Fases en la resolución de problemas

  • 8/18/2019 Metodología de La Programación - Programación Estructurada

    7/24

    Análisis del problema

    Entrada

    •Costeoriginal

    •Vida útil

    •Valor derecuperación

    Proceso

    •Depreciaciónacumulada

    •Cálculo dep.acum. Anual

    •Valor delauto cadaaño

    Salida

    •Depreciaciónanual

    •Depreciaciónacumulada

    •Valor delauto

    Fases en la resolución de problemas

  • 8/18/2019 Metodología de La Programación - Programación Estructurada

    8/24

    Salida solicitada

    Año Depreciación

    Depreciaciónacumulada

    Valor anual

    1 (2009) 3,000 3,000 17,000

    2 (2010) 3,000 6,000 14,000

    3 (2011) 3,000 9,000 11,000

    4 (2012) 3,000 12,000 8,000

    5 (2013) 3,000 15,000 5,000

    6 (2014) 3,000 18,000 2,000

    Fases en la resolución de problemas

  • 8/18/2019 Metodología de La Programación - Programación Estructurada

    9/24

    Codificación de un programa

    algoritmo primero

    Real: Coste, Depreciacion,

    Valor_Recuperacion

    Valor_Actual,

    Acumulado

    Valor_Anual;

    entero: Año, Vida_Util;

    inicio

    escribir('introduzca coste, valor recuperación y vida útil')

    leer(Coste, Valor_Recuperacion, Vida_Util)

    escribir('Introduzca año actual')

    leer(Año)

    Valor_Actual ← Coste;

    Depreciacion ← (Coste-Valor_Recuperacion)/Vida_Util

    Acumulado ← 0

    escribir('Año Depreciación Dep. Acumulada')

    mientras (Año < Vida_Util)

    Acumulado ← Acumulado + Depreciacion

    Valor_Actual ← Valor_Actual – Depreciacion

    escribir('Año, Depreciacion, Acumulado')

    Año ← Año + 1;

    fin mientras

    fin

    Fases en la resolución de problemas

  • 8/18/2019 Metodología de La Programación - Programación Estructurada

    10/24

    Diseño del algoritmo

    • Divide y vencerás

    • Diseño descendente (top-down) o modular

    • Módulo

    • Cualquier programa bien diseñado consiste en un programaprincipal (módulo de nivel más alto) que llama a los subprogramas.

    • Programación modular: Los módulos pueden ser planeados,codificados, comprobados y depurados independientemente(incluso por diferentes programadores) y a continuacióncombinarlos entre sí)

    Fases en la resolución de problemas

  • 8/18/2019 Metodología de La Programación - Programación Estructurada

    11/24

    Herramientas de programación

    • Diagramas de flujo: es una representación gráfica de un algoritmo.Diagrama de flujo

    Fases en la resolución de problemas

  • 8/18/2019 Metodología de La Programación - Programación Estructurada

    12/24

    Herramientas de programación

    Pseudocódigo

    Es una herramienta de

    programación en la que lasinstrucciones se escriben enpalabras similares al inglés oespañol, que facilitan tanto laescritura como la lectura deprogramas.

    Previsiones de depreciacionIntroducir coste

    vida util

    valor final de rescate (recuperacion)imprimir cabecerasEstablecer el valor inicial del añoCalcular depreciaciónmientras valor año =< vida util hacercalcular depreciacion acumuladacalcular valor actualimprimir una linea en la tabla

    incrementar el valor del añofin de mientras

    Fases en la resolución de problemas

  • 8/18/2019 Metodología de La Programación - Programación Estructurada

    13/24

    Herramientas de programación

    Pseudocódigo

    Previsiones de depreciacionIntroducir coste

    vida utilvalor final de rescate (recuperacion)

    imprimir cabecerasEstablecer el valor inicial del añoCalcular depreciaciónmientras valor año =< vida util hacercalcular depreciacion acumulada

    calcular valor actualimprimir una linea en la tablaincrementar el valor del añofin de mientras

    Fases en la resolución de problemas

  • 8/18/2019 Metodología de La Programación - Programación Estructurada

    14/24

    Herramientas de programación

    Ejemplo # 2

    Calcular la paga neta de un trabajadorconociendo el número de horas trabajadas, latarifa horaria y la tasa de impuestos

    Algoritmo1. Leer Horas, Tarifa, Tasa2. Calcular PagaBruta = Horas * Tarifa3. Calcular Impuestos = PagaBruta * Tasa4. Calcular PagaNeta = PagaBruta - Impuestos5. Visualizar PagaBruta, Impuestos, PagaNeta

    Fases en la resolución de problemas

  • 8/18/2019 Metodología de La Programación - Programación Estructurada

    15/24

    Herramientas de programación

    Ejemplo # 3Calcular el valor de la suma1+2+3+...+100.

    1. Establecer Contador a 1

    2. Establecer Suma a 03. mientras Contador

  • 8/18/2019 Metodología de La Programación - Programación Estructurada

    16/24

    Ejercicio

    • Calcular el mayor de dos números

    • Suma de dos números

    Fases en la resolución de problemas

  • 8/18/2019 Metodología de La Programación - Programación Estructurada

    17/24

    Compilación y ejecución

    Compilación

    Programa fuente se traduce a lenguaje de máquina. Si hay errores en

    el programa fuente, es preciso volver a editar el programa, corregirlos errores y compilar de nuevo.

    Programa objeto: es el programa ya compilado y sin errores.

    Programa ejecutable: carga el programa objeto con las librerías delprograma compilador.

    Fases en la resolución de problemas

  • 8/18/2019 Metodología de La Programación - Programación Estructurada

    18/24

    Verificación y depuración

    La verificación o compilación de un programa es el proceso de ejecución delprograma con una amplia variedad de datos de entrada, llamados datos de test oprueba, que determinarán si el programa tiene o no errores (“bugs”).

    El proceso de depuración sirve para encontrar errores, que pueden ser de tres tipos:

    • Errores de compilación: Se producen normalmente por un uso incorrecto de lasreglas del lenguaje de programación y suelen ser errores de sintaxis

    • Errores de ejecución: son instrucciones que la computadora puede comprender

    pero no ejecutar, por ejemplo: división entre cero, raíces cuadradas de númerosnegativos

    • Errores lógicos: Se producen en la lógica del programa y la fuente del error sueleser el diseño del algoritmo.

    Fases en la resolución de problemas

  • 8/18/2019 Metodología de La Programación - Programación Estructurada

    19/24

    Documentación y mantenimiento

    La importancia de la documentación debe ser destacada por su decisiva influencia enel producto final. Programas pobremente documentados son difíciles de leer, másdifíciles de depurar y casi imposibles de mantener y modificar.

    La documentación de un programa puede ser interna y externa.

    • La documentación interna es la contenida en líneas de comentarios.

    • La documentación externa incluye análisis, diagramas de flujo y/o pseudocódigos,manuales de usuario con instrucciones para ejecutar el programa y para interpretar

    los resultados.

    Fases en la resolución de problemas

  • 8/18/2019 Metodología de La Programación - Programación Estructurada

    20/24

    Programación modular

    • Se divide en módulos.

    • Cada uno de los cuales ejecuta una única actividad o tarea y se codifican

    independientemente de otros módulos.• Cada programa contiene un módulo denominado programa principal que controla

    todo lo que sucede; se transfiere el control a submódulos.

    • Dado que los módulos son independientes, diferentes programadores puedentrabajar simultáneamente en diferentes partes del mismo programa. Esto reducirá

    el tiempo del diseño del algoritmo y posterior codificación del programa.• Un módulo se puede modificar radicalmente sin afectar a otros módulos, incluso

    sin alterar su función principal.

  • 8/18/2019 Metodología de La Programación - Programación Estructurada

    21/24

    Programación modular

  • 8/18/2019 Metodología de La Programación - Programación Estructurada

    22/24

    Programación estructurada

    • C, Pascal, FORTRAN, y lenguajes similares, se conocen como lenguajes procedimentales (por procedimientos).

    • Cada sentencia o instrucción señala al compilador para que realice alguna tarea:obtener una entrada, producir una salida, sumar tres números, dividir por cinco,etc.

    • Un programa en un lenguaje procedimental es un conjunto de instrucciones osentencias.

    • En el caso de pequeños programas, estos principios de organización (denominados

    paradigma) se demuestran eficientes.• Cuando los programas se vuelven más grandes, cosa que lógicamente sucede

    cuando aumenta la complejidad del problema a resolver, la lista de instruccionesaumenta considerablemente, de modo tal que el programador tiene muchasdificultades para controlar ese gran número de instrucciones

  • 8/18/2019 Metodología de La Programación - Programación Estructurada

    23/24

    Programación estructurada

    • Para resolver este problema los programas se descompusieron en unidades máspequeñas que adoptaron el nombre de funciones (procedimientos, subprogramas osubrutinas en otros lenguajes de programación).

    • Con el paso de los años, la idea de romper el programa en funciones fueevolucionando y se llegó al agrupamiento de las funciones en otras unidades másgrandes llamadas módulos.

    • Esta característica hace que a medida que los programas se hacen más grandes ycomplejos, el paradigma estructurado comienza a dar señales de debilidad yresultando muy difícil terminar los programas de un modo eficiente

    • Existen debilidades de los programas estructurados en resolver problemascomplejos. Primero, las funciones tienen acceso ilimitado a los datos globales.Segundo, las funciones inconexas y datos, fundamentos del paradigmaprocedimental proporcionan un modelo pobre del mundo real.

  • 8/18/2019 Metodología de La Programación - Programación Estructurada

    24/24

    Programación estructurada

    Datos locales y datos globales

    Están ocultos en el interior de lafunción y son utilizados,exclusivamente, por la función.

    Datos globales

    •Se puede acceder desde cualquier función del programa.

    Datos locales