Sie sind auf Seite 1von 19

Unidad 1.

Conceptos Bsicos 2012


Introduccin.
Es imposible hoy en da no darse cuenta del uso de las computadoras. Estas estn en las aulas de las escuelas, en las bibliotecas, los hospitales, las oficinas, las tiendas departamentales, aeropuertos, centrales camioneras, automvil, agencias de viajes, etc. Las computadoras se han convertido en una presencia diaria en nuestras vidas an para quienes nunca hayan usado una antes.

1.1 Clasificacin del software de: sistema y aplicacin.


Se conoce como software al equipamiento lgico o soporte lgico de un sistema informtico; comprende el conjunto de los componentes lgicos necesarios que hacen posible la realizacin de tareas especficas, en contraposicin a los componentes fsicos, que son llamados hardware. El software es la parte intangible (fsicamente) de un computador. Se utiliza este trmino para referirse a todo el soporte lgico utilizado por un computador (conjunto de datos y programas). El software se clasifica en relacin a sus caractersticas y a las funciones que realiza este, estas pueden ser de comunicacin entre los diferentes elementos del computador (software de sistema), y comunicacin entre computador y usuario (software de aplicacin). Software de Sistema. Es el software detrs de escenario encargado de controlar el sistema fsico, ocultando los detalles del hardware y que ayuda a la computadora a administrar sus recursos internos. En trmino computacional al software de sistema se le denomina Sistema Operativo o tambin software de base, consiste en programas informticos que sirven para controlar e interactuar con el sistema operativo, proporcionando control sobre el hardware y dando soporte a otros programas. Estos programas realizan diversas tareas, como la transferencia de datos entre la memoria RAM y los dispositivos de almacenamiento (disco rgido, unidades de discos pticos, etc.) entre otros. Adems, hace que el hardware sea utilizable y lo administra a manera de lograr un buen rendimiento. Su funcin principal es la comunicacin entre todos los elementos del computador, es el encargado de controlar las instrucciones que se estn ejecutando en la CPU y de esta manera controlar los procesos para que el computador funcione de una manera correcta.

Pgina | 1

Unidad 1. Conceptos Bsicos 2012


Ejemplos de este tipo de software son: Sistemas operativos (Windows, Mac, Linux). Controladores tambin conocidos como drivers, estos hacen posible que el sistema operativo se comunique con el hardware conectado al computador y que este funcione de una manera correcta. Software de Aplicacin. Es aquel que permite a los usuarios llevar a cabo una o varias tareas especficas, en cualquier campo de actividad susceptible de ser automatizado o asistido, con especial nfasis en los negocios. Su funcin principal es asistir al usuario en sus tareas habituales, el software de aplicacin ayuda a que nuestras tareas se hagan de una manera sencilla en el computador y se resume en la automatizacin de nuestras labores, actividades diarias. El software de aplicacin, corresponde al conjunto de programas que cumple una funcin especfica, con el objeto de solucionar una necesidad particular del usuario, excluyendo las tareas del sistema operativo. Por ejemplo, si usted quiere escribir textos con una buena presentacin, utilizar un procesador de texto. Si quiere realizar una gran cantidad de operaciones financieras, contables o matemticas, una hoja de clculo. Si quiere manejar grandes volmenes de datos, un manejador de base de datos, etc. Ejemplos de este tipo de software son: Aplicaciones de diseo (Flash, PhotoShop, Corel Draw) Aplicaciones de administracin (contables, ventas, finanzas). Aplicaciones para control de sistemas y automatizacin industrial. Aplicaciones ofimticas (Word, Excel, PowerPoint, etc.). Aplicaciones de utilera (antivirus). Aplicaciones personales (manejo de agenda, operaciones bancarias, etc.). Software educativo. Software empresarial. Software de gestin de proyectos. Software de gestin de recursos humanos. Software de gestin de relaciones con el cliente. Software de Sistemas de informacin geogrfica (SIG). Manejadores de base de datos. Telecomunicaciones (Internet y toda su estructura lgica). Videojuegos. Software mdico. Software de clculo numrico y simblico. Software de diseo asistido (CAD).

Pgina | 2

Unidad 1. Conceptos Bsicos 2012


1.2 Algoritmo.
Un algoritmo se puede definir como una secuencia de instrucciones que representan un modelo de solucin para determinado tipo de problema. O bien como un conjunto de instrucciones que realizadas en orden conducen a obtener la solucin de un problema. Los algoritmos son independientes tanto del lenguaje de programacin en que se expresan como de la computadora que los ejecuta. En cada problema el algoritmo se puede expresar en un lenguaje diferente de programacin y ejecutarse en una computadora distinta; sin embargo el algoritmo ser siempre el mismo. Para realizar un programa es conveniente el diseo o definicin previa del algoritmo. El diseo de algoritmos requiere creatividad y conocimientos profundos de la tcnica de programacin. Luis Joyanes Aguilar nos dice en la ciencia de la
computacin y en la programacin los algoritmos son ms importantes que los lenguajes de programacin o las computadoras. Un lenguaje de programacin es solo un medio para expresar un algoritmo y una computadora es solo un procesador para ejecutarlo.

Los algoritmos son independientes de los lenguajes de programacin. En cada problema el algoritmo puede escribirse y luego ejecutarse en un lenguaje diferente de programacin. El algoritmo es la infraestructura de cualquier solucin, escrita luego en cualquier lenguaje de programacin. Caractersticas de los algoritmos. Las caractersticas fundamentales que debe cumplir todo algoritmo son: Un algoritmo debe ser preciso e indicar el orden de realizacin de cada paso. Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez. Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algn momento; o sea debe de tener un nmero finito de pasos. Puede tener cero o ms elementos de entrada. Debe producir un resultado. Los datos de salida sern los resultados de efectuar las instrucciones. Algoritmos cualitativos y algoritmos cuantitativos. Los algoritmos cualitativos son todos aquellos pasos o instrucciones descritos por medio de palabras, que sirven para llegar a la obtencin de una respuesta o solucin de un problema cualquiera y en sus pasos o instrucciones no estn involucrados clculos numricos.

Pgina | 3

Unidad 1. Conceptos Bsicos 2012


Como ejemplo podemos decir que la utilizacin de un directorio telefnico, las instrucciones para elaborar una receta de un plato de cocina, instrucciones para desarrollar una actividad fsica o los pasos a seguir para cambiar un foco fundido, etc. Los algoritmos cuantitativos, son aquellos pasos o instrucciones que involucran clculos numricos para llegar a un resultado satisfactorio. Como ejemplo podemos citar los pasos para resolver una ecuacin de segundo grado, los pasos lgicos y secuenciales para obtener una nmina, los pasos para resolver el factorial de un nmero o los pasos para encontrar el mnimo comn multiplicador etc. Tcnicas de representacin. Para la representacin de un algoritmo, antes de ser convertido a lenguaje de programacin, se utilizan algunos mtodos de representacin escrita grfica o matemtica. Los mtodos ms conocidos son: Diagramas de flujo. Diagramas Nassi Shneiderman. Pseudocdigo. Lenguaje natural. Frmulas matemticas.

El lenguaje natural puede no ser suficientemente preciso, permitiendo ambigedades, obteniendo una descripcin no del todo satisfactoria. Las formulas, propias del lenguaje matemtico, son un buen sistema de representacin, pero no suelen ser fciles de convertir en programas.

1.3 Lenguaje de programacin.


Un lenguaje de programacin es un idioma artificial diseado para expresar instrucciones que pueden ser ejecutadas a travs de una computadora. Estos pueden usarse para crear programas que controlen el comportamiento fsico y lgico de una computadora, para expresar algoritmos con precisin, o como modo de comunicacin humana. El lenguaje de programacin est formado por un conjunto de smbolos y reglas sintcticas y semnticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila y se mantiene el cdigo fuente de un programa informtico se le llama programacin.

Pgina | 4

Unidad 1. Conceptos Bsicos 2012


El programador es el encargado de utilizar un lenguaje de programacin para crear un conjunto de instrucciones que, al final, constituir un programa o subprograma informtico. Los lenguajes de programacin generalmente se dividen en dos grupos principales en base al procesamiento de sus comandos:

Lenguajes imperativos. Lenguajes funcionales.

Lenguaje de programacin imperativo. Un lenguaje imperativo programa mediante una serie de comandos, agrupados en bloques y compuestos de rdenes condicionales que permiten al programa retornar a un bloque de comandos si se cumple la condicin. Estos fueron los primeros lenguajes de programacin en uso y an hoy muchos lenguajes modernos usan este principio. No obstante, los lenguajes imperativos estructurados carecen de flexibilidad debido a la secuencialidad de las instrucciones. Lenguaje de programacin funcional. Es un lenguaje que crea programas mediante funciones, devuelve un nuevo estado de resultado y recibe como entrada el resultado de otras funciones. Interpretacin y compilacin Los lenguajes de programacin pueden, en lneas generales, dividirse en dos categoras: Lenguajes interpretados. Lenguajes compilados. Lenguaje interpretado. Un lenguaje de programacin es, por definicin, diferente al lenguaje mquina. Por lo tanto, debe traducirse para que el procesador pueda comprenderlo. Un programa escrito en un lenguaje interpretado requiere de un programa auxiliar (el intrprete), que traduce los comandos de los programas segn sea necesario. Lenguaje compilado Un programa escrito en un lenguaje "compilado" se traduce a travs de un programa anexo llamado compilador que, a su vez, crea un nuevo archivo

Pgina | 5

Unidad 1. Conceptos Bsicos 2012


independiente que no necesita ningn otro programa para ejecutarse a s mismo. Este archivo se llama ejecutable. Un programa escrito en un lenguaje compilado posee la ventaja de no necesitar un programa anexo para ser ejecutado una vez que ha sido compilado. Adems, como slo es necesaria una traduccin, la ejecucin se vuelve ms rpida. Sin embargo, no es tan flexible como un programa escrito en lenguaje interpretado, ya que cada modificacin del archivo fuente (el archivo comprensible para los seres humanos: el archivo a compilar) requiere de la compilacin del programa para aplicar los cambios. Por otra parte, un programa compilado tiene la ventaja de garantizar la seguridad del cdigo fuente. En efecto, el lenguaje interpretado, al ser directamente un lenguaje legible, hace que cualquier persona pueda conocer los secretos de fabricacin de un programa y, de ese modo, copiar su cdigo o incluso modificarlo. Por lo tanto, existe el riesgo de que los derechos de autor no sean respetados. Por otro lado, ciertas aplicaciones aseguradas necesitan confidencialidad de cdigo para evitar las copias ilegales (transacciones bancarias, pagos en lnea, comunicaciones seguras). Lenguajes intermediarios Algunos lenguajes pertenecen a ambas categoras (LISP, Java, Python...) dado que el programa escrito en estos lenguajes puede, en ciertos casos, sufrir una fase de compilacin intermediaria, en un archivo escrito en un lenguaje ininteligible (por lo tanto diferente al archivo fuente) y no ejecutable (requerira un intrprete). Los applets Java, pequeos programas que a menudo se cargan en pginas web, son archivos compilados que slo pueden ejecutarse dentro de un navegador web (son archivos con la extensin .class). Algunos ejemplos de lenguajes ampliamente usados A continuacin, encontrar una breve lista de los lenguajes de programacin actuales: Lenguaje ADA BASIC C C++ Cobol Fortran Java MATLAB LISP Pascal Principal rea de aplicacin Tiempo real Programacin para fines educativos Programacin de sistema Programacin de sist. orientado a objeto Administracin Clculo matemticos Programacin orientada a Internet Clculos matemticos Inteligencia artificial Educacin Compilado/interpretado Lenguaje compilado Lenguaje interpretado Lenguaje compilado Lenguaje compilado Lenguaje compilado Lenguaje compilado Lenguaje intermediario Lenguaje interpretado Lenguaje intermediario Lenguaje compilado

Pgina | 6

Unidad 1. Conceptos Bsicos 2012


PHP Perl Desarrollo de sitios web dinmicos Procesamiento de cadenas de caracteres Lenguaje interpretado Lenguaje interpretado

Los lenguajes de programacin pueden clasificarse segn el paradigma de programacin que usan en: Procedimentales. Orientados a objetos. Funcionales. Lgicos. Hbridos. etc.

Procedimentales. Requieren que el usuario (normalmente ser un programador) especifique qu datos desea y cmo hay que obtenerlos. Esto quiere decir que hay que especificar todas las operaciones de acceso a datos llamando a los procedimientos necesarios para obtener la informacin requerida. Estos lenguajes acceden a un registro, lo procesan y basndose en los resultados obtenidos, acceden a otro registro, que tambin deben procesar. As se va accediendo a registros y se van procesando hasta que se obtienen los datos deseados. Las sentencias de un LMD (Lenguaje de manipulacin de datos) procedimental deben estar embebidas en un lenguaje de alto nivel, ya que se necesitan sus estructuras (bucles, condicionales, etc.) para obtener y procesar cada registro individual. A este lenguaje se le denomina lenguaje anfitrin. Las bases de datos jerrquicas y de red utilizan LMD procedimentales. Orientados a objetos. Se le llama as a cualquier lenguaje de programacin que implemente los conceptos definidos por la programacin orientada a objetos. Cabe notar que los conceptos definidos en la programacin orientada a objetos no son una condicin sino que son para definir que un lenguaje es orientado a objetos. Existen conceptos que pueden estar ausentes en un lenguaje dado y sin embargo, no invalidar su definicin como lenguaje orientado a objetos. Quizs las condiciones mnimas necesarias las provee el formalismo que modela mejor las propiedades de un sistema orientado a objetos: los tipos de datos abstractos. Siguiendo esa idea, cualquier lenguaje que permita la definicin de tipos de datos, de operaciones nuevas sobre esos tipos de datos, y de instanciar el tipo de datos podra ser considerado orientado a objetos. Este lenguaje tiene su origen en un lenguaje que fue diseado por los profesores Ole-Johan Dahl y Kristen Nygaard en Noruega. Este lenguaje de programacin orientado a objetos fue el Simula 67 que fue un lenguaje creado para hacer simulaciones de naves.

Pgina | 7

Unidad 1. Conceptos Bsicos 2012


Son lenguajes dinmicos en los que estos objetos se pueden crear y modificar sobre la marcha. Esta programacin orientada a objetos (POO) tomo auge a mediados de los aos ochenta debido a la propagacin de las interfaces grficas de usuarios, para lo que los lenguajes de programacin orientados a objetos estn especialmente dotados. Entre los principales lenguajes de este tipo tenemos: Ada, C++, C#, VB.NET, Clarion, Delphi, Eiffel, Java, Objective - C, Ocaml, Oz, PHP, PowerBuilder, Python, Ruby y Smalltalk. No todos estos lenguajes son especficamente orientados a objetos. Sino que algunos de ellos se le han aadido extensiones orientadas a objetos. Un nuevo paso en los lenguajes de programacin es la Programacin orientada a aspectos (POA). Actualmente est en fase de desarrollo, pero cada vez atrae a ms investigadores y empresas de todo el mundo. Funcionales. Ofrecen al programador un buen nmero de recursos expresivos que permiten resolver problemas complejos mediante programas pequeos y robustos. Entre ellos cabe destacar: un sistema de tipos polimrficos que permite definir una amplia variedad de estructuras de datos de uso genrico, la posibilidad de definir funciones que aceptan otras funciones como argumentos y devuelven funciones como resultado, facilidades para definir y manipular estructuras de datos infinitas, un modelo computacional simple, claro y bien fundamentado, etc. De no menor importancia es la posibilidad de razonar, de forma sencilla, acerca de las propiedades de los programas: su correccin, su eficacia, su comportamiento en ejecucin. Esto permite optimizar las tareas de implementacin de los lenguajes funcionales. Podemos encontrar, en casi todos los lenguajes de programacin funcional, un ncleo comn de conceptos y tcnicas asentado sobre bases firmemente establecidas. Lgicos. La sintaxis de un lenguaje lgico es un sistema de smbolos que consta de un alfabeto de smbolos bsicos (smbolos terminales se les llama en la teora de lenguajes) y unas reglas que permiten construir a partir de ellos estructuras simblicas, cadenas de smbolos que si obedecen a las reglas se llaman sentencias (o wff, well formed formula, cadenas bien formadas). Estas reglas definen la gramtica generativa (a la que llamaremos, simplemente, gramtica) del lenguaje. La gramtica se expresa formalmente mediante un metalenguaje. El lector debe conocer un metalenguaje llamado notacin BNF (Backus Naur Form, o Backus Normal Form), porque es el que se utiliza para definir la sintaxis de los lenguajes de programacin.

Pgina | 8

Unidad 1. Conceptos Bsicos 2012


Un sistema axiomtico est formado por un conjunto finito de axiomas, sentencias que se admiten como siempre verdaderas, sea cual sea la interpretacin, y unas reglas de transformacin que permiten demostrar sentencias a partir de los axiomas. Estas sentencias demostrables, cuyo nmero es infinito, se llaman teoremas. Una ley es un axioma o un teorema. A este estudio estrictamente sintctico de una lgica se le llama clculo: clculo de proposiciones, clculo de predicados, etc. Un clculo es la estructura formal de un lenguaje, abstrayendo el significado; se convierte en un lenguaje cuando se interpretan sus smbolos y sus sentencias, o sea, se les atribuye un significado, se les pone en relacin con los elementos de una conceptuacin. Un lenguaje lgico posee una semntica que se ocupa del significado, es decir, de la interpretacin declarativa que pone en relacin a los elementos sintcticos del lenguaje con los elementos de la conceptuacin que se pretende representar con ese lenguaje. La interpretacin se formaliza como una funcin que asigna a los smbolos del lenguaje elementos de la conceptuacin (objetos o individuos del universo del discurso, o relaciones entre ellos). Adems de la funcin de interpretacin, otro concepto semntico bsico es el de verdad o falsedad de una sentencia, que depende de la verdad o falsedad de sus componentes. Por ejemplo, la sentencia semiformalizada o bien x es A o bien y es B (formalizada sera (A(x) B(y) ) es verdadera si x es A es verdadero, o bien y es B es verdadero, o ambos los son. Pero la verdad o falsedad de esos componentes depende de la interpretacin, es decir de lo que representen. Supongamos que el universo del discurso de nuestra conceptuacin es un conjunto de personas entre las cuales estn dos hombres llamados Juan y Luis; si x representa a Juan, y a Luis, A a hombre y B a mujer, la sentencia debe evaluarse como verdadera (el primero de sus componentes lo es, aunque el segundo no lo sea). Hay dos casos de evaluacin como verdadera o falsa de una sentencia que son particularmente interesantes: Cuando la sentencia es forzosamente verdadera, independientemente de la interpretacin. As la sentencia sea quien sea x, o bien x es A o bien x no es A (formalizada: (x)(A(x) A(x)) ) en una lgica que slo admita verdad o falsedad (lgica binaria) debe ser siempre verdadera, sea cual sea la interpretacin de x y de A (es el famoso principio del tercio excluso ). En cualquier sistema axiomtico de una lgica binaria estas sentencias deben coincidir con las leyes (axiomas o teoremas) del sistema axiomtico. Las llamaremos, para distinguirlas del caso que veremos ahora, axiomas lgicos. Cuando la sentencia se sabe que siempre es verdadera en una determinada conceptuacin. Por ejemplo, la sentencia sea quien sea x, o

Pgina | 9

Unidad 1. Conceptos Bsicos 2012


bien es A o bien x es B obviamente no es un axioma lgico. Pero en la conceptuacin de las personas, si A representa hombre y B mujer , la sentencia (dejando de lado chistes fciles) es verdadera. Estas sentencias se llaman axiomas del dominio o axiomas propios y representan conocimiento normativo del dominio. Los lenguajes lgicos son declarativos, como opuestos a los lenguajes procedimentales. En un lenguaje de programacin lgica tpico, de los que Prolog es sin duda el mejor representante, cada asercin o sentencia expresa una proposicin que puede ser representada por una frmula lgica. Las proposiciones son hechos o reglas. Nuevos hechos pueden ser evaluados frente a otros hechos existentes dados por verdaderos. Las reglas matemticas de la lgica que pueden reducir sentencias textuales a representaciones simblicas existen desde hace mucho tiempo, aunque tan slo desde 1965 contamos con el denominado principio de resolucin, que mostraba cmo estas representaciones podan ser integradas en un ordenador digital para su anlisis. El software que utiliza el principio de resolucin trabaja con clusulas lgicas, y utiliza la unificacin 21 para intentar identificar las partes derecha e izquierda de las clusulas de una forma lgica, investigando los valores de la variable que permitir una identificacin correcta. Hbridos. En la programacin software, sistemas hbridos inteligentes denotan a los sistemas software que emplean, en paralelo, una combinacin de modelos de inteligencia artificial, mtodos y tcnicas de stos subcampos Cada sistema inteligente natural es un hbrido porque stos desarrollan operaciones mentales tanto en niveles simblicos como sub-simblicos. Desde hace pocos aos se ha ido desarrollando una discusin sobre la importancia en la inteligencia artificial de la integracin de todos stos sistemas. Basados en las nociones de que se haban ya creado simples y especficos sistemas de inteligencia artificial (como sistemas para la visin de computadores, sntesis del habla, etc.) algunos autores proponen a que es ahora el momento de la integracin para crear complejos, grandes sistemas de inteligencia artificial. Investigadores destacados sobre estas ideas son Marvin Minsky, Aaron Sloman, Deb Roy, Kristinn R. Thrisson y Michel Arbib.

1.4 Programa.
Un computador necesita de un conjunto de instrucciones para que pueda funcionar y realizar las tareas que se requiera. Estas instrucciones son entregadas a travs de un programa. Un programa es un conjunto de instrucciones escritas en algn lenguaje de programacin entendible por el computador. A travs de los programas el computador puede realizar variadas operaciones, desde procesar textos y dibujos hasta resolver complejos problemas matemticos.

Pgina | 10

Unidad 1. Conceptos Bsicos 2012


El proceso de programacin es, por consiguiente, un proceso de solucin de problemas y el desarrollo de un programa requiere las siguientes fases: Definicin y anlisis del problema. Diseo de algoritmos (diagrama de flujo, diagramas N-S o pseudocdigo). Codificacin del programa. Depuracin y verificacin del programa. Documentacin. Mantenimiento

Definicin y anlisis del problema. Esta fase est dada por el enunciado del problema, el cual requiere una definicin clara y precisa. Es importante que se conozca lo que se desea que realice la computadora; mientras esto no se conozca del todo no tiene mucho caso continuar con la siguiente etapa. Una vez que se ha comprendido lo que se desea de la computadora, es necesario definir: Los datos de entrada. Cul es la informacin que se desea producir (salida) Los mtodos y frmulas que se necesitan para procesar los datos. Una recomendacin muy prctica es el que nos pongamos en el lugar de la computadora y analicemos que es lo que necesitamos que nos ordenen y en que secuencia para producir los resultados esperados. Diseo de algoritmos. En esta etapa se utiliza uno los mtodos que ms convenga para la representacin del algoritmo del problema a resolver. Codificacin del programa. La codificacin es la operacin de escribir la solucin del problema (de acuerdo a la lgica del diagrama de flujo o pseudocdigo), en una serie de instrucciones detalladas, en un cdigo reconocible por la computadora, la serie de instrucciones detalladas se le conoce como cdigo fuente, el cual se escribe en un lenguaje de programacin o lenguaje de alto nivel. Depuracin y verificacin del programa. Los errores humanos dentro de la programacin de computadoras son muchos y aumentan considerablemente con la complejidad del problema. El proceso de identificar y eliminar errores, para dar paso a una solucin sin errores se le llama depuracin. La prueba consiste en la captura de datos, hasta que el programa no presente errores (los ms comunes son los sintcticos y lgicos). Documentacin. Es la gua o comunicacin escrita es sus variadas formas, ya sea en enunciados, procedimientos, dibujos o diagramas.

Pgina | 11

Unidad 1. Conceptos Bsicos 2012


A menudo un programa escrito por una persona, es usado por otra. Por ello la documentacin sirve para ayudar a comprender o usar un programa o para facilitar futuras modificaciones (mantenimiento). La documentacin se divide en tres partes: Documentacin interna Documentacin Externa Manual del Usuario Documentacin interna: Son los comentarios o mensaje que se aaden al cdigo fuente para hacer ms claro el entendimiento de un proceso. Documentacin externa: Se define en un documento escrito los siguientes puntos: Descripcin del problema Nombre del autor Algoritmo (diagrama de flujo o pseudocdigo) Diccionario de datos Cdigo fuente (programa)

Manual del usuario: Describe paso a paso la manera cmo funciona el programa, con el fin de que el usuario obtenga el resultado deseado.

Mantenimiento. Se lleva acabo despus de terminado el programa, cuando se detecta que es necesario hacer algn cambio, ajuste o complementacin al programa para que siga trabajando de manera correcta. Para poder realizar este trabajo se requiere que el programa este correctamente documentado.

1.5 Programacin.
La programacin es el proceso de disear, escribir, 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.

Pgina | 12

Unidad 1. Conceptos Bsicos 2012


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: Correccin. 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 desarrollarlo 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 as su desarrollo y posterior mantenimiento. Al elaborar un programa se debe intentar que su estructura sea sencilla y coherente, as como cuidar el estilo en la edicin; 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 programadores puedan continuar el trabajo fcilmente. 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 al obtener la eficiencia de un programa, dependiendo de su naturaleza (espacio en disco que utiliza, trfico de 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 elabor. La portabilidad es una caracterstica muy deseable para un programa, ya que permite, por ejemplo, a un programa que se ha desarrollado para sistemas GNU/Linux ejecutarse tambin en la familia de sistemas operativos Windows. Esto permite que el programa pueda llegar a ms usuarios ms fcilmente.

1.6 Paradigmas de programacin.


Un paradigma es un determinado marco desde el cual miramos el mundo, lo comprendemos, lo interpretamos e intervenimos sobre l. Abarca desde el conjunto de conocimientos cientficos que imperan en una poca determinada

Pgina | 13

Unidad 1. Conceptos Bsicos 2012


hasta las formas de pensar y de sentir de la gente en un determinado lugar y momento histrico. Adam Smith define paradigma, en su libro Los poderes de la mente, como: un conjunto compartido de suposiciones. Es la manera como percibimos el mundo: agua para el pez. El paradigma nos explica el mundo y nos ayuda a predecir su comportamiento". En nuestro contexto, el paradigma debe ser concebido como una forma aceptada de resolver un problema en la ciencia, que ms tarde es utilizada como modelo para la investigacin y la formacin de una teora. Tambin, el paradigma debe ser concebido como un conjunto de mtodos, reglas y generalizaciones utilizadas conjuntamente por aquellos entrenados para realizar el trabajo cientfico de investigacin. Un paradigma de programacin es una propuesta tecnolgica que es adoptada por una comunidad de programadores cuyo ncleo central es incuestionable en cuanto a que unvocamente trata de resolver uno o varios problemas claramente delimitados. La resolucin de estos problemas debe suponer consecuentemente un avance significativo en al menos un parmetro que afecte a la ingeniera de software. Tiene una estrecha relacin con la formalizacin de determinados lenguajes en su momento de definicin. Un paradigma de programacin est delimitado en el tiempo en cuanto a aceptacin y uso ya que nuevos paradigmas aportan nuevas o mejores soluciones que la sustituyen parcial o totalmente. En nuestro contexto, los paradigmas de programacin nos indican las diversas formas que, a lo largo de la evolucin de los lenguajes, han sido aceptadas como estilos para programar y para resolver los problemas por medio de una computadora. Probablemente el paradigma de programacin que actualmente es el ms usado a todos los niveles es la orientacin a objeto. El ncleo central de este paradigma es la unin de datos y procesamiento en una entidad llamada "objeto", relacionable a su vez con otras entidades "objeto". Tradicionalmente datos y procesamiento se han separado en reas diferente del diseo y la implementacin de software. Esto provoc que grandes desarrollos tuvieran problemas de fiabilidad, mantenimiento, adaptacin a los cambios y escalabilidad. Con la orientacin a objetos y caractersticas como el encapsulado, polimorfismo o la herencia se permiti un avance significativo en el desarrollo de software a cualquier escala de produccin.

Pgina | 14

Unidad 1. Conceptos Bsicos 2012


1.7 Editores de texto.
Un editor de texto es un programa que permite crear y modificar archivos digitales compuestos nicamente por texto sin formato, conocidos comnmente como archivos de texto o texto plano. El programa lee el archivo e interpreta los bytes ledos segn el cdigo de caracteres que usa el editor. Hoy en da es comnmente de 7 8 bits en ASCII o UTF-8, rara vez EBCDIC. Por ejemplo, un editor ASCII de 8 bits que lee el nmero binario 01100001 (decimal 97 hexadecimal 61) en el archivo lo representar en la pantalla por la figura a, que el usuario reconoce como la letra "a" y ofrecer al usuario las funciones necesarias para cambiar el nmero binario en el archivo. Los editores de texto son incluidos en el sistema operativo o en algn paquete de software instalado y se usan cuando se deben crear o modificar archivos de texto como archivos de configuracin, scripts o el cdigo fuente de algn programa. El archivo creado por un editor de texto incluye por convencin en DOS y Microsoft Windows la extensin ".txt", aunque pueda ser cambiada a cualquier otra con posterioridad. Tanto Unix como Linux dan al usuario total libertad en la denominacin de sus archivos. Al trasladar archivos de texto de un sistema operativo a otro se debe considerar que existen al menos dos convenciones diferentes para sealar el trmino de una lnea: Unix y Linux usan slo retorno de carro en cambio Microsoft Windows usa al trmino de cada lnea retorno de carro y salto de lnea. Los editores de textos "planos" se distinguen de los procesadores de texto en que se usan para escribir slo texto, sin formato y sin imgenes, es decir sin diagramacin. El texto plano es representado en el editor mostrando todos los caracteres presentes en el archivo. Los nicos caracteres de formateo son los caracteres de control del respectivo cdigo de caracteres. En la prctica, stos son: salto de lnea, tabulacin horizontal y retorno de carro. El cdigo de caracteres ms usado en el ao 2007 es el ASCII. Los documentos creados por un procesador de texto generalmente contienen ms caracteres de control para darle al texto un formato o diagramacin particular, a menudo protegidos de ser copiados por una marca registrada como por ejemplo negrilla, cursiva, columnas, tablas, tipografa, etc. En un comienzo se utilizaron tales formatos slo en autoedicin, pero hoy se utilizan incluso en el procesador de texto ms sencillo.

Pgina | 15

Unidad 1. Conceptos Bsicos 2012


Los procesadores de texto pueden en la mayora de los casos almacenar un texto plano en un archivo de texto plano, pero se le debe ordenar explcitamente que se desee esa opcin, de otra manera podra guardarlo con algn formato especial. Hay una gran variedad de editores de texto. Algunos son de uso general, mientras que otros estn diseados para escribir o programar en un lenguaje. Algunos son muy sencillos, mientras que otros tienen implementadas gran cantidad de funciones. Hoy en da muchos editores originalmente salidos de Unix o Linux han sido portados a otros sistemas operativos, lo que permite trabajar en otros sistemas sin tener que aprender el uso de otro editor. Algunos editores son sencillos mientras que otros ofrecen una amplia gama de funciones. Editores para profesionales deben ser capaces de leer archivos de gran extensin, mayor que la capacidad de la memoria RAM de la mquina y tambin arrancar rpidamente, ya que el tiempo de espera disminuye la concentracin y disminuye de por si la productividad. Los editores de texto sirven para muchas cosas pues facilitan el trabajo. Algunos editores de texto incluyen el uso de lenguajes de programacin para automatizar engorrosos o repetidos procedimientos a realizar en el texto. Por ejemplo, Emacs puede ser adaptado a las necesidades del usuario, incluso las combinaciones de teclas para ejecutar funciones pueden ser adaptadas y es programable en Lisp. Muchos editores de texto incluyen coloreado de sintaxis y funciones que ofrecen al usuario completar una palabra iniciada usando para ello la configuracin. Algunas funciones especiales son: Editores diseados para un lenguaje de programacin determinado, con coloreado de sintaxis, macros, completado de palabras, etc. Editores con regiones plegables. A veces no todo el texto es relevante para el usuario. Con este tipo de editores ciertas regiones con texto irrelevante pueden ser plegadas, escondidas, mostrando al usuario solo lo importante del texto. Un Entorno de desarrollo integrado es un programa que incluye un editor y otras herramientas de trabajo, como compiladores, extractores de diferencias entre dos textos, repositorios, etc., incluidos en un solo programa.

Pgina | 16

Unidad 1. Conceptos Bsicos 2012


1.8 Compiladores e intrpretes.
Compiladores. Son programas que traducen un lenguaje de alto nivel al lenguaje mquina. Un programa compilado indica que ha sido traducido y est listo para ser ejecutado. La ejecucin de los programas compilados es ms rpida que la de los interpretados, ya que el intrprete debe traducir mientras est en la fase de ejecucin. Un compilador es un programa que traduce el programa fuente (conjunto de instrucciones de un lenguaje de alto nivel, por ejemplo Basic o Pascal) a programa objeto (instrucciones en lenguaje mquina que la computadora puede interpretar y ejecutar). Se requiere un compilador para cada lenguaje de programacin. Un compilador efecta la traduccin, no ejecuta el programa. Una vez compilado el programa, el resultado en forma de programa objeto ser directamente ejecutable. Estos presentan una ventaja considerable frente a los intrpretes en la velocidad de ejecucin, por lo que su uso ser mejor en aquellos programas probados en los que no se esperan cambios y que deban ejecutarse muchas veces. En caso de que se opte por un interpretador se debe considerar que el intrprete resida siempre en memoria. Intrpretes. Un intrprete es un programa que procesa los programas escritos en un lenguaje de alto nivel, sin embargo, est diseado de modo que no existe independencia entre la etapa de traduccin y la etapa de ejecucin. Un intrprete traduce cada instruccin o sentencia del programa escrito a un lenguaje mquina e inmediatamente se ejecuta. Estos encuentran su mayor ventaja en la interaccin con el usuario, al facilitar el desarrollo y puesta a punto de programas, ya que los errores son fciles de detectar y sobre todo de corregir.

1.9 Ejecutables.
Archivo que tiene la capacidad de poder ser ejecutado de forma independiente, o en otras palabras, que no necesita ser ejecutado por una aplicacin externa. Estos archivos son ejecutados y controlados por el sistema operativo. Un archivo ejecutable contiene un programa, y generalmente necesitan de otros archivos para funcionar (aunque no es necesario). Un ejemplo de archivo ejecutable en Windows son los .EXE, o los .COM en MSDOS.

Pgina | 17

Unidad 1. Conceptos Bsicos 2012


En informtica, un ejecutable o archivo ejecutable, es tradicionalmente un archivo binario cuyo contenido se interpreta por el ordenador como un programa. Generalmente, contiene instrucciones en cdigo mquina de un procesador en concreto, pero tambin puede contener bytecode que requiera un intrprete para ejecutarlo. Adems suele contener llamadas a funciones especficas de un sistema operativo (llamadas al sistema). Dependiendo del tipo de que se traten las instrucciones, hablaremos de ejecutables portables (se pueden ejecutar en varias plataformas) y no portables (destinado a una plataforma concreta). Por ejemplo, un ejecutable Java es portable ya que utiliza un bytecode no asociado a un procesador en concreto. Sin embargo en un sentido ms general, un programa ejecutable no tiene por qu necesariamente contener cdigo de mquina, sino que puede tener instrucciones a interpretar por otro programa. Este tipo de ejecutables son conocidos con el nombre de scripts. En la mayora de los sistemas modernos, un archivo ejecutable contiene mucha informacin que no es parte del programa en s: recursos como textos e imgenes, requisitos del entorno de ejecucin, informacin simblica y de depuracin, u otra informacin que ayude al sistema operativo a ejecutar el programa. En general, los archivos ejecutables son el principal medio de transmisin de virus.

1.10 Consola de lnea de comandos.


Interfaz de Lnea de Comandos (CLI), por su acrnimo en ingls de Command Line Interface (CLI), es un mtodo que permite a las personas dar instrucciones a algn programa informtico por medio de una lnea de texto simple. Debe notarse que los conceptos de CLI, Shell y Emulador de terminal no son lo mismo, aunque suelen utilizarse como sinnimos. Las CLI pueden emplearse interactivamente, escribiendo instrucciones en alguna especie de entrada de texto, o pueden utilizarse de una forma mucho ms automatizada (archivo batch), leyendo comandos desde un archivo de scripts. Esta interfaz existe casi desde los comienzos de la computacin, superada en antigedad solo por las tarjetas perforadas y mecanismos similares. Existen, para diversos programas y sistemas operativos, para diversos hardware, y con diferente funcionalidad. Aparecen como interfaz de lenguajes interpretados tales como Java, Python, Ruby o Perl. Tambin se utilizan en aplicaciones cliente-servidor, en DBs (Postgres, MySQL, Oracle), en clientes FTP, etc.

Pgina | 18

Unidad 1. Conceptos Bsicos 2012


La contraparte de CLI es la interfaz grfica de usuario (GUI) que ofrece una esttica mejorada y una mayor simplificacin, a costa de un mayor consumo de recursos computacionales, y, en general, de una reduccin de la funcionalidad alcanzable. As mismo aparece el problema de una mayor vulnerabilidad por complejidad. Las CLI son usadas por muchos programadores y administradores de sistemas como herramienta primaria de trabajo, especialmente en sistemas operativos basados en Unix; en entornos cientficos y de ingeniera, y un subconjunto ms pequeo de usuarios domsticos avanzados. En dispositivos portables y PDAs (como el iPhone), las CLI no se utilizan, debido a lo complejo que resulta ingresar datos de texto, o por la ausencia total de teclados.

Pgina | 19

Das könnte Ihnen auch gefallen