Sie sind auf Seite 1von 9

PROGRAMACIN

La programacin informtica o programacin algortmica, acortada


como programacin, es el proceso de disear, codificar, depurar y mantener
el cdigo fuente de programas computacionales. El cdigo fuente es escrito en
un lenguaje de programacin. El propsito de la programacin es crear programas
que exhiban un comportamiento deseado. El proceso de escribir cdigo requiere
frecuentemente conocimientos en varias reas distintas, adems del dominio del
lenguaje a utilizar, algoritmos especializados y lgica formal. Programar no
involucra necesariamente otras tareas tales como el anlisis y diseo de la
aplicacin (pero s el diseo del cdigo), aunque s suelen estar fusionadas en el
desarrollo de pequeas aplicaciones.
Del proceso de programacin surge lo que comnmente se conoce
como software (conjunto de programas), aunque estrictamente este ltimo abarca
mucho ms que solo la programacin.
HISTORIA
Para crear un programa, y que la computadora lo interprete y ejecute las
instrucciones escritas en l, debe escribirse en un lenguaje de programacin. En
sus inicios las computadoras interpretaban solo instrucciones en un lenguaje
especfico, del ms bajo nivel, conocido como cdigo mquina, siendo ste
excesivamente complicado para programar. De hecho solo consiste en cadenas
de nmeros 1 y 0 (sistema binario). Para facilitar el trabajo de programacin, los
primeros cientficos, que trabajaban en el rea, decidieron reemplazar las
instrucciones, secuencias de unos y ceros, por palabras o abreviaturas
provenientes del ingls; las codificaron y crearon as un lenguaje de mayor nivel,
que se conoce como Assembly o lenguaje ensamblador. Por ejemplo, para sumar
se podra usar la letra A de la palabra inglesa add (sumar). En realidad escribir en
lenguaje ensamblador es bsicamente lo mismo que hacerlo en lenguaje mquina,
pero las letras y palabras son bastante ms fciles de recordar y entender que
secuencias de nmeros binarios. A medida que la complejidad de las tareas que

realizaban las computadoras aumentaba, se hizo necesario disponer de un


mtodo sencillo para programar. Entonces, se crearon los lenguajes de alto nivel.
Mientras que una tarea tan trivial como multiplicar dos nmeros puede necesitar
un conjunto de instrucciones en lenguaje ensamblador, en un lenguaje de alto
nivel bastar con solo una. Una vez que se termina de escribir un programa, sea
en ensamblador o en algunos lenguajes de alto nivel, es necesario compilarlo, es
decir, traducirlo completo a lenguaje mquina.1 Eventualmente ser necesaria otra
fase denominada comnmente link o enlace, durante la cual se anexan al cdigo,
generado durante la compilacin, los recursos necesarios de alguna biblioteca. En
algunos lenguajes de programacin, puede no ser requerido el proceso de
compilacin y enlace, ya que pueden trabajar en modo intrprete. Esta modalidad
de trabajo es equivalente pero se realiza instruccin por instruccin, a medida que
es ejecutado el programa.

Lxico y programacin
La programacin se rige por reglas y un conjunto ms o menos reducido de
rdenes, expresiones, instrucciones y comandos que tienden a asemejarse a
una lengua natural acotada (en ingls); y que adems tienen la particularidad
de una reducida ambigedad. Cuanto menos ambiguo es un lenguaje de
programacin, se dice, es ms potente. Bajo esta premisa, y en el extremo, el
lenguaje ms potente existente es el binario, con ambigedad nula (lo cual
lleva a pensar as del lenguaje ensamblador).
En los lenguajes de programacin de alto nivel se distinguen diversos
elementos entre los que se incluyen el lxico propio del lenguaje y las reglas
semnticas y sintcticas.

Programas y algoritmos
Un algoritmo es una secuencia no ambigua, finita y ordenada de instrucciones
que han de seguirse para resolver un problema. Un programa normalmente
implementa (traduce a un lenguaje de programacin concreto) uno o ms
algoritmos. Un algoritmo puede expresarse de distintas maneras: en forma
grfica, como un diagrama de flujo, en forma de cdigo como en pseudocdigo
o un lenguaje de programacin, en forma explicativa, etc.

Los programas suelen subdividirse en partes menores, llamadas mdulos, de


modo que la complejidad algortmica de cada una de las partes sea menor que
la del programa completo, lo cual ayuda al desarrollo del programa. Esta es
una prctica muy utilizada y se conoce como "refino progresivo".
Segn Niklaus Wirth, un programa est formado por los algoritmos y la
estructura de datos.
Se han propuesto diversas tcnicas de programacin cuyo objetivo es mejorar
tanto el proceso de creacin de software como su mantenimiento. Entre ellas,
se pueden mencionar las siguientes:

Programacin declarativa

Programacin estructurada

Programacin modular

Programacin orientada a objetos

Compilacin
El programa escrito en un lenguaje de programacin de alto nivel (fcilmente
comprensible por el programador) es llamado programa fuente y no se puede
ejecutar directamente en una computadora. La opcin ms comn es compilar
el programa obteniendo un mdulo objeto, aunque tambin puede ejecutarse
en forma ms directa a travs de un intrprete informtico.
El cdigo fuente del programa se debe someter a un proceso de traduccin
para convertirlo a lenguaje mquina o bien a un cdigo intermedio, generando
as un mdulo denominado "objeto". A este proceso se le llama compilacin.
Habitualmente la creacin de un programa ejecutable (un tpico.exe para
Microsoft Windows o DOS) conlleva dos pasos. El primer paso se llama
compilacin (propiamente dicho) y traduce el cdigo fuente escrito en un
lenguaje de programacin almacenado en un archivo de texto a cdigo en bajo
nivel (normalmente en cdigo objeto, no directamente a lenguaje mquina). El
segundo paso se llama enlazado en el cual se enlaza el cdigo de bajo nivel
generado de todos los ficheros y subprogramas que se han mandado compilar
y se aade el cdigo de las funciones que hay en las bibliotecas del compilador
para que el ejecutable pueda comunicarse directamente con el sistema
operativo, traduciendo as finalmente el cdigo objeto a cdigo mquina, y
generando un mdulo ejecutable.
Estos dos pasos se pueden hacer por separado, almacenando el resultado de la
fase de compilacin en archivos objetos (un tpico .o para Unix, .obj para MSWindows, DOS); para enlazarlos en fases posteriores, o crear directamente el

ejecutable; con lo que la fase de compilacin puede almacenarse solo de forma


temporal. Un programa podra tener partes escritas en varios lenguajes, por
ejemplo, Java, C, C++ y ensamblador, que se podran compilar de forma
independiente y luego enlazar juntas para formar un nico mdulo ejecutable.

Programacin e ingeniera del software


Existe una tendencia a identificar el proceso de creacin de un programa
informtico con la programacin, que es cierta cuando se trata de programas
pequeos para uso personal, y que dista de la realidad cuando se trata de
grandes proyectos.
El proceso de creacin de software, desde el punto de vista de la ingeniera,
incluye mnimamente los siguientes pasos:
1.
Reconocer la necesidad de un programa para solucionar un problema o
identificar la posibilidad de automatizacin de una tarea.
2.
Recoger los requisitos del programa. Debe quedar claro qu es lo que
debe hacer el programa y para qu se necesita.
3.
Realizar el anlisis de los requisitos del programa. Debe quedar claro qu
tareas debe realizar el programa. Las pruebas que comprueben la validez del
programa se pueden especificar en esta fase.
4.
Disear la arquitectura del programa. Se debe descomponer el programa
en partes de complejidad abordable.
5.
Implementar el programa. Consiste en realizar un diseo detallado,
especificando completamente todo el funcionamiento del programa, tras lo
cual la codificacin (programacin propiamente dicha) debera resultar
inmediata.
6.
Probar el programa. Comprobar que pasan pruebas que se han definido
en el anlisis de requisitos.
7.
Implantar (instalar) el programa. Consiste en poner el programa en
funcionamiento junto con los componentes que pueda necesitar (bases de
datos, redes de comunicaciones, etc.).
La ingeniera del software se centra en los pasos de planificacin y diseo del
programa, mientras que antiguamente (programacin artesanal) la realizacin
de un programa consista casi nicamente en escribir el cdigo, bajo solo el
conocimiento de los requisitos y con una modesta fase de anlisis y diseo.

Referencias histricas

El trabajo de Ada Lovelace, hija de Anabella Milbanke Byron y Lord Byron,


realiz para la mquina de Babbage le hizo ganarse el ttulo de primera
programadora de computadoras del mundo, aunque Babbage nunca complet
la construccin de la mquina. El nombre del lenguaje de programacin Ada
fue escogido como homenaje a esta programadora.

Por Qu Aprender A Programar?


Los estudios sobre el mercado de trabajo muestran que la oferta de ingenieros
con conocimientos en programacin no esta ni siquiera cerca de satisfacer la
demanda. Esto es cierto tanto en los Estados Unidos como en el resto del
mundo. Las empresas, sin importar su tamao, necesitan de personas con
conocimientos en programacin que les ayuden a desarrollar los sistemas de
informacin que les permitan crecer en sus mercados.

Por un lado nuestras economas estn en un momento interesante. Despus de


aos de trabajo con computadoras y tecnologas, finalmente estamos llegando
al punto donde la tecnologa ha permeado casi todo los aspectos de la vida
diaria de los seres humanos. Por ejemplo, los bufetes de abogados estn
utilizando la tecnologa para acelerar el proceso de descubrimiento de los
casos, los inversores estn utilizando la tecnologa para encontrar nuevas
oportunidades de inversin, y compaas como Google la estn utilizando para
crear vehculos que se auto-conducen. Pero a medida que la tecnologa ayuda
a aumentar las posibilidades de automatizacin en muchas industrias, existe
tambin la posibilidad de supresin de empleos en muchos sectores de la
economa.

Las empresas de todo el mundo necesitan ms programadores. Las personas


que desarrollan buenas habilidades en programacin pueden conseguir
empleos de hasta US 100,000.00 al ao. En la mayora de los pases pasa un
fenmeno que los economistas llaman desempleo estructural: los puestos de
trabajo estn disponibles, pero nuestra fuerza de trabajo no est capacitada
para esos trabajos.

En libros como Race Against the Machine, o program or be programmed,


los autores argumentan de manera muy convincente que la tecnologa mejora
cada da ms, y por lo tanto, esto contribuye a que diariamente una gran

cantidad de empleos se externalizan a las mquinas. Pero si usted est


preocupado acerca de su trabajo, hay una solucin fcil: la creciente
dependencia de la Sociedad al uso de la automatizacin significa que es ms
importante que nunca entender cmo funcionan los sistemas que La Sociedad
misma se hace cada da ms dependiente. Una manera ms prctica de tomar
el control de los sistemas que utilizamos en el da a da es entender cmo
funcionan. Cmo se hace esto? Aprendiendo a programar.

Por qu una persona que no ha estudiado tecnologa debera de aprender


a programar?
Al igual que aprender una lengua extranjera, la programacin expande la
mente y ayuda a pensar ms en forma algortmica (esto significa que nos
ayuda a pensar de una forma mucho ms ordenada). An sabiendo un poco de
programacin bsica, esto puede ayudar a las personas a mejorar y
automatizar tareas que realizan en sus trabajos de la vida cotidiana.

La programacin no es slo para los programadores. A medida que avanzamos


hacia un mundo donde la tecnologa controla cada vez ms nuestras vidas, es
una habilidad que prcticamente garantiza ayudarle a conseguir un trabajo. En
una reciente investigacin llevada a cabo por la revista Forbes, esta dio a
conocer unos resultados que muestran que en el mundo el mejor lugar para
invertir su dinero est en los desarrolladores de software. Nos estamos
enfrentando a una economa que depende cada vez ms en las habilidades
tcnicas duras, no las habilidades suaves, para la productividad.

La programacin es una de las pocas disciplinas enseadas en las escuelas hoy


en da que prcticamente garantiza a los estudiantes un puesto de trabajo
despus de graduarse. Ms all de eso, es uno de los pocos campos donde los
estudiantes son los creadores, estn construyendo sitios web, aplicaciones y
mucho ms. Ingeniera mecnica, ingeniera qumica, y la mayora de los
campos de la ingeniera requieren que los estudiantes tengan acceso a toda
una serie de herramientas para crear algo bsico. Con slo un ordenador, los
programadores pueden crear un mundo propio.

La programacin es una gran base para una carrera tcnica en tecnologa de la


informacin. Tener conocimientos en programacin tambin sirve de base para
empezar una empresa de tecnologa. Creemos firmemente que una de las
razones del porqu el bajo nmero de personas con conocimientos tcnicos en

programacin es que la gente no se dan cuenta de todas las oportunidades que


existen para todos aquellos que tienen la capacidad de utilizar y adaptar la
tecnologa con el fin de resolver problemas que nos afectan a todos.

En Capacity IT Academy estamos comprometidos con el desarrollo tecnolgico


de todas las personas de habla hispana, por esta razn hemos desarrollado el
curso en lnea Introduccin a la Programacin, el cual esta diseado y
estructurado para que el estudiante aprenda programacin partiendo desde
cero. Nuestro objetivo como institucin es formar 1,000 expertos en
programacin y desarrollo de software para el ao 2012 sin importar que usted
no tenga conocimientos previos sobre la materia. La programacin ser cada
vez ms importante cada da que pasa, y 2012 es el Ao Cdigo.

Objetivos de la programacin
La programacin debe perseguir la obtencin de programas de calidad. Para ello se
establece una serie de factores que determinan la calidad de un programa. Algunos de los
factores de calidad ms importantes son los siguientes:

Correctitud. Un programa es correcto si hace lo que debe hacer tal y como se


estableci en las fases previas a su desarrollo. Para determinar si un programa hace lo
que debe, es muy importante especificar claramente qu debe hacer el programa antes de
su desarrollo y, una vez acabado, compararlo con lo que realmente hace.

Claridad. Es muy importante que el programa sea lo ms claro y legible posible, para
facilitar tanto su desarrollo como su posterior mantenimiento. Al elaborar un programa se
debe intentar que su estructura sea sencilla y coherente, as como cuidar el estilo de
programacin. De esta forma se ve facilitado el trabajo del programador, tanto en la fase
de creacin como en las fases posteriores de correccin de errores, ampliaciones,
modificaciones, etc. Fases que pueden ser realizadas incluso por otro programador, con lo
cual la claridad es an ms necesaria para que otros puedan continuar el trabajo
fcilmente. Algunos programadores llegan incluso a utilizar Arte ASCII para delimitar
secciones de cdigo; una prctica comn es realizar aclaraciones en el cdigo fuente
utilizando lneas de comentarios. Contrariamente, algunos por diversin o para impedirle
un anlisis cmodo a otros programadores, recurren al uso de cdigo ofuscado.

Eficiencia. Se trata de que el programa, adems de realizar aquello para lo que fue
creado (es decir, que sea correcto), lo haga gestionando de la mejor forma posible los
recursos que utiliza. Normalmente, al hablar de eficiencia de un programa, se suele hacer
referencia al tiempo que tarda en realizar la tarea para la que ha sido creado y a la
cantidad de memoria que necesita, pero hay otros recursos que tambin pueden ser de
consideracin para mejorar la eficiencia de un programa, dependiendo de su naturaleza
(espacio en disco que utiliza, trfico en la red que genera, etc.).

Portabilidad. Un programa es portable cuando tiene la capacidad de poder ejecutarse


en una plataforma, ya sea hardware o software, diferente a aqulla en la que se
desarroll. La portabilidad es una caracterstica muy deseable para un programa, ya que

permite, por ejemplo, a un programa que se ha elaborado para el


sistema GNU/Linux ejecutarse tambin en la familia de sistemas operativos Windows.
Esto permite que el programa pueda llegar a ms usuarios ms fcilmente.

Ciclo de vida del software


El trmino ciclo de vida del software describe el desarrollo de software, desde
la fase inicial hasta la fase final, incluyendo su estado funcional. El propsito es
definir las distintas fases intermedias que se requieren para validar el
desarrollo de la aplicacin, es decir, para garantizar que el software cumpla los
requisitos para la aplicacin y verificacin de los procedimientos de desarrollo:
se asegura que los mtodos utilizados son apropiados. Estos mtodos se
originan en el hecho de que es muy costoso rectificar los errores que se
detectan tarde dentro de la fase de implementacin (programacin
propiamente dicha), o peor an, durante la fase funcional. El modelo de ciclo
de vida permite que los errores se detecten lo antes posible y por lo tanto,
permite a los desarrolladores concentrarse en la calidad del software, en los
plazos de implementacin y en los costos asociados. El ciclo de vida bsico de
un software consta de, al menos, los siguientes procedimientos:

Definicin de objetivos: definir el resultado del proyecto y su papel en la


estrategia global.

Anlisis de los requisitos y su viabilidad: recopilar, examinar y formular


los requisitos del cliente y examinar cualquier restriccin que se pueda aplicar.

Diseo general: requisitos generales de la arquitectura de la aplicacin.

Diseo en detalle: definicin precisa de cada subconjunto de la


aplicacin.

Programacin (programacin e implementacin): es la implementacin


en un lenguaje de programacin para crear las funciones definidas durante la
etapa de diseo.

Prueba de unidad: prueba individual de cada subconjunto de la


aplicacin para garantizar que se implementaron de acuerdo con las
especificaciones.

Integracin: para garantizar que los diferentes mdulos y subprogramas


se integren con la aplicacin. ste es el propsito de la prueba de integracin
que debe estar cuidadosamente documentada.

Prueba beta (o validacin), para garantizar que el software cumple con


las especificaciones originales.


Documentacin: se documenta con toda la informacin necesaria, sea
funcional final para los usuarios del software (manual del usuario), y de
desarrollo para futuras adaptaciones, ampliaciones y correcciones.

Mantenimiento: para todos los procedimientos correctivos


(mantenimiento correctivo) y las actualizaciones secundarias del software
(mantenimiento continuo).
El orden y la presencia de cada uno de estos procedimientos en el ciclo de vida
de una aplicacin dependen del tipo de modelo de ciclo de vida acordado entre
el cliente y el equipo de desarrolladores.

CONCLUSIONES
La programacin orientada a objetos permite la optimizacion del cdigo
generado gracias a que mediante tecnicas de herenci, atributos staticos entre
otros permiten, que el cdigo sea generico de manera que sea reutilizable.

Mediante las tcinca aprendida en el presente curso podemos establecer una


solucin primitiva de un problema real, tan solo con relacionarlo con objetos
lgicos que sran usados para el desarrollo del sofware.

Podemos dar a conocer de una forma sencilla los mecanismos que se usan en
este nivel de programacin, a personas que deseen una explicacion rpida y
sencilla de lo que es la programacin orientada a objetos.

Tenemos los conocimientos necesarios como para enfrentar un problema real y


desarrollo en otro lenguaje de programacin, pues consevimos la idea de que
el lenguaje C es la base de la programacin.

Al trabajar con la programacin orientada a objetos sea esta desarrollada en


otras plataformas de programacin o en lenguaje C, sabemos las formas de
lograr un mejor rendimiento del equipo a controlar y aplicar soluciones
sencillas, de manera que sea fcilment digeribles para el usuario y/o
destinatario del trabajo final.

Das könnte Ihnen auch gefallen