Firma páginas web
 

 
Programación: La creación de programas

Se mostrará a continuación, que la programación es un proceso muy similar al que aplican las personas en general, para resolver cualquier situación o problema. Se puede pensar en un curso en el que los alumnos deben realizar un trabajo de investigación. En primer lugar, cualquiera de ellos plantearía una resolución general del problema, es decir, determinaría las actividades que debe realizar, como son, buscar la información en bibliotecas e Internet, recopilar y extraer la información necesaria, transcribir y organizar el trabajo, y otros. Seguidamente se aboca a encarar cada actividad, debiendo resolver problemas específicos.

Los programadores y desarrolladores, son profesionales encargados de codificar y crear programas. Sin embargo, existen algunas aplicaciones (incluso de las llamadas de escritorio) que permiten a los usuarios finales, automatizar en cierto grado algunas de sus actividades usando la programación, ahorrándoles tiempo y esfuerzo. Nadie desperdiciaría la oportunidad de contar con algo más de tiempo, ¿o si? La programación permite pensar en la resolución de un problema una vez, y luego el computador se encargará del mismo infinitas veces.

Creación de programas a la medida:
Son los programas o software los que permiten a los componentes físicos y redes, procesar y distribuir los datos y generar información. Ningún sistema de información computarizado está completo sin el software adecuado. Al desarrollar un sistema de información, se precisan las necesidades y requerimientos que se deben resolver. Se emplean las seis fases del ciclo de desarrollo de sistemas. La programación forma parte de la fase 4, el desarrollo de sistemas, en el cual se resuelven los requerimientos mediante la programación del software. En ocasiones, los desarrolladores resuelven estas situaciones sugiriendo adquirir software comercial, siempre que las necesidades de los usuarios finales sean estándares o requieran de poca o ninguna adaptación de los programas. Pero esto no siempre es posible y entonces se deben crear los nuevos programas que conformarán el sistema de información.

Programas:
Un programa de cómputo o programa informático (software) es un conjunto o secuencia de instrucciones (llamadas también código) que pueden ser interpretadas y ejecutadas en el CPU de la computadora. Esta secuencia de instrucciones se escribe en alguno de los diversos lenguajes de programación que existen, como BASIC, Pascal o C. Visto de manera más general, el programa contiene el esquema que especifica la secuencia de pasos que se siguen para completar un proceso expresado en un lenguaje de programación.

Los programas pueden caer en una de dos categorías: Programas del sistema o programas de aplicación. Regularmente todos estos programas están compuestos de muchos archivos: algunos contienen las instrucciones para la computadora y otros contienen datos. El nombre de un archivo suele estar seguido de un punto y una extensión. La extensión por lo general da indicios del tipo de archivo de que se trata. Es costumbre que los archivos, los cuales componen una aplicación, se almacenen en una misma carpeta o directorio que se denomina directorio de la aplicación y que contará con un nombre que haga alusión a la aplicación.

La programación o desarrollo de software, es un el procedimiento que permite la creación de los programas. Como se muestra más adelante consiste de seis pasos. No se trata sólo de teclear las instrucciones en la computadora. La creación de programas involucra actividades de análisis y diseño, previas al paso en el cual se traducirá a un algoritmo, al lenguaje de computación, para entonces proseguir a realizar pruebas de funcionamiento al código así obtenido.


Los programadores se encargan de la creación de programas

Características de un buen programa:
A continuación se enumeran algunas de las características con que debería contar un buen programa. Es recomendable tenerlas en cuenta. A medida que continúe leyendo el tema podrá darse cuenta del por qué de las mismas.

     • Confiabilidad, es decir, el programa debe funcionar en prácticamente cualquier situación.
     • Debe advertir los errores de entrada comunes y obvios.
     • Deben ser bien estructurados, es decir, programas que utilicen organizaciones de la        programación estructurada.
     • Estar adecuadamente documentado y ser comprensible, no sólo para quien lo crea, sino para        otros programadores. Esto es para facilitar las futuras y muy posibles modificaciones que        requiera.

Flujo de control de programa:
Aunque un programa puede estar constituido por muchos archivos, regularmente cuenta con un archivo, que constituye su parte primordial, con frecuencia llamado archivo ejecutable, porque es el que la computadora ejecuta cuando el usuario inicia el programa. Entonces, la computadora lee y realiza la primera instrucción y luego continúa o fluye a otra, de manera sucesiva, hasta completar la acción de la última instrucción y así el programa termina. Sin embargo, es muy probable que no todas las instrucciones se encuentren en un único archivo. En este caso el flujo pasa momentáneamente a las líneas de código almacenadas en este otro archivo y luego, devuelve el control al programa principal. El flujo de control del programa es el orden en el cual se van ejecutando las instrucciones del programa.

Variables:
Las variables son los “contenedores” de los datos que se van a procesar, son un elemento común en la mayor parte de los lenguajes de computación. Físicamente, las variables son áreas designadas de memoria en donde se guarda el valor del dato. Supongamos que se escribe un programa en el cual se solicitan sueldos de empleados. Se debe contar con una variable que guarde ese dato. Puede escogerse nombrarla, por ejemplo, v_sueldo.

Cuando, a solicitud del programa, el usuario introduce un número, ese dato se convierte en el valor de la variable v_sueldo. Entonces de manera semejante como en álgebra o física, las variables pueden ser usadas en programación para realizar operaciones de informática. Si el programa indica la declaración v_sueldo + 500 y el valor en v_sueldo = 1.000, el resultado para esta declaración va a ser 1.500.

Algoritmos:
Se denomina algoritmo a una serie finita de pasos o instrucciones mediante los cuales se resuelve un problema o se ejecuta una tarea específica. Más formalmente los algoritmos se caracterizan por:

     • Ser finitos, porque tienen un número determinado de pasos.
     • Ser definidos, lo que implica que cada vez que se siga se obtendrá invariablemente el mismo        resultado.
     • Ser precisos, pues cada paso tiene un orden a seguir.

Los algoritmos especifican los pasos (instrucciones) que permiten llegar a la solución de un problema, sin importar si el proceso es manual o automatizado. De modo que no se encuentran exclusivamente relacionados con la computación. En la vida cotidiana son empleados en diversas ocasiones. Por ejemplo, los pasos seguidos para retirar dinero de un cajero automático de un banco o cuando se sigue una receta de cocina. Se puede entenderlos entonces, como una especie de “receta” que indica los pasos que permiten alcanzar la solución de un problema.

Procedimientos y Funciones:
Los procedimientos y funciones son bloques de código reusables, que pueden ser invocados en cualquier parte de un programa, mediante expresiones que les representan. Son algoritmos específicos en un lenguaje de programación que resuelven un problema definido. Pueden ser usados cada vez que es requerido, simplemente colocando la expresión que les invoca, sin necesidad de reescribir todas las instrucciones que representan a tal procedimiento o función. Por ejemplo, si se desea la raíz cuadrada de un número, podría usarse la expresión Sqrt(x). La x dentro del paréntesis es llamada argumento, siendo el número del cual se desea la raíz cuadrada. El argumento permite especificar la entrada a la función cuando el programa se está ejecutando. Siendo x la variable que almacena el número 12 para un programa, la función buscará la raíz cuadrada de 12. Cuando la función encuentra la raíz cuadrada, devuelve el valor al programa que la invocó.

A los procedimientos y funciones en conjunto suele denominárseles también rutinas o subrutinas. Dependiendo del lenguaje de programación que se esté utilizando y de acuerdo a cómo éste implemente las rutinas, se pueden imponer algunas diferencias entre las funciones y los procedimientos. Las funciones, en general, son rutinas que devuelven un valor como resultado a partir de uno o más argumentos. Es el caso de las funciones matemáticas, que calculan el logaritmo de un número, su raíz cuadrada,... Los procedimientos por otro lado, son aquellas rutinas que no devuelven un valor, sino que realizan una acción determinada, usando tal vez un grupo de argumentos. Es el caso, por ejemplo, de un procedimiento para presentar por pantalla una circunferencia, en la que tendría que suministrarse simplemente valores como la posición en la pantalla y el radio de la misma.



Enfoques de Programación:

En los inicios de la programación y hasta principios de los sesenta, no habían estructuras bien definidas en la forma en que se escribía el código. Se disponía una línea tras otra de programación construyendo un único e inmenso bloque, que constituiría el programa. Pero el control del flujo a través de gran cantidad de líneas de instrucciones, resultaba difícil de seguir no sólo por su tamaño, sino porque no siempre es posible programar siguiendo la secuencia de una línea tras otra. Por lo que se hizo frecuente el uso de la instrucción go to (vaya a) escrito como “goto” en el programa.

Esta instrucción goto, identifica una línea de programa, que puede estar varias líneas más abajo e incluso varias líneas más arriba, a la cual salta para cambiar el control del flujo. Si se piensa en un programa pequeño, tal vez no resulte tan engorroso el seguimiento de estos saltos. La cuestión cambia, si se trata de un programa de miles de líneas donde se generaliza el uso del goto, de modo que el programa va a presentar multitud de saltos. Entonces seguir el flujo del programa realmente se torna muy complicado e incluso imposible, aún para quien lo esté desarrollando.

La programación estructurada, surge como la práctica de construir programas usando un conjunto de estructuras bien definidas. Esta programación evoluciona en los años sesenta y entre una de sus metas se encuentra, la eliminación de la instrucción goto dentro del código. Aún cuando la programación estructurada brindó mejoras, atribuyendo claridad y eficiencia en los programas, continuó existiendo la necesidad de hacer programas de manera más rápida y eficiente. Se reconoce en la reutilización del código, como un camino a la solución de acelerar la construcción de los programas. Las subrutinas, bloques constructores en la programación estructurada, son un paso más en la solución de este problema.

En la programación orientada a objetos, los bloques constructores son unos componentes modulares y reusables, denominados objetos. Surge en los ochenta, afirmándose que llegará a ser el enfoque dominante de la programación. Este enfoque enriquece la programación estructurada, más que sustituirla. Los objetos están compuestos en sí mismos, por piezas de programa estructuradas, y la lógica de manipulación de objetos también es estructurada.

Programación estructurada:
La investigación a través del estudio de los códigos logró demostrar que cualquier programa se podía escribir, usando las tres estructuras siguientes de control:


Estructura secuencial

1. La estructura secuencial: Está definida por el flujo de control automático de un programa. De manera natural, a menos que otra cosa se indique, la computadora ejecuta las líneas de código en el orden en que fueron escritas. El control del programa fluye de la línea anterior a la línea siguiente.
2. Las estructuras de selección: Se basan en una declaración condicional. Si es verdadera, ciertas líneas de código son ejecutadas. Si tal declaración es falsa, esas líneas no serán ejecutadas. Las dos estructuras de selección más comunes son: Si-Entonces (If-Then) y Si-Entonces-de lo contrario (If-Then-Else).

Estructuras de selección


Dos estructuras de repetición

3. Las estructuras de repetición (o de ciclos):
Su construcción también hace uso de declaraciones condicionales. Si la condición evaluada es verdadera, un bloque de una o más instrucciones se repetirá, hasta que la condición sea falsa. La computadora prueba la condición una primera vez, si es verdadera, ejecuta el bloque de comandos. Entonces, finalizada la primera repetición, comprueba de nuevo la condición y si es verdadera se repite el bloque nuevamente, y así sucesivamente hasta que la condición sea falsa. Ya que este funcionamiento es cíclico, cada una de estas repeticiones es llamada también ciclo. Tres estructuras de este tipo son: Repita para (For-Next), Repita Mientras (While) y Repita Hasta (Do-While).

Programación orientada a objetos (POO):

Los entusiastas de la POO aseguran que, a pesar de que sus conceptos básicos puedan parecer un tanto abstractos al principio, este tipo de programación se asemeja más a la manera natural de pensar y concebir el mundo. Por esta razón, el proceso de modelado es más intuitivo, y se hace posible crear y mantener programas de manera más sencilla y rápida.

Objetos:
En general cuando se observa o se piensa sobre un objeto, por ejemplo un carro, siempre se le percibe como un todo. No es común enfocarse en sus componentes de acero, vidrio o plástico, sino más bien, la mente lo percibe como unidad completa, como un objeto, como un todo. Si se desea describir el carro, se puede pensar en su color, tamaño y forma. Como todos los objetos, el carro posee atributos que permiten describirle. Se puede pensar además en las cosas que el carro puede hacer, como acelerar, retroceder, girar a derecha o izquierda,...

El carro tiene un conjunto de funciones que puede realizar. Además, es fácil notar que el carro contiene elementos que le constituyen: Los cauchos, el chasis, el sistema de tracción, y otros. Pero esos elementos a su vez están formados por otros elementos. Como es el caso del motor y de las partes que le forman. De manera muy similar, en la POO se emplean módulos llamados objetos, que poseen atributos y funciones. Los objetos encapsulan o contienen otros objetos, que a su vez pueden ser también contenedores de objetos.


En la POO el objeto carro posee atributos,
funciones y contiene otros objetos

Clases y herencia de clases:

Cuando se mira alrededor, es posible ubicar los objetos en clases o categorías abstractas de objetos afines. En un proceso similar, en POO por ejemplo, los autos de las diferentes marcas se agruparían en una clase llamada carros. Una clase consiste en atributos y funciones que son compartidas por más de un objeto. En el caso de los carros, todos cuentan con un volante y cuatro ruedas y pueden ir hacia delante, en reversa, detenerse o acelerar. Los atributos de clase se denominan miembros de datos y las funciones de la clase, se conocen como funciones de miembro o métodos.



Ilustración de los conceptos clases, subclases y herencia en POO

Las clases pueden ser divididas en subclases. Las subclases normalmente poseen todos los atributos de la clase predecesoras, a lo que se llama herencia de clase.
En el ejemplo de los carros, estos pueden tener una clase sedan, una clase deportivo y una clase camioneta pick up; todas las clases comparten como atributo un volante y como función acelerar. Además de las características heredadas, las subclases pueden tener características propias. Para las pick up, por ejemplo, cuentan además con dirección en las cuatro ruedas. De este modo todo objeto pertenece a una clase.

En POO crear un objeto se denomina instanciación. Al instanciar un objeto, éste adquiere de manera automática los atributos y métodos asociados a la clase a la cual pertenece. Normalmente no se espera que los carros operen por sí solos. Para que el carro vaya hacia delante se envía una señal, presionando el acelerador. En POO se utilizan los mensajes para indicar a los objetos que realicen una determinada función.


Pasos de la Programación:
Los programas son los bloques constitutivos del software del sistema de información. Para la elaboración de programas, se usa una adaptación del proceso del ciclo de vida de desarrollo de sistemas. Los pasos para la creación de programas son los siguientes (ver también la Tabla 1 Resumen de los pasos de la programación):


La programación consta de 6 pasos. La programación
forma parte de la fase de desarrollo de sistemas.

Especificación del programa:
En este paso se identifica y se define la necesidad a resolver, que indicará los objetivos, salidas, entradas y requerimientos de procesamiento del programa. Los programadores, verifican si existe ya, una solución provista por alguien que haya encarado el problema con anterioridad y que lo ofrezca, bien en la propia organización o de manera comercial fuera de ella. Solamente si la solución no se encuentra disponible, o existen limitaciones para conseguirla, es cuando se comienza con la programación. En primer lugar, debe establecerse cuál es el problema que se intenta resolver, delimitándolo claramente. Se procede entonces, a determinar cuál es la salida de información que se desea genere el programa. La salida, se puede tratar de una salida impresa o una que se presente en el monitor, como por ejemplo, un reporte de facturación para cada mes. La determinación de entradas requiere identificar qué datos son necesarios para realizar el proceso y cuál es su origen. Seguidamente, se definen las tareas de procesamiento que deben realizarse para transformar los datos de entrada en salida.
Diseño del programa:

Es la etapa en la cual los programadores delinean cada componente del programa y las interfases entre cada componente. Se cuenta con muchas herramientas para este proceso, entre las que se tiene, diagramas de flujos (para programación estructurada), círculos y canales de mensaje (programación orientada a objetos) y seudocódigo. Estas herramientas permiten presentar una documentación que describe la solución en términos gráficos y descripción de las instrucciones que conforman los procedimientos.

Codificación del programa:
En esta fase se realiza la generación del programa, usando un lenguaje de programación. Se obtendrá de la fase el código que ejecutará la computadora. Implica desde la escritura de las instrucciones en el llamado código fuente, hasta la realización de prueba del mismo. Para esta fase se hace uso de la lógica que se determinó en el paso anterior para realizar la generación del programa. Puede hacerse uso del código que ya fue escrito y probado anteriormente (probablemente en otros proyectos), en especial si se está usando la POO. La integración y adaptación de código existente a una nueva aplicación, puede ahorrar gran cantidad de tiempo.
Prueba del programa:
La aparición de errores en los programas es prácticamente inevitable. Existen dos tipos de errores principalmente: de sintaxis y lógica. Los errores de sintaxis violan las reglas del lenguaje de programación. Para afrontarlos se hace uso de un compilador que los detectará de forma automática. Los errores de lógica causan que el programa se ejecute de manera inesperada o incorrecta. El proceso para eliminar los errores de lógica se denomina depuración.
Documentación del programa:

Este paso resalta la necesidad de completar y revisar toda la documentación acumulada en el proceso y adaptarla, para quienes estarán relacionados con el programa en el futuro: Los usuarios finales y los programadores. La documentación contiene de manera escrita todas las descripciones y procedimientos, que surgen a lo largo del proceso, acerca de un programa y su modo de uso. La documentación para los usuarios les indica cómo utilizar el programa y cómo resolver los mensajes de error. Suele ir incluida dentro del programa, en una opción de ayuda, o separada en manuales impresos. Para los programadores, la documentación es valiosa por dos situaciones: al pasar el tiempo, un programador puede olvidar detalles de su producto, o también, cuando un programador debe actualizar, modificar o dar mantenimiento a un programa desarrollado por otro.

Mantenimiento del programa:

Esta fase se inicia inmediatamente después de instalado el producto. Está motivada, porque algunos defectos menores podrían haber sido pasados por alto y deberán ser solventados o porque los programadores podrían querer añadir mayor funcionalidad al mismo, como respuesta a las inquietudes de los usuarios finales. Debido a que todas las organizaciones experimentan cambios con el tiempo, los programas inevitablemente deben cambiar con ellas. De modo que deberán ser ajustados, para mejorar, estandarizarse o adecuarse a los cambios.


Tabla 1.- Resumen de los pasos de la programación

Pasos de la Programación
Pasos
Descripción
1.
Especificación Determinar objetivos, salida, entrada y requerimientos del programa
2.
Diseño Delinear los componentes y sus interfaces
3.
Codificación Generar el programa en un lenguaje de programación
4.
Prueba Verificar desempeño del programa, determinar errores de sintaxis y lógica
5.
Documentación Redactar documentación para usuarios y programadores
6.
Mantenimiento Corrección de errores, ajustes por nuevos cambios



La programación permite automatizar
procesos facilitando el trabajo

Pensar una vez, resolver un millón

Lo verdaderamente mágico de la programación, es que una vez que se ha determinado de manera precisa la forma de resolver un problema, estableciendo los pasos necesarios para el proceso, éste puede ser codificado en un lenguaje de programación. Entonces, el proceso puede delegarse a la computadora que lo realizará de manera confiable, exacta, en menor tiempo y tantas veces como sea requerido. Como se pudo ver, el proceso de la programación es muy similar a la manera en que se enfrenta los problemas o situaciones de la vida diaria.
Regularmente se toman estos problemas generales y se van dividiendo en problemas específicos más pequeños. Al ir resolviendo estos problemas específicos gradualmente se resuelve también el problema general.

Es importante destacar, que el proceso de programación del software, se encuentra dentro de la fase de desarrollo del ciclo de vida del sistema. Es parte de un proceso más grande y complejo. Aquí se señalan específicamente los pasos que conforman el proceso de programación, explicando brevemente cada uno y mencionando algunas herramientas que son usadas en el proceso. Sin embargo, todo esto es sólo una introducción que aspira inspirar la curiosidad de investigar con más profundidad y detalle sobre el tema y seguramente que no se defraudará de lo que encuentre. En el tema sobre Lenguajes de Programación encontrará material complementario al presente tema, acerca de las herramientas que permiten traducir en código los razonamientos y pasos para resolver un problema.
 
 

Otros Temas:

 
Ver otras áreas:


Más Servicios de RENa

| Mapa del sitio | Equipo de trabajoWebmaster |

© Todos los Derechos Reservados por RENa Copyright 2008