metodología de desarrollo de programas
TRANSCRIPT
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
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
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
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
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)
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????)
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
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
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
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
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
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
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
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
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
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