Download Conceptualización y descripción de un programa

Document related concepts
Transcript
 I-MIP7001_M2AA2L1_Cédula
Versión: Septiembre 2012
Revisor: En lista
Conceptualización y descripción de un programa por Iván Cruz
Uno de los grandes inventos del siglo pasado fue la creación de la computadora, sin
embargo este dispositivo no podría funcionar sin el apoyo del software, por lo que no se
puede deslindar a este aparato del software y viceversa, dado lo anterior a la par como se ha ido
mejorando la computadora lo han tenido que hacer los programas.
En el contexto de tecnologías de información escuchamos la palabra software, que en
ocasiones se utiliza como sinónimo de programa o aplicación informática, sin embargo aunque
se usen de esta manera, su significado es diferente, veámoslo a continuación:
Software De acuerdo a la Real Academia Española (2009, parr. 1) es un “Conjunto de programas, instrucciones y
reglas informáticas para ejecutar ciertas tareas en una computadora”.
Beekman por su parte lo describe como “Instrucciones que indican al hardware lo que tiene que hacer
para transformar la entrada en salida” (2005, p. 615).
Programa
De acuerdo a la Real Academia Española es un “Conjunto unitario de instrucciones que permite a un
ordenador realizar funciones diversas, como el tratamiento de textos, el diseño de gráficos, la
resolución de problemas matemáticos, el manejo de bancos de datos, etc.” (2009, párr. 12).
Beekman lo define como “un conjunto de instrucciones informáticas diseñadas para resolver un
problema” (2005, p. 123).
Aplicación De acuerdo a la Real Academia Española es un “programa preparado para una utilización específica,
como el pago de nóminas, formación de un banco de términos léxicos, etc.” (2009, párr.4).
Beekman indica que es un “software que permite utilizar una computadora para propósito específico”
©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o
sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por
escrito de la Universidad Virtual del Estado de Guanajuato.
1
I-MIP7001_M2AA2L1_Cédula
Versión: Septiembre 2012
Revisor: En lista
(2005, p. 123).
Con base en las definiciones anteriores, podemos deducir lo siguiente:
Un software engloba a los programas, o bien, es un conjunto de programas que
permiten la comunicación con la computadora, a fin de que ejecuten las tareas indicadas por el
usuario.
Un programa, es la secuencia ordenada de instrucciones que se le da a la computadora con
la finalidad de que esta realice diversas funciones.
Una aplicación es un programa de uso específico.
Además, cabe mencionar que el software, de
Beekman (2005), se puede clasificar en 3 categorías:
acuerdo
a
diversos
autores
como
Figura 1. Clasificación del software. (Beekman, 2005).
Software del sistema Se le conoce también como software interno o sistema operativo, este es un conjunto de
rutinas que crea el proveedor del equipo o alguna empresa, para que los usuarios
puedan interactuar con la computadora.
Este software es el más importante, ya que permite el enlace entre los componentes de la
computadora y el usuario.
El software de sistema o sistema operativo, se encarga de las siguientes tareas: la asignación
de los procesos y tareas que debe realizar cada dispositivo, la asignación y el manejo de la memoria
principal
(memoria de acceso aleatorio o RAM, memoria de sólo lectura o ROM y memoria
de rápido acceso (caché)
y la manipulación de los recursos periféricos tales como
monitor, impresora, ratón, teclado, bocinas, entre otros.
La Figura 2 muestra algunos ejemplos de software del sistema:
©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o
sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por
escrito de la Universidad Virtual del Estado de Guanajuato.
2
I-MIP7001_M2AA2L1_Cédula
Versión: Septiembre 2012
Revisor: En lista
Figura 2. Software de sistema (Mendoza,2009)
El sistema operativo se instala de acuerdo a las características físicas (componentes) y
el tipo de computadora, pues la capacidad de los equipos es diferente. Además se
considera al fabricante, por ejemplo: la compañía Apple tiene sus equipos a los cuales les
provee el sistema operativo con el que funcionan llamado Mac Os.
Software de aplicación
Son los programas que el usuario de una computadora utiliza para desarrollar una actividad
específica, dentro de esta clasificación se consideran todos los programas que han sido
desarrollados por expertos y que además se encuentran en el mercado. También podemos
considerar a los sistemas de información dentro de esta clasificación.
Figura 3. Software de aplicación (Mendoza,2009).
©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o
sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por
escrito de la Universidad Virtual del Estado de Guanajuato.
3
I-MIP7001_M2AA2L1_Cédula
Versión: Septiembre 2012
Revisor: En lista
Además del software por el cual pagamos para poder utilizarlo, existe el llamado Software
libre, la GNU (2009. Párr. 3) lo define como:
“Una cuestión de la libertad de los usuarios de ejecutar, copiar, distribuir, estudiar, cambiar y
mejorar el Software”.
Con la definición anterior se hace referencia a cuatro tipos de libertades para los usuarios del software:
1.Utilizar el programa para cualquier propósito.
2.Poder estudiar el funcionamiento del programa y modificarlo de acuerdo a nuestras
necesidades mediante el acceso al código fuente.
3.Poder distribuir copias del software
.
4.Mejorar el programa accediendo al código fuente y publicar las versiones modificadas
para el beneficio de la comunidad.
Software de desarrollo Son los programas que se utilizan para crear software de aplicación, generalmente se les conoce como
entornos de desarrollo integrado (IDE´s) para lenguajes de programación.
Figura 4. Software de desarrollo (Mendoza,2009)
Estructura de un programa Como se ha mencionado, un programa es la secuencia ordenada de instrucciones que se le
dan a la computadora con la finalidad de que esta realice diversas funciones, sin
embargo ¿quién realiza ese programa?, ¿cómo funciona?, ¿cómo es capaz la computadora de
entender un programa?
©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o
sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por
escrito de la Universidad Virtual del Estado de Guanajuato.
4
I-MIP7001_M2AA2L1_Cédula
Versión: Septiembre 2012
Revisor: En lista
Observemos estas interrogantes con el siguiente ejemplo:
Debido a cuestiones de trabajo y estudio te vas a mudar de la ciudad de Silao a la
ciudad de León, ahí vive uno de tus mejores amigos, Rubén.
Como no conoces la ciudad, Rubén te ha dado su número de celular para que le
marques en cualquier momento.
Para poder trasladarte tienes un automóvil, sin embargo no conoces la ciudad, por lo que
Rubén te ha hecho una ruta para ir de tu casa a tu trabajo, para ello te dio el siguiente
mapa.
Además Rubén te envió por correo electrónico las siguientes instrucciones:
1. Saliendo de la casa llega a la avenida.
2. Das vuelta a la derecha.
3. Te sigues derecho.
4. Das vuelta a la izquierda.
5. Sigues derecho.
6. Das vuelta a tu derecha.
Encontraste tu trabajo
Como ya has terminado de desempacar y acomodarte decides dar una vuelta, antes de ir al trabajo el
día de mañana por ello realizas lo siguiente:
•
Sacas el automóvil de la casa.
©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o
sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por
escrito de la Universidad Virtual del Estado de Guanajuato.
5
I-MIP7001_M2AA2L1_Cédula
Versión: Septiembre 2012
Revisor: En lista
•
Tomas el mapa y lees la primer instrucción que dice “Saliendo de la casa llega a la avenida”, al
observar el mapa te das cuenta que puedes ir derecho y llegar a la avenida Barrio de Guadalupe,
sin embargo también puedes llegar a la avenida La Luz, además no sabes el sentido de las
avenidas.
Google maps (2010)
•
Decides arriesgarte e ir hacia la avenida La Luz.
•
Al llegar a la avenida y ver si vas a la izquierda o derecha lees la siguiente instrucción, que dice.
Das vuelta a la derecha.
•
Sinceramente no te suena nada lógico pues te vas a alejar de tu trabajo, pero si eso dice la
instrucción puede ser por el sentido de las calles, así que das vuelta a la derecha.
•
Lees la instrucción 3 que dice Te sigues derecho, así que sigues manejando hasta encontrar otra
avenida que cruza.
•
En ese punto lees la instrucción 4 Das vuelta a la izquierda.
•
Por ello decides dar vuelta como te indicó Rubén.
•
La avenida que acabas de tomar se llama Villa Verde.
•
Revisas la siguiente instrucción que dice: Sigues derecho, por lo que sigues hasta llegar a otr
cruce.
•
En este punto revisas tu penúltima instrucción que dice Da vuelta a la derecha.
•
Así que lo haces y tomas Vicente Valtierra.
•
Lees la última instrucción y dice Encontraste tu trabajo.
•
Sin embargo no estás seguro y vuelves a ver el mapa y te das cuenta que ¡estás perdido!
•
No estás en tu trabajo, al contrario, vas para el otro lado… ahora ¿Cómo vas a regresar? ¿Qué vas
a hacer?
Esta misma situación sucede con la computadora y el software, supongamos que el vehículo es la
computadora y el software son las instrucciones que debes seguir para llegar a tu trabajo, si el vehículo
tiene un desperfecto y se descompone, no vas a poder llegar a tu trabajo, lo mismo sucede con tu
equipo computacional pues si se decompone no vas a poder trabajar con él, sin embargo si tu vehículo
©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o
sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por
escrito de la Universidad Virtual del Estado de Guanajuato.
6
I-MIP7001_M2AA2L1_Cédula
Versión: Septiembre 2012
Revisor: En lista
(computadora) funciona bien y tienes una serie de instrucciones que te permitirán llegar al trabajo (en
teoría), ahora debes seguirlas: ves el mapa, lees las instrucciones, las interpretas y las ejecutas.
Al hacerlo te das cuenta que las instrucciones no son correctas puesto que te has perdido, lo mismo
sucede en tu computadora si un programa no tiene las instrucciones indicadas, ese programa no va a
funcionar.
En el ejemplo, es claro que regresar por Vicente Valtierra te podría ayudar, pero una computadora no
usa la lógica de un humano, una computadora simplemente sigue las órdenes del software.
Ahora retomemos el ejemplo. Si Rubén te anexa el siguiente mapa:
Además te da las siguientes instrucciones:
1.
2.
3.
4.
5.
Sal de la casa tomando el camino de la izquierda.
Vas a llegar a la avenida Barrio de Guadalupe.
En dónde deberás de dar vuelta a la derecha.
Vas a seguir de frente hasta la avenida La Luz.
En dónde darás vuelta a tu izquierda.
©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o
sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por
escrito de la Universidad Virtual del Estado de Guanajuato.
7
I-MIP7001_M2AA2L1_Cédula
Versión: Septiembre 2012
Revisor: En lista
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
A continuación vas a contar las cuadras de tu lado derecho.
En la cuarta cuadra vas a toparte con la avenida General Francisco Villa.
Al llegar a esa avenida deberás dar vuelta a la derecha.
Vas a seguir de frente por la avenida, hasta llegar a la avenida que cruza y se llama
VicenteValtierra.
Cuando llegues a esa avenida da vuelta a la izquierda.
Vas a seguir de frente y vas a cruzar la avenida Sion.
Al cruzar con esta avenida no cambias el rumbo, sigues de frente hasta llegar a la siguiente
Av. Llamada Hilario Medina.
En dónde darás vuelta a tu derecha, te aconsejo cargarte en el carril derecho para ingresar
al estacionamiento de la plaza.
Avanza despacio y observarás la entrada del estacionamiento, da vuelta a la derecha e
ingresa en él.
Al hacerlo busca estacionarte del lado derecho de la plaza, pues tu trabajo se encuentra
ubicado en esta área.
Finalmente, has llegado al lugar en dónde se ubica tu trabajo.
Siguiendo las instrucciones de esta situación ¿has logrado llegar a tu trabajo? Como se observa existe
una gran diferencia entre las instrucciones que te dio Rubén la primera vez contra la segunda, pues en
este último caso, Rubén se tomó la tarea además de detallar la ruta, detalló paso a paso las
instrucciones para que llegarás tu trabajo.
Esto mismo se da con la computadora, si un programa tiene una secuencia lógica de instrucciones que
se siguen paso a paso, entonces el programa funcionará de la manera adecuada, considerando el fin
para el que fue diseñado.
“Un programa bien diseñado es el encargado de indicarle a la computadora que
ejecute una secuencia de operaciones sencillas que, tomadas en conjunto,
imprimen un informe, organizan las notas de los alumnos de una escuela o simulan
un vuelo espacial”.
Beekman (2005, p. 125)
Como bien se observó, Rubén te dio un mapa y unas instrucciones de manera general, en otra
situación te brindó un mapa e instrucciones detalladas, en este caso Rubén escribió en una hoja estás
instrucciones, sin embargo para poder escribir y leer ese mensaje, se necesitó que ambas partes
conocieran el idioma, además del alfabeto, lo que les permitió estructurar palabras y oraciones.
Ello nos lleva a reflexionar, en la computadora ¿cómo se da ese conjunto de instrucciones?, si Rubén
necesitó conocer no sólo el alfabeto si no la forma de crear palabras y hacer oraciones para comunicar
el mensaje, ¿en la computadora como se realiza esto? ¡Ah! Pues por medio de un lenguaje máquina,
que es el encargado de permitir la comunicación entre los dispositivos de hardware y el software.
Actualmente los programas que se utilizan para crear otros programas tienen incluidos un lenguaje
máquina en dónde se realizará la traducción de las computadoras para que los dispositivos lo puedan
entender.
©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o
sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por
escrito de la Universidad Virtual del Estado de Guanajuato.
8
I-MIP7001_M2AA2L1_Cédula
Versión: Septiembre 2012
Revisor: En lista
Sin embargo ¿las instrucciones donde quedan?, las instrucciones correctas que dio Rubén, las
podemos considerar como un algoritmo, que de acuerdo a Cairó (2006, p. 2) es “un conjunto de pasos,
procedimientos o acciones que nos permiten alcanzar un resultado o resolver un problema”
Cuando se quiere realizar un programa se inicia desarrollando el algoritmo el cual puede estar escrito
en una hoja de papel, antes de ingresarlo al programa, la idea de escribir este algoritmo es encontrar la
lógica y secuencia de procedimientos, así como detectar errores y mejoras, de esta manera cuando el
algoritmo se ha probado, se ingresa en la computadora por medio de un lenguaje de programación,
este algoritmo se convertirá en un programa el cual se perfeccionará.
Escribir un programa Escribir un programa es sencillo pero implica una serie de fases que hay que seguir. Primero es
importante considerar que para que la computadora comprenda un programa, éste debe ser traducido a
lenguaje máquina, para ello primero se escribe el programa y después se convierte en un archivo
ejecutable (lenguaje máquina), para llevar a cabo este proceso, Forouzan (2003, p.169) menciona que
es necesario seguir tres pasos:
1. “Escribir y editar el programa.
2. Compilar el programa.
3. Vincular el programa con los módulos de biblioteca requeridos”.
Para poder escribir un programa se requiere de un software conocido como editor de texto, el cual
apoyará al usuario para que pueda ingresar, modificar y guardar datos.
Aunque el editor de texto se utiliza para escribir documentos de texto simple como tales cartas,
memorándum, conversaciones, entre otros, también es utilizado para escribir programas, cuando se
escribe el programa en el editor de textos y éste se guarda, se genera un archivo, el cual es llamado
archivo fuente.
A continuación, el archivo fuente debe traducirse a lenguaje máquina para que así la computadora
pueda comprenderlo, para ello requiere del compilador del propio lenguaje que se este utilizando o
intérprete en su caso. El compilador está compuesto de dos programas: el preprocesador y el traductor.
El preprocesador se encarga de leer el código fuente, que es el código que se encuentra en el archivo
fuente escrito por el programador, y a continuación prepara este código para que pueda ser procesado
por el traductor, que se encarga de leer la unidad de traducción generada por el preprocesador y
convertirla en lenguaje máquina, por lo que generará un archivo llamado módulo objeto, para ello el
preprocesador buscará comandos especiales (directivas de preprocesador), las cuales le indican al
preprocesador que busque las bibliotecas de código especiales que el lenguaje trae por defecto, como
por ejemplo, librerías para entrada y salida de datos por pantalla, para así sustituir en el código las
©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o
sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por
escrito de la Universidad Virtual del Estado de Guanajuato.
9
I-MIP7001_M2AA2L1_Cédula
Versión: Septiembre 2012
Revisor: En lista
directivas que sean necesarias, ello con la finalidad de preparar el código para ser traducido a lenguaje
máquina.
Enseguida, el ligador ensamblará todas las partes que componen el programa, pues éste puede estar
compuesto de otros subprogramas, funciones del sistema u otros módulos objeto, por ello el ligador
conjunta todas las partes que integran al programa para así generar el programa ejecutable final.
En la Figura 5 se puede observar el proceso descrito anteriormente:
Figura 5. Proceso de traducción de un código fuente a un programa ejecutable.
Ya que se tiene el programa ejecutable se procede ahora a su ejecución en el sistema operativo y a
cargar el programa en la memoria principal de la computadora. En la ejecución, el programa lee los
datos que le da el usuario o un archivo y los procesa para así dar salida a los datos por medio del
monitor o de un archivo en su caso, este proceso puedes observarlo en la Figura 6.
10
©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o
sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por
escrito de la Universidad Virtual del Estado de Guanajuato.
I-MIP7001_M2AA2L1_Cédula
Versión: Septiembre 2012
Revisor: En lista
Figura 5. Ejecución de un programa en la computadora
Ahora bien, ¿qué sucede cuando se termina de ejecutar un programa? El programa le envía un aviso al
sistema operativo de que ha terminado el proceso, éste a su vez se encarga de borrar el programa de
la memoria y de esta manera el programa ha terminado su ejecución.
Conclusión A través de esta lectura lograste enriquecer tus conocimientos sobre la manera de abstraer un
problema del mundo real, y conceptualizar su solución por medio de un punto de vista computacional
utilizando diversas analogías, así como diferenciar lo que es un programa computacional de otras
terminologías que suelen confundirse tales como software, aplicación o sistema de información.
Referencias Aplicación. (s. f.). En Real Academia de la Lengua Española diccionario en línea
Recuperado
el
27
de
Julio
de
2010,
de
http://buscon.rae.es/draeI/SrvltConsulta?TIPO_BUS=3&LEMA=aplicaci%F3n
Beekman, G. (2005). Introducción a la informática. (José Manuel
Díaz Martín trad.). México: Pearson Educación.
Cairó, O. (2006). Fundamentos de programación. Piensa en C. [En línea]. México:
Pearson Educación. Recuperado el 29 de Julio de 2010, de la base de datos
Bibliotechnia. Recurso de la Biblioteca Digital de la UVEG.
Cohen, D. y Asín, E. (2005). Sistemas de Información para los negocios. México: Mc
Graw-Hill.
Forouzan, B. (2003). Introducción a la ciencia de la computación, de la manipulación de
datos a la teoría de la computación. (Lorena Peralta trad.). México: Thompson Learning.
GNU operating system. (2009). La definición de Software libre. Recuperado el 19 de
Agosto del 2009 de http://www.gnu.org/philosophy/free-sw.es.html
11
©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o
sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por
escrito de la Universidad Virtual del Estado de Guanajuato.
I-MIP7001_M2AA2L1_Cédula
Versión: Septiembre 2012
Revisor: En lista
Real Academia de la Lengua Española. (s. f.). Programa. En Diccionario de la RAE
[Versión
en
línea].
Recuperado
el
27
de
julio
de
2010,
de
http://buscon.rae.es/draeI/SrvltConsulta?TIPO_BUS=3&LEMA=programa
Real Academia de la Lengua Española. (s. f.). Software. En Diccionario de la RAE
[Versión
en
línea].
Recuperado
el
27
de
Julio
de
2010,
de
http://buscon.rae.es/draeI/SrvltConsulta?TIPO_BUS=3&LEMA=software
Mendoza, L. (2009). En curso Sistemas de información en la organización. Irapuato,
Gto. UVEG.
12
©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o
sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por
escrito de la Universidad Virtual del Estado de Guanajuato.