1. 30/10/08
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 Programación 1
Semestre B-2008
2
1
2. 30/10/08
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 Programación 1
Semestre B-2008
3
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 Programación 1
Semestre B-2008
4
2
3. 30/10/08
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?
Datos de entrada
Fuerza (F ∈ R) = 1,2 N
Aceleración (a ∈ R) = 3,0 m/s2
1 N = 1 Kg . 1 m/s2
Prof. Flor Narciso Programación 1
Semestre B-2008
5
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 Programación 1
Semestre B-2008
6
3
4. 30/10/08
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?
Datos de entrada Proceso
Fuerza (F ∈ R) = 1,2 N F=m.a
Aceleración (a ∈ R) = 3 m/s2 m = F/a
1 N = 1 Kg . 1 m/s2
Prof. Flor Narciso Programación 1
Semestre B-2008
7
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 Programación 1
Semestre B-2008
8
4
5. 30/10/08
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?
Datos de entrada Proceso Salidas
Fuerza (F ∈ R) = 1,2 N F=m.a masa (m ∈ R)
Aceleración (a ∈ R) = 3 m/s2 m = F/a
1 N = 1 Kg . 1 m/s2
Prof. Flor Narciso Programación 1
Semestre B-2008
9
Metodología de desarrollo de
programas: Análisis
¿ Qué le hacemos a los datos ?
¿ En qué orden (cuándo se lo F=m.a
hacemos) ? m = F/a
¿ Cuántas veces ?
masa
Datos Programa Información
(m ∈ R)
(Entrada) (Salida)
¿ Qué datos tenemos ?
¿ Cómo les llamamos ?
¿ Cómo son (=po y/o Fuerza (F ∈ R) = 1,2 N
estructura) ? Aceleración (a ∈ R) = 3 m/s2
¿ Qué se puede hacer con 1 N = 1 Kg . 1 m/s2
ellos ?
Prof. Flor Narciso Programación 1
Semestre B-2008
10
5
6. 30/10/08
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 Programación 1
Semestre B-2008
11
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é??)
F (Cómo????)
m=
a
Prof. Flor Narciso Programación 1
Semestre B-2008
12
€
6
7. 30/10/08
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 Programación 1
Semestre B-2008
13
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 Programación 1
Semestre B-2008
14
7
8. 30/10/08
Metodología de desarrollo de
programas: Diseño
Ejemplo: Notación formal!
Algoritmo calcularMasa!
0. Inicio
1. Leer (F)
2. Leer (a) Entradas
3. m = F/a Proceso
4. Escribir (m) Salida
5. Fin
Prof. Flor Narciso Programación 1
Semestre B-2008
15
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 Programación 1
Semestre B-2008
16
8
9. 30/10/08
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 Programación 1
Semestre B-2008
17
Metodología de desarrollo de
programas: Codificación
Ejemplo #include <stdio.h>
0. Inicio int main()
{
float F, a, m;
1. Leer (F)
2. Leer (a)
scanf(“%f”, &F);
scanf(“%f”, &a);
3. m = F/a
4. Escribir (m)
m = F/a;
5. Fin
printf(“m = %fn”, m);
return 0;
}
Prof. Flor Narciso Programación 1
Semestre B-2008
18
9
10. 30/10/08
Metodología de desarrollo de
programas: Codificación
Entradas
Fuerza (F ∈ R)
Aceleración (a ∈ R)
Salida
masa (m ∈ R)
Prof. Flor Narciso Programación 1
Semestre B-2008
19
Metodología de desarrollo de
programas: Codificación
F = 1.2
a = 3.0
Prof. Flor Narciso Programación 1
Semestre B-2008
20
10
11. 30/10/08
Metodología de desarrollo de
programas: Codificación
m = 1.2/3.0 = 0.4
Prof. Flor Narciso Programación 1
Semestre B-2008
21
Metodología de desarrollo de
programas: Codificación
m = 0.4
Prof. Flor Narciso Programación 1
Semestre B-2008
22
11
12. 30/10/08
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
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
Prof. Flor Narciso Programación 1
Semestre B-2008
24
12
13. 30/10/08
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
13
14. 30/10/08
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
14
15. 30/10/08
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
15
16. 30/10/08
Metodología de desarrollo de
programas: Ejecución
Funciones
Programa
Programa
de librería
fuente
fuente
Editor
Compilador
Encadenador
Código
objeto
Código
SI
NO
objeto
Errores Cargador
de
Corregir errores Código
sintaxis
en el programa ejecutable
Resultados
fuente
SI
Errores
de lógica
Ejecución
NO
Prof. Flor Narciso Solución del problema
31
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
16