Sei sulla pagina 1di 9

DISEO DE UN PROGRAMA

A la hora de afrontar la realizacin de un programa debemos tener claro qu debemos hacer. Es un


error comenzar a crear software a lo loco ya que solo conseguiremos dedicar a este menester ms
tiempo del necesario. Adems, el proceso de creacin no solo conlleva picar cdigo sino que una vez
se ha generado un cdigo ejecutable este debe ser probado, de forma que se detecten posibles fallos
de ejecucin para su correccin antes de promocionarlo entre los usuarios finales.
As, a la hora de construir un programa se deben seguir una serie de pautas o fases:

Anlisis del problema.

Diseo del algoritmo.

Codificacin.

Prueba y depuracin.

Documentacin.

FASE DE ANLISIS DEL PROBLEMA


En esta fase se debe analizar con detenimiento el problema que se plantea. A la hora de realizar un
programa debemos tener clara cul es su finalidad y a quien va dirigido. As, debemos tener una
perspectiva cercana a la exactitud de qu elementos debe incluir y que tareas debe realizar. Cuando
el software es para nuestro uso personal nosotros mismo especificamos las pautas y decidimos su
funcionalidad, en cambio, cuando debe ser usado por otras personas, para conocer sus necesidades
debemos entrevistamos con ellos.
As, normalmente, cuando una persona individual o una empresa nos encarga la realizacin de un
programa debemos concertar una entrevista de forma que de ella obtengamos una visin particular de
las necesidades del usuario o la empresa y de las tareas que debe realizar el software.
La fase de anlisis en una parte fundamental del proceso de desarrollo de un programa, una de las
ms importantes, ya que un mal anlisis puede hacer que un programa ya codificado y probado deba
realizarse de nuevo.
En qu tipo de ordenadores esperamos ejecutar el software. Sistema operativo para el que se disea,
microprocesador y memoria mnimos, etc. Las aplicaciones en funcin de su codificacin sern ms
o menos ptimas de forma que necesitarn ordenadores de mayor o menor rendimiento. Debemos
conocer esta caracterstica justo en este punto para en la fase de codificacin adaptar las tareas a los
recursos de los que vamos a disponer.
A quin va dirigido el software. No es lo mismo disear un programa para personas acostumbradas a
usar todo tipo de aplicaciones y otras que utilicen mnimamente las nuevas tecnologas.
Cules sern los datos de entrada. A la hora de usar el programa, cules sern los datos que se van a
procesar, por ejemplo, si vamos a disear una aplicacin para una cafetera los datos a introducir sern
las caractersticas de los diferentes alimentos que tendremos de venta a nuestros clientes.

Cules sern los datos de salida. En funcin de los datos de entrada y las operaciones que realicemos
con ellos cules sern los datos de salida esperados. En el caso de la cafetera podra ser un ticket
impreso con los diferentes productos consumidos.
Cules sern las operaciones a realizar para que a partir de unos datos de entrada dados obtengamos
la salida que hemos analizado con anterioridad.

FASE DE DISEO DEL ALGORITMO


Una vez se tengan claras las tareas a realizar, los datos que se van a usar, en qu sistemas se ejecutar
el software, etc., pasamos a desarrollar el algoritmo que representa de forma tcnica cmo abordar el
problema inicial.
En la fase de algoritmo usaremos diagramas de flujo y pseudocdigo. En la fase anterior
concretbamos todos los elementos que el programa deba tener en cuenta y las tareas a realizar,en
esta se identifican soluciones a los problemas planteados, as como pasos de ejecucin para concretar
las tareas.
La fase de diseo es una especificacin detallada que facilita posteriormente la programacin
en un lenguaje de programacin concreto.

PROGRAMA: notaAsignatura ENTORNO: Nota es nmero entero


ALGORITMO:
escribir "Introduce nota" leer Nota
SI Nota < 5 ENTONCES
escribir "Suspenso"
SI NO
escribir "Aprobado"
FIN SI FIN PROGRAMA

Fase de diseo, ejemplo de pseudocdigo del diagrama


de flujo representado en la Figura

Fase de diseo. Diagrama de flujo de un


programa simple. Muestra por pantalla la
palabra suspenso o aprobado en funcin de
si la nota

Existen unas pautas a seguir en el desarrollo de diagramas de flujo y pseudocdigo, estudiaremos


estas en siguiente es apartados.

FASE DE PROGRAMACIN (CODIFICACIN)


Es en esta fase donde se usar un lenguaje de programacin concreto de forma que el algoritmo
anterior se convierta realmente en un programa que pueda ser ejecutado. Llegados a este punto solo
tendremos que ver lnea a lnea el algoritmo anteriormente descrito y convertir estas a los smbolos
admitidos por el lenguaje de programacin que vayamos a usar. En ocasiones no ser tan fcil la

conversin, ya que existirn lneas que no puedan plasmarse con el significado que se colocaron en
el algoritmo usando el lenguaje de programacin escogido tendremos que buscar alternativas.
PROGRAMA: notaAsignatura ................ ...

^Public void notaAsignatura ( ) {

ENTORNO: Nota es nmero entero ...............


ALGORITMO:

i| --- > int nota;

SI Nota < 5 ENTONCES


escribir "Suspenso"
SI NO
escribir "Aprobado"
FIN SI
FIN PROGRAMA

... sranf i"r fcn'it-al;


... ^ if (nota <5} f
Yl Drintf ("Suspenso"! ;
} '
. else {
printf ("Aprobado");
}

A la izquierda se muestra el pseudocdigo ejemplo del apartado anterior.


A la derecha vemos el programa de este algoritmo escrito en C++.

1. Se establece el entorno, es decir, los elementos de almacenamiento de informacin


(variables) que debemos usar. En nuestro programa a este componente se llama Nota.
2. Se escribe en pantalla el mensaje Introduce una nota. C y C++ usan la funcin printf
para mostrar informacin al usuario mediante el display o dispositivo hardware de salida
por defecto.
3. Llegados a este punto el programa se detiene a la espera de que el usuario escriba la
informacin pedida. Se recoge el dato en el componente Nota antes declarado. Una de las
funciones que utilizan C y C++ para la lectura de informacin es scanf. Esta funcin
necesita saber qu tipo de informacin va a recoger, es decir, si ser un nmero, un texto,
un valor decimal o un carcter, de ah el %i.
NOTA: C++ es un lenguaje de programacin orientado a objetos y en l solemos usar
normalmente otro tipo de elementos para realizar la funcin de mostrar o recoger informacin al
o del usuario. Encontraremos lneas similares a cout Mensaje cuando queremos mostrar
informacin al usuario y cin variable cuando queremos realizar la j operacin contraria.
4. A continuacin el programa realizar una pequea comprobacin, en funcin de la cual,
realizar una accin u otra. C y C++ utilizan la palabra reservada if para evaluar una
condicin. Se traduce ms o menos a si la condicin se cumple... As, si el valor
especificado por el usuario es menor que 5 se mostrar en pantalla el texto Suspenso y en
caso contrario (else) el texto Aprobado.

FASE DE PRUEBAS Y DEPURACIN


Una vez el programa se crea debemos comenzar a probrarlo antes de distribuirlo al usuario final. Si
bien es cierto que cuando se crea un software, este se prueba repetidamente, se abordan los fallos ms
relevantes, pero cuando pasa a ser probado por el usuario final es posible que surjan nuevos fallos
de los que no nos hemos percatado. As, cuando se crea un programa y se saca al mercado es normal
encontrar cada cierto tiempo actualizaciones del mismo, estas proporcionan nuevas funciones pero
adems subsanan errores no controlados.
Durante las pruebas del software se suponen todas las situaciones en las que se puede encontrar el
programa y se observa cmo acta ante ellas. La depuracin consiste en el uso de valores de prueba
para la deteccin de posibles errores, correccin de los mismos, y as elaborar una versin del software
libre de fallos. As la depuracin es el proceso de deteccin de errores en tiempo de ejecucin y
correccin de los mismos.
pubc void notaAsignatura (j{
Imaginemos que el programa ejemplo
mt nota;
del Apartado 1.3.3. lo hemos codificado
printf ("introduce
unanota"),de forma que la linea if (nota < 5) la
scanf r%i", snota)hemos escrito como if (nota > 5).
(
'
if nota > 5 )
^ pnntf ("suspenso");
Cuando iniciamos la fase de
eise (
depuracin y escogemos como valor de
printf ("Aprobado"),prueba 8, es decir, nota = 8, qu
suceder?
v

Programa del Apartado 1.3.3 modificado.

Al llegar a la condicin vemos que esta dice algo como si nota es mayor que 5 escribe Suspenso,
nuestra nota es 8, mayor que 5, as la palabra Suspenso es lo que se visualizar, pero, es correcta la
solucin? Evidentemente no, ya que una nota de 8 es muy aceptable y para nada se considera
suspenso. Dada esta situacin, el desarrollador del programa sustituir el smbolo > por < y seguir
realizando nuevas pruebas.
Cuando todos los valores de entrada posible se hayan analizado y se hayan observado todas las salidas
obtenidas, si estas son correctas daremos por finalizada la fase de depuracin y pruebas.

FASE DE DOCUMENTACIN
Para finalizar el proceso de creacin de un programa crearemos documentacin relacionada con este.
Es necesario que el usuario final conozca qu requisitos debe poseer el hardware, cmo podemos
ejecutar el software (formato de ejecucin o posibles parmetros a usar), o cules son los valores de
entrada que acepta.
Existen aplicaciones diseadas para la creacin de documentacin, los tpicos ficheros de ayuda que
todos conocemos, aunque es fcil crear un manual con paquetes ofimticos tales como Microsoft
Office y Libre Office. El primero de ellos utiliza Microsoft Word y el segundo Write.

EJEMPLO DE CREACIN DE UN PROGRAMA


En este apartado vamos a ejemplificar las fases anteriormente descritas, teniendo en cuenta un
problema real. Supongamos que una empresa se pone en contacto con nosotros y nos pide realizar un
software que debe detectar si un nmero introducido es par o no.
FASE 1. ANLISIS DEL PROBLEMA
Concertamos una entrevista con la persona encargada en la empresa que pueda hablamos sobre el tipo
de software que necesita. En esta entrevista preguntaremos qu tipos de datos de entrada se deben
usar, una vez se procese un dato qu salida se debe obtener, si se produce un error qu se espera
visualizar, etc.
Tras el encuentro queda claro que:
1. El programa solicitar un nmero. Solo se pueden comprobar los 100 primeros nmeros.
El cero no es un valor vlido.
2. En caso de que el nmero sea par se visualizar en la pantalla El nmero introducido es
par.
3. En caso de que el nmero sea impar se visualizar en la pantalla El nmero introducido
es impar.
4. Si el nmero a comprobar es el cero se visualizar por pantalla el mensaje Valor
incorrecto, el cero no es un valor vlido.
5. Si el nmero introducido es menor que 0 o mayor de 100 se mostrar en pantalla el
mensaje Nmero introducido fuera de rango. Rango de nmero vlido para comprobar 1
-100.
FASE 2. DISEO DEL ALGORITMO
Ya tenemos los datos necesarios para comenzar a trabajar. Sabemos qu desea el usuario final que
ocurra en determinadas situaciones de ejecucin as que construiremos el diagrama de flujo del
programa y su pseudocdigo. Ejemplos de ambos elementos podran ser los expuestos a continuacin.
[ (1.) PROGRAMA: numeroPar

Diagrama de Flujo del problema planteado. Fase de diseo.

! (2)ENTORNO: Numero, Modulo son nmeros entero i


(3)ALGORITMO:

(4)escribir "Introduce
un numero"
i
(5)leer Numero
i
(6) SI Numero =
0ENTONCES
;
(7)escribir "Valor incorrecto, el cero no es un valor
!
vlido"
i
(8)SI Numero < 0 || Numero > 100 ENTONCES
;
(9)escribir "Nmero introducido fuera de rango. Rango de
!
nmero vlido para comprobar 1 - 100"
i
(10)SI NO

(11)Modulo = Resto de
Numero/2

(12)SI Modulo = 0 ENTONCES


!
(13)escribir "El nmero introducido es par"

(14)SI NO

(15)escribir "El nmero introducido es impar"


|
(16)FIN SI
j
(17) FIN SI
1 (18)FIN PROGRAMA

el resto de la divisin entera de Numero entre dos.


(12)SI Modulo = 0 ENTONCES

Si el resto de la divisin es cero el nmero ser


par, as daremos la orden de visualizar en pantalla el
texto El nmero introducido es par.

(14)SI NO

Si el resto no es cero matemticamente el nmero


ser impar, y as lo haremos saber al usuario con el
texto en pantalla El nmero introducido es impar

FASE 3. CODIFICACIN
La base anterior es una de las ms complejas ya que concretamos exactamente las partes del

Se coloca entre parntesis al inicio de cada lnea el nmero de esta.


(1)PROGRAMA: numeroPar

Iniciamos el
numeroPar.

(2)ENTORNO: Numero , Modulo son nmeros entero

(4)
(5)

escribir
leer

"Introduce un numero"
Numero

(6)SI Numero = 0 ENTONCES

programa

al

que

llamaremos

Usaremos dos elementos que guardarn


informacin. Se llaman Numero y Modulo y ambos
referencian valores enteros.
Visualizaremos el texto Introduce un nmero y
esperaremos a que el usuario ejecute la orden. Este
nmero se almacenar en el elemento Numero.
Comprobamos si el nmero introducido es cero. Si
es as debemos mostrar el mensaje "Valor
incorrecto, el cero no es un valor vlido

(8)SI Numero < 0 |I Numero > 100 ENTONCES

En caso de que el nmero introducido sea distinto de


cero comprobaremos si est en el rango de 1 a 100.
En caso de que hayamos escrito un valor negativo o
mayor que 100 se visualizar en pantalla el texto
Nmero introducido fuera de rango. Rango de
nmero vlido para comprobar 1 -100.

(10)SI NO

Si ninguno de los casos anteriores se dan pasaremos


a deducir si el nmero escrito es par o no. Para ello,
almacenaremos en Modulo
algoritmo. En esta todo es ms sencillo ya que solo debemos traducir el algoritmo a un lenguaje
de programacin concreto. En realidad esta fase ser ms o menos compleja en funcin del lenguaje
de programacin que usemos.
(11)Modulo = Resto de Numero/2

Veamos lnea a lnea como ser el cdigo de nuestro programa teniendo en cuenta que usaremos
C++ como lenguaje de programacin.
j void numeroParO {
I
int Numero, Modulo;

printf ("Introduce
un numero");
|
scanf ("%i",Numero);
I
if (Numero = = 0 )
{
!
printf ("Valor incorrecto,
el cero no

else

[
I

else

{
fuera de rando.
100") ;

{
Modulo = Numero mod 2;
if (Modulo == 0){
printf ("El nmero

introducido

es

par");

introducido

es

impar");

i}

else

unvalor vlido");

if (Numero < 0 || Numero > 100)


printf("Nmero introducido
para comprobar 1 -

es

printf ("El nmero

Rango de

nmero vlido

(1)PROGRAMA: numeroPar

void numeroPar () {
int Numero, Modulo;

(2)ENTORNO: Numero^, Modulo son nmeros entero

(3)
ALGORITMO:
printf ("Introduce un numero"); scanf
(4)
escribir "Introduce un numero"
("%i",Numero);
(5)
leer
Numero
(6)
SI
Numero = 0 ENTONCES
if (Numero == 0) {
printf ("Valor incorrecto, el cero no es
(7)
escribir "Valor incorrecto, el cero
un valor vlido");
no es un valor vlido"
}
(8)
SI
Numero < 0 || Numero > 100 ENTONCES else if (Numero < 0 || Numero > 100) {
(9)
escribir "Nmero introducido fuera printf("Nmero introducido fuera de rando. Rango
de rando. Rango de nmero vlido para comprobar 1 - de nmero vlido para comprobar 1 - 100");
}
100".
(10)
(11)
(12)
(13)
par"
(14)
(15)
impar"
(16)
(17)

SI

NO
else {
Modulo
= Resto de Numero/2
SI Modulo = 0 ENTONCES
escribir "El nmero introducido es par");
SI
NO
escribir "El nmero introducido es

FIN

FIN
SI

SI

(18)FIN PROGRAMA

Modulo = Numero mod 2; if (Modulo == 0) {


printf ("El nmero introducido es
)
else {
printf ("El nmero introducido es

impar");
}

Esta es la funcin completa escrita en C++. Se ha comprobado que est libre de fallos sintcticos,
lxicos y semnticos.

FASE 4. PRUEBAS Y DEPURACIN


A partir de ahora comenzamos a ejecutar el software. Se debe comprobar que ante determinadas
entradas las salidas son las esperadas. Las entradas que pueden presentar problemas son:

Nmero 0.

Nmero negativo.

Nmero superior a 100.

Al ejecutar la aplicacin visualizaremos un entorno en modo texto como el que se observa en la


Figura

Escribiremos un cero. Debe aparecer el texto Valor incorrecto, el cero no es un valor vlido.
Introduce un numero

alor incorrecto, el cero no es un valor ulido

Programa sin entorno visual en ejecucin.

Ejecucin del software y comprobacin de las salidas


en funcin de los valores de entrada.

Realizaremos este proceso con todos los valores de entrada posibles. Observaremos las salidas, y si son las que se
plantearon en el algoritmo el programa estar listo para ser usado. Si se produce algn fallo, o alguna salida no es la
esperada para el valor introducido volveremos al cdigo fuente y localizaremos el lugar donde se produce el error en
ejecucin. Ya estudiaremos cmo visualizar los cambios que se dan en los valores introducidos durante la ejecucin
mediante la depuracin en los diferentes entornos de programacin que utilizaremos.

El cdigo planteado realiza las funciones tal y como la empresa detall de forma que pasaremos a la fase de
documentacin.

FASE 5. DOCUMENTACIN
Antes de entregar el software a la empresa que nos lo encarg realizaremos un breve manual sobre
el mismo. Este podra ser similar al que se muestra a continuacin.

USO DE PAR-IMPAR vi.0


Para
Veremos la siguiente imagen:

ejecutar el programa escribiremos en la lnea de


comando numeroPar.

Los valores negativos y superiores a 100 tampoco podrn ser


analizados, si aparece el mensaje Nmero introducido
Introduce un numero
fuera de rango. Rango de nmero vlido para comprobar 1
- 100 este ser debido a que hemos introducido un nmero negativo o mayor que
100.
El programa mostrar el texto El nmero introducido es par o El nmero introducido es impar
El rango de valores que podemos analizar es de 1 segn el valor utilizado del rango 1 a 100 sea
par a 100.
o impar.
El
programa acabar tras mostrar el mensaje de
El valor cero no se analiza, de forma que si lo
informacin adecuado.
escribimos se mostrar el mensaje de error:
Valor incorrecto, el cero no es un valor vlido

Potrebbero piacerti anche