Beruflich Dokumente
Kultur Dokumente
METODOLOGIA DE LA PROGRAMACION
Anlisis. El problema se analiza teniendo presente la especificacin de los requisitos dados por
el cliente de la empresa o por la persona que encarga el programa.
Diseo. Una vez analizado el problema, se disea una solucin que conducir a un algoritmo
que resuelva el problema.
Codificacin (implementacin). La solucin se escribe en la sintaxis del lenguaje de alto nivel
y se obtiene un programa fuente que se compila a continuacin.
Ejecucin, verificacin y depuracin. El programa se ejecuta, se comprueba rigurosamente y
se eliminan todos los errores (denominados Bugs, en ingls) que puedan aparecer.
Mantenimiento. El programa se actualiza y modifica, cada vez que sea necesario, de modo que
se cumplan todas las necesidades de cambio de sus usuarios.
Documentacin. Escritura de las diferentes fases del ciclo de vida del software, esencialmente
el anlisis, diseo y codificacin, unidos a manuales de usuario y de referencia, as como normas
para el mantenimiento.
Las dos primeras fases conducen a un diseo detallado escrito en forma de algoritmo. Durante la
tercera etapa (codificacin) se implementa el algoritmo en un cdigo escrito en un lenguaje de
programacin, reflejando las ideas desarrolladas en las fases de anlisis y diseo.
Las fases de compilacin y ejecucin traducen y ejecutan el programa. En las fases de verificacin y
depuracin el programador busca errores de las etapas anteriores y los elimina. Comprobara que mientras
ms tiempo se gaste en la fase de anlisis y diseo, menos se gastar en la depuracin del programa. Por
ltimo, se debe realizar la documentacin del programa.
Antes de conocer las tareas a realizar en cada fase, vamos a considerar el concepto y significado de la
palabra algoritmo. La palabra algoritmo se deriva de la traduccin al latn de la palabra Alkho-warizmi,
nombre de un matemtico y astrnomo rabe que escribi un tratado sobre la manipulacin de nmeros y
ecuaciones en el siglo IX. Un algoritmo es un mtodo para resolver un problema mediante una serie de
pasos precisos, definidos y finitos.
Caractersticas de un algoritmo
Un algoritmo debe producir un resultado en un tiempo finito. Los mtodos que utilizan algoritmos se
denominan mtodos algortmicos, en oposicin a los mtodos que implican algn juicio o interpretacin
que se denominan mtodos heursticos. Los mtodos algortmicos se pueden implementar en
computadoras; sin embargo, los procesos heursticos no han sido convertidos fcilmente en las
computadoras. En los ltimos aos las tcnicas de inteligencia artificial han hecho posible la
implementacin del proceso heurstico en computadoras.
Ejemplos de algoritmos son: instrucciones para obtener el mximo comn divisor de dos nmeros,
calculo del factorial de un numero, calculo de la tabal de multiplicar del 1 al 12, etc. Los algoritmos se
pueden expresar por frmulas, diagramas de flujo o N-S y pseudocdigos.
Resolucin
de un problema
Para poder identificar y definir bien un problema es conveniente responder a las siguientes
preguntas:
Qu entradas se requieren? (tipo de datos con los cuales se trabaja y cantidad).
Cul es la salida deseada? (tipo de datos de los resultados y cantidad).
Qu mtodo produce la salida deseada?
Requisitos o requerimientos adicionales y restricciones a la solucin.
Ejemplo:
Se desea obtener una tabla con las depreciaciones acumuladas y los valores reales de cada ao, de
un automovil comprado en 1,800.00 soles en el ao 1985, durante los seis aos siguientes
suponiendo un valor de recuperacin o rescate de 120.00. Realizar el anlisis del problema,
conociendo la frmula de la depreciacin anula constante D para cada ao de vida til.
Costo original
Entrada Vida til
Valor de recuperacin
Depreciacin acumulada
Depreciacin anual
Salida Depreciacin acumulada en cada ao
Valor del automovil en cada ao
1. Programar un mdulo.
2. Comprobar el mdulo.
3. Si es necesario, depurar el modulo.
4. Combinar el mdulo con los mdulos anteriores.
1.2.3. Herramientas de Programacin
Las dos herramientas ms utilizadas comnmente para disear algoritmos son: diagramas de flujo
y pseudocdigos.
Un diagrama de flujo (flowchart) es una representacin grfica de un algoritmo. Los
smbolos utilizados han sido normalizados por el Instituto Norteamericano de Normalizacin
(ANSI), y los ms frecuentemente empleados se muestran en la Figura 2.
Entrad
Terminal Subprogram a/
a Salida
Proceso
Si
Decisi
n No
Conectores
Si
Figura 2. Smbolos ms utilizados en los diagramas de flujo
Ejemplo:
Algoritmo que permite calcular el mayor valor de dos nmeros ingresados por teclado, en el caso
de ser iguales mostrara un mensaje que no existe numero mayor, los nmeros son iguales.
Inicio:
Leer n1, n2
Si n1 = n2 entonces
Imprimir No existe nmero mayor, los nmeros son
iguales
Caso contario:
Si n1>n2 entonces
Imprimir El nmero mayor es n1
Caso contrario:
Imprimir El nmero mayor es n2
Fin de si
Fin de si
Fin
La programacin modular es uno de los mtodos de diseo ms flexible y potente para mejorar la
productividad de un programa. En programacin modular el programa se divide en mdulos (partes
independientes), cada uno de las cuales ejecuta una nica actividad o tarea y se codifican
independientemente de otros mdulos. Cada uno de estos mdulos se analiza, codifica y pone a punto por
separado. Cada programa contiene un mdulo denominado programa principal que controla todo lo que
sucede; se transfiere el control a submdulos (subprogramas), de modo que ellos puedan ejecutar sus
funciones; sin embargo, cada submdulo devuelve el control al mdulo principal cuando se haya
completado su tarea. Si la tarea asignada a cada submdulo es demasiado compleja, ste deber romperse
en otros mdulos ms pequeos. El proceso sucesivo de subdivisin de mdulos contina hasta que cada
mdulo tenga solamente una tarea especifica que ejecutar. Esta tarea puede ser entrada, salida,
manipulacin de datos, control de otros mdulos o alguna combinacin de stos. Un mdulo puede
transferir temporalmente el control a otro mdulo; sin embargo, cada mdulo debe eventualmente
devolver el control al mdulo del cual se recibe originalmente el control.
Los mdulos son independientes en el sentido en que ningn mdulo puede tener acceso directo a
cualquier otro mdulo excepto el mdulo al que llama y sus propios submdulos. Sin embargo, los
resultados producidos por un mdulo pueden ser utilizados por cualquier otro mdulo cuando se
transfiera a ellos el control.
Raz
Modulo 1 Modulo 2
En mayo de 1996, Bohm y Jacopini demostraron que un programa propio puede ser escrito
utilizando solamente tres tipos e estructuras de control.
Secuenciales,
Selectivas,
Repetitivas.
Un programa se define como propio si cumple las siguientes caractersticas:
Posee un solo punto de entrada y uno de salida o fin para control del programa.
Existen caminos desde la entrada hasta la salida que se pueden seguir y que pasan por
todas las partes del programa.
Todas las instrucciones son ejecutables y no existen lazos o bucles infinitos (sin fin).