You are on page 1of 13

Fundamentos de

Programación

Capítulo 3
Fases del desarrollo de un programa
Objetivos del capítulo
 Comprender las diferentes aproximaciones de diseño: top-down y
botton-up
 Utilizar un entorno de desarrollo de programas
 Comprender la utilidad de cada fase de la codificación.
 Realizar algún programa sencillo en C en un entorno de desarrollo
integrado.
 Conocer los documentos básicos que debe tener una aplicación
informática y el contenido de los mismos.
 Aprender a realizar pruebas sistemáticas sobre los programas que
realiza para detectar los errores en los mismos

Fundamentos de programación 2 © J. Carretero, F. García, J. M. Pérez, J. Fernández, A. Calderón
Contenido del capítulo
 Los tipos de diseño en la realización de aplicaciones: Aplicación
de métodos de diseño de programas en programación estructurada.
 Aplicación práctica de las diferentes fases del desarrollo de
programas: diseño, codificación, compilación, depuración y
realización de pruebas unitarias.
 Descripción del entorno de desarrollo: Edición, Compilación,
Montaje. Depuración y Ejecución.
 Documentación de aplicaciones.
 Documentación del código.
 Elaboración de conjuntos de pruebas para programas realizados

Fundamentos de programación 3 © J. Carretero, F. García, J. M. Pérez, J. Fernández, A. Calderón
Diseño
 Diseño Descendente o Top-down
Se definen grandes módulos que se subdividen a su vez en otros
más pequeños y estos en otros menores hasta llegar a un nivel
cercano a la codificación. Cada partes, o módulos, en las que se
subdivide la aplicación debe tener la suficiente independencia
de las demás
 Diseño Ascendente o Botton-up
Se parte de módulos cercanos a la codificación para agruparlos
sucesivamente y llegar a formar un conjunto que será la
aplicación completa. Se utiliza cuando se desea reutilizar
módulos ya construidos

Fundamentos de programación 4 © J. Carretero, F. García, J. M. Pérez, J. Fernández, A. Calderón
Codificación
 Fases de la Codificación
1. Crear el código fuente en un lenguaje de alto nivel como C
utilizando editores de texto o entornos integrados como el Borlan-
C, o el Dev-C++. El programa se puede dividir en varios ficheros
2. Compilación: detecta errores sintácticos y semánticos que pudiera
tener nuestro programa y se generará el código objeto, que aunque
no es directamente ejecutable por el ordenador está escrito en un
lenguaje más cercano al mismo.
3. Los diferentes códigos objeto que componen un programa se unen
en el proceso de enlazado, que es realizado por el linker. En este
proceso se resuelven referencias externas y se crea un fichero
ejecutable.

Fundamentos de programación 5 © J. Carretero, F. García, J. M. Pérez, J. Fernández, A. Calderón
Utilización de DEV-C++
 Si la aplicación consta de varios ficheros hay que seleccionar
Archivo->Nuevo->Proyecto
 Elegir el tipo Console Aplication , darle un nombre al proyecto,
y marcar “En C”
 Con esto aparecerá una ventana un código base que podremos
modificar.
 Para ejecutar seleccionar Ejecutar->Ejecutar
 En la depuración se pueden añadir puntos de ruptura, ver el
contenido de las variables, ejecutar instrucción por instrucción,
etc.

Fundamentos de programación 6 © J. Carretero, F. García, J. M. Pérez, J. Fernández, A. Calderón
Esquema básico de un programa realizado con DEV-C++
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[]) {

system("PAUSE");
return EXIT_SUCCESS;
}

Fundamentos de programación 7 © J. Carretero, F. García, J. M. Pérez, J. Fernández, A. Calderón
Pantalla compilación DEV-C++

Fundamentos de programación 8 © J. Carretero, F. García, J. M. Pérez, J. Fernández, A. Calderón
Documentación de aplicaciones
Los documentos que debe tener una aplicación Sw :
 Documentos para el desarrollo de la aplicación.
 Especificación de los requisitos
 Documento de diseño
 El código, adecuadamente comentado.
 Plan de pruebas :Plan de pruebas unitarias, plan de integración y
plan de pruebas de validación
 Plan de calidad
 Plan de control de configuración
 Documentos para el usuario
 El manual de instalación
 El manual de usuario

Fundamentos de programación 9 © J. Carretero, F. García, J. M. Pérez, J. Fernández, A. Calderón
Pruebas de Software

Caso de prueba es un conjunto de :
 Entradas que deben ser introducidas para realizar una
ejecución del programa,
 Condiciones de ejecución (por ejemplo ejecutar bajo MS-
DOS versión 6.0) y
 Resultados esperados

Fundamentos de programación 10 © J. Carretero, F. García, J. M. Pérez, J. Fernández, A. Calderón
Pruebas de Software
Tipos de pruebas unitarias:
 Pruebas de Caja Blanca: Se observa la estructura interna del programa
para elegir los casos de prueba. Se realiza una selección de los caminos
posibles de la ejecución
 Pruebas de Caja Negra: Se seleccionan los casos de prueba basándose
en la funcionalidad esperada del mismo, en la especificación de lo que
debe hacer el programa.
o Selección de clases de equivalencia: selecciona los casos de
prueba que sean representativos de un conjunto de datos de
entrada.
o Análisis de los valores límite: se seleccionan los casos de prueba
que examinan las restricciones límites del programa tanto en la
entrada como en la salida del mismo.

Fundamentos de programación 11 © J. Carretero, F. García, J. M. Pérez, J. Fernández, A. Calderón
Grafo para las pruebas de caja blanca
PROGRAMA pruebas_pares;
VARIABLES
a, b : integer;
INICIO
HACER (* N1 *)
HACER (* N2 *)
ESCRIBIR ('Dar primer numero ');(* N2 *)
LEER (a); (* N2 *)
ESCRIBIR ('Dar segundo numero ');(* N2 *)
LEER (b); (* N2 *)
MIENTRAS (a < 0) OR (b < 0); (* N3 y N4 *)
SI a > b THEN (* N5 *)
ESCRIBIR ('El mayor es ',a) (* N6 *)
SINO
ESCRIBIR ('El mayor es ',b); (* N7 *)
MIENTRAS (a! = 0); (* N8 *)
END.

Fundamentos de programación 12 © J. Carretero, F. García, J. M. Pérez, J. Fernández, A. Calderón
Errores de programación comunes a la hora de realizar
aplicaciones
 No realizar diseño previo.
 Intentar corregir errores de ejecución del programa colocando
sentencias de escritura adicionales al código: Es una opción
posible, pero es mejor utilizar el depurador .
 No realizar el número suficiente de pruebas a la aplicación.
 Realizar pruebas arbitrarias.
 No repetir las pruebas una vez corregido un error.
 No acompañar la aplicación con documentación.
 No realizar el manual de usuario hasta el final.

Fundamentos de programación 13 © J. Carretero, F. García, J. M. Pérez, J. Fernández, A. Calderón