metodología de desarrollo de programas

16
30/10/08 1 Programación 1 (03) Unidad III: Metodología de desarrollo de programas Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes Metodología de desarrollo de programas Obje%vo: Resolver problemas mediante el uso de una computadora Actualmente se cuenta con disEntas metodologías para el desarrollo de aplicaciones de soFware: Espiral, Watch, RUP, EUP, Incremental, Cascada, Cascada V, etc. Prof. Flor Narciso 2 Programación 1 Semestre B-2008

Upload: cristhian-alexander

Post on 28-Jun-2015

14.281 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Metodología de desarrollo de programas

30/10/08

1

Programación 1 (03) Unidad III: Metodología de desarrollo de programas 

Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas 

Facultad de Ingeniería Universidad de Los Andes 

Metodología de desarrollo de programas 

Obje%vo: Resolver problemas mediante el uso de una computadora 

•  Actualmente se cuenta con disEntas metodologías para el desarrollo de aplicaciones de soFware: Espiral, Watch, RUP, EUP, Incremental, Cascada, Cascada V, etc. 

Prof. Flor Narciso 2 Programación 1 Semestre B-2008

Page 2: Metodología de desarrollo de programas

30/10/08

2

Metodología de desarrollo de programas 

•  Pasos de la metodología a u=lizar en el curso –  Análisis del problema –  Diseño del algoritmo –  Codificación –  “Corrida en frío” del programa –  Depuración del programa –  Ejecución del programa –  Comprobación del programa –  Puesta en operación del programa – Mantenimiento del programa  

Prof. Flor Narciso 3 Programación 1 Semestre B-2008

Metodología de desarrollo de programas: Análisis 

Análisis del problema (Análisis E‐P‐S) 

•  IdenEficar y comprender el problema  

•  Describir: –  Los datos de entrada (E): Información necesaria para la solución del 

problema •  ¿ Qué datos son de entrada ? •  ¿ Cuántos datos se introducirán ? •  ¿ Cuáles datos de entrada son válidos ? 

Prof. Flor Narciso 4 Programación 1 Semestre B-2008

Page 3: Metodología de desarrollo de programas

30/10/08

3

Metodología de desarrollo de programas: Análisis 

Ejemplo  Se patea una pelota con una fuerza de 1,2 N y adquiere una aceleración de 3,0 m/s2, ¿cuál es la masa de la pelota? 

Prof. Flor Narciso

Datos de entrada

Fuerza (F ∈ R) = 1,2 N Aceleración (a ∈ R) = 3,0 m/s2

1 N = 1 Kg . 1 m/s2

5 Programación 1 Semestre B-2008

Metodología de desarrollo de programas: Análisis 

Análisis del problema (Análisis E‐P‐S) 

•  Describir: 

–  El proceso que permite resolver el problema (P): Operaciones o cálculos necesarios para encontrar la solución del problema •  ¿ Qué Epo de ecuaciones ? •  ¿ Cuántas ecuaciones ? 

Prof. Flor Narciso 6 Programación 1 Semestre B-2008

Page 4: Metodología de desarrollo de programas

30/10/08

4

Metodología de desarrollo de programas: Análisis 

Ejemplo  Se patea una pelota con una fuerza de 1,2 N y adquiere una aceleración de 3,0 m/s2, ¿cuál es la masa de la pelota? 

Prof. Flor Narciso

Datos de entrada Proceso

Fuerza (F ∈ R) = 1,2 N Aceleración (a ∈ R) = 3 m/s2

1 N = 1 Kg . 1 m/s2

F = m . a m = F/a

7 Programación 1 Semestre B-2008

Metodología de desarrollo de programas: Análisis 

Análisis del problema (Análisis E‐P‐S) •  Describir: 

–  Los resultados esperados (S): Resultados finales de los cálculos •  ¿ Cuáles son los datos de salida ? •  ¿ Cuántos datos de salida se producirán ? •  ¿ Qué precisión tendrán los resultados ? •  ¿ Se debe imprimir un encabezado ? 

Prof. Flor Narciso 8 Programación 1 Semestre B-2008

Page 5: Metodología de desarrollo de programas

30/10/08

5

Metodología de desarrollo de programas: Análisis 

Ejemplo  Se patea una pelota con una fuerza de 1,2 N y adquiere una aceleración de 3 m/s2, ¿cuál es la masa de la pelota? 

Prof. Flor Narciso

Datos de entrada Proceso Salidas

Fuerza (F ∈ R) = 1,2 N Aceleración (a ∈ R) = 3 m/s2

1 N = 1 Kg . 1 m/s2

F = m . a m = F/a

masa (m ∈ R)

9 Programación 1 Semestre B-2008

Metodología de desarrollo de programas: Análisis 

Prof. Flor Narciso

Programa Datos (Entrada)

Información (Salida)

10 Programación 1 Semestre B-2008

¿ Qué datos tenemos ?  ¿ Cómo les llamamos ? ¿ Cómo son (=po y/o estructura) ? ¿ Qué se puede hacer con     ellos ? 

 ¿ Qué le hacemos a los datos ?  ¿ En qué orden (cuándo se lo      hacemos) ?  ¿ Cuántas veces ?     

Fuerza (F ∈ R) = 1,2 N Aceleración (a ∈ R) = 3 m/s2

1 N = 1 Kg . 1 m/s2

F = m . a m = F/a

masa (m ∈ R)

Page 6: Metodología de desarrollo de programas

30/10/08

6

Metodología de Desarrollo de Programas: Análisis 

Análisis del problema (Análisis E‐P‐S) 

Entradas:  

–  Fuerza (F ∈ R) –  Aceleración (a ∈ R) 

Prof. Flor Narciso 11 Programación 1 Semestre B-2008

Metodología de desarrollo de programas: Análisis 

Análisis del problema (Análisis E‐P‐S) 

Proceso:  

–  Calcular la masa de la pelota (Qué??)     

    

Prof. Flor Narciso 12 Programación 1 Semestre B-2008

m =Fa

(Cómo????) 

Page 7: Metodología de desarrollo de programas

30/10/08

7

Metodología de desarrollo de programas: Análisis 

Análisis del problema (Análisis E‐P‐S) 

Salidas:  

– Masa de la pelota (m ∈ R)     

    

Prof. Flor Narciso 13 Programación 1 Semestre B-2008

Metodología de desarrollo de programas: Diseño 

Diseño del algoritmo: Descripción de una secuencia finita y ordenada de pasos – sin ambigüedades – que conducen a la solución de un problema dado 

  Herramientas de diseño  Diagramas de flujos (programación estructurada)  Círculos y canales de mensaje (programación orientada por objetos) 

 Pseudo código (algoritmo)  Trazas personales  Fórmulas matemáticas  Todo aquello que le ayude a representar la solución del problema 

Prof. Flor Narciso 14 Programación 1 Semestre B-2008

Page 8: Metodología de desarrollo de programas

30/10/08

8

Metodología de desarrollo de programas: Diseño 

Ejemplo: Notación formal!

Algoritmo calcularMasa!0. Inicio 1. Leer (F) 2. Leer (a) 

3. m = F/a 

4. Escribir (m) 5. Fin 

Prof. Flor Narciso

Entradas 

Proceso 

Salida 

15 Programación 1 Semestre B-2008

Metodología de desarrollo de programas: Diseño 

•  Un algoritmo debe ser preciso e indicar el orden de realización de cada paso 

•  Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez 

•  Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento; o sea, debe tener un número finito de pasos 

Prof. Flor Narciso 16 Programación 1 Semestre B-2008

Page 9: Metodología de desarrollo de programas

30/10/08

9

Metodología de desarrollo de programas: Codificación 

Codificación:  Traducción del algoritmo a un programa escrito en un lenguaje de programación adecuado (código fuente) 

•  Los diferentes pasos de un algoritmo se expresan en los programas como sentencias o proposiciones 

•  Para escribir el programa en la computadora se uEliza un soFware llamado editor de texto 

•  Lenguaje de programación C 

Prof. Flor Narciso 17 Programación 1 Semestre B-2008

Metodología de desarrollo de programas: Codificación 

Ejemplo 

0. Inicio 

1. Leer (F) 2. Leer (a) 

3. m = F/a 

4. Escribir (m) 

5. Fin 

#include <stdio.h>

int main() { float F, a, m;

scanf(“%f”, &F); scanf(“%f”, &a); m = F/a; printf(“m = %f\n”, m); return 0;

}

Prof. Flor Narciso 18 Programación 1 Semestre B-2008

Page 10: Metodología de desarrollo de programas

30/10/08

10

Metodología de desarrollo de programas: Codificación 

Prof. Flor Narciso Programación 1 Semestre B-2008

19

Entradas

Fuerza (F ∈ R) Aceleración (a ∈ R)

Salida

masa (m ∈ R)

Metodología de desarrollo de programas: Codificación 

Prof. Flor Narciso Programación 1 Semestre B-2008

20

F = 1.2

a = 3.0

Page 11: Metodología de desarrollo de programas

30/10/08

11

Metodología de desarrollo de programas: Codificación 

Prof. Flor Narciso Programación 1 Semestre B-2008

21

m = 1.2/3.0 = 0.4

Metodología de desarrollo de programas: Codificación 

Prof. Flor Narciso Programación 1 Semestre B-2008

22

m = 0.4

Page 12: Metodología de desarrollo de programas

30/10/08

12

Metodología de desarrollo de programas: Corrida en frío 

Corrida en frío del programa: Prueba manual de la correcEtud del programa 

•  El programador escoge un conjunto de datos de entrada, ejecutando manualmente cada sentencia del programa fuente y verificando que los resultados obtenidos son los esperados de acuerdo al conjunto de datos de entrada 

•  El programador debe realizar este proceso uElizando conjuntos de datos que permitan ejecutar todos los “caminos” posibles del programa 

Prof. Flor Narciso Programación 1 Semestre B-2008

23

Metodología de desarrollo de programas: Corrida en frío 

Ejemplo 

Prof. Flor Narciso

F a m

1.2 3.0 0.4

2.0 4.0 0.5

1.5 2.0 0.75

1.5 0.0 infinito

Programación 1 Semestre B-2008

24

Page 13: Metodología de desarrollo de programas

30/10/08

13

Metodología de desarrollo de programas: Depuración 

Depuración del programa: IdenEficación y eliminación de errores una vez que el programa ha sido compilado 

–  Errores de sintaxis: Violan las reglas del lenguaje de programación. Un buen compilador localizará e idenEficará la mayoría de estos automáEcamente 

–  Errores lógicos: Equivocaciones que causan que el programa se ejecute de forma inesperada o incorrecta 

Prof. Flor Narciso Programación 1 Semestre B-2008

25

Metodología de desarrollo de programas: Ejecución 

Ejecución del programa: Ejecución del código ejecutable (código en lenguaje de máquina) del programa bajo el control del CPU 

•  Una vez editado, el programa fuente es traducido por el compilador a un programa escrito en lenguaje de máquina (código objeto), siempre y cuando el programa no tenga errores de sintaxis (errores gramaEcales)  

 Ejemplo: Error de sintaxis    if (a < b  // Falta un paréntesis que cierra  

Prof. Flor Narciso Programación 1 Semestre B-2008

26

Page 14: Metodología de desarrollo de programas

30/10/08

14

Metodología de desarrollo de programas: Ejecución 

•  Si el programa fuente Eene errores de sintaxis no se genera código objeto 

•  Los errores deben ser corregidos usando el editor y luego el programa fuente se debe volver a compilar 

•  Cuando el programa está sintácEcamente correcto, el código objeto es encadenado con las funciones de librería (otros programas) requeridas usando un soFware llamado encadenador 

Prof. Flor Narciso Programación 1 Semestre B-2008

27

Metodología de desarrollo de programas: Ejecución 

•  El código objeto compilado y encadenado es cargado en la memoria principal para su ejecución por un soFware llamado cargador 

•  El código objeto compilado, enlazado y cargado (código ejecutable) es ejecutado haciendo uso de los datos de entrada 

Prof. Flor Narciso Programación 1 Semestre B-2008

28

Page 15: Metodología de desarrollo de programas

30/10/08

15

Metodología de desarrollo de programas: Comprobación 

Comprobación del programa: Verificación de que los resultados obtenidos después de la ejecución del programa corresponden con los resultados 

esperados  

Prof. Flor Narciso Programación 1 Semestre B-2008

29

Metodología de desarrollo de programas: Comprobación 

•  Comprobar que el programa realiza las tareas para las cuales ha sido diseñado y produce el resultado correcto y esperado 

•  Si el programa Eene errores de lógica (errores en el método de solución por lo que las salidas obtenidas no corresponden con las salidas esperadas), éstos deben ser corregidos en el programa fuente usando el editor, el cual se debe volver a compilar 

Ejemplo  b = 0;  c = 5/b;   // División entre cero 

Prof. Flor Narciso Programación 1 Semestre B-2008

30

Page 16: Metodología de desarrollo de programas

30/10/08

16

Metodología de desarrollo de programas: Ejecución 

Prof. Flor Narciso

Programa fuente

Editor

Programa fuente

Compilador

Errores de

sintaxis

SI NO

Encadenador

Corregir errores en el programa

fuente

Código objeto

Funciones de librería

Cargador

Código objeto

Ejecución

Código ejecutable

Errores de lógica

NO

SI Resultados

31 Solución del problema

Metodología de desarrollo de programas: Puesta en operación y mantenimiento 

Puesta en operación: Instalación del hardware y soFware, capacitación, etc.. 

Mantenimiento del programa:  –  Comienza tan pronto como el producto es puesto en operación 

–  Permite corregir defectos menores, añadir una mayor funcionalidad, ya sea en respuesta a las demandas del mercado o a las peEciones del usuario 

Prof. Flor Narciso Programación 1 Semestre B-2008

32