Está en la página 1de 52

COLEGIO DE EDUCACION PROFESIONAL TECNICA DEL ESTADO DE VERACRUZ PLANTEL Lic.

Jess Reyes Heroles #165

UNIDAD:
NOMBRE DEL ALUMNO: ROSA VICTORIA CRUZ ALBERTO

1
MATRCULA: 111650147-7

DOCENTE: ING. MIGUEL ANGEL RAMOS GRANDE MDULO: PROGRAMACION DE VIDEOJUEGOS CARRERA: Profesional Tcnico en Informtica GRUPO: 603 SEMESTRE: 6

TITULO DE LA INVESTIGACIN O TAREA: PRACTICA 1

CONTENIDO: EJERCICIO NUMERO 1 EL AJEDREZ OBSERVACIONES:

REVISIN:

CALIFICACIN

FECHA DE ENTREGA:

Congregacin de Santiago de la Pea, Tuxpan, Ver., Mxico

27/02/2014

Elemento De Entorno
ENTORNO DE DESARROLLO DE VIDEOJUEGOS
Desarrollo de videojuegos El desarrollo de videojuegos es la actividad por la cual se disea y crea unvideojuego, desde el concepto inicial hasta el videojuego en su versin final. sta es una actividad multidisciplinaria, que involucra profesionales de lainformtica, el diseo, el sonido, la actuacin, etctera. El desarrollo de un videojuego generalmente sigue el siguiente proceso:

Concepcin de la idea del videojuego Diseo Planificacin Pruebas Produccin Mantenimiento

El proceso es similar a la creacin de software en general, aunque difiere en la gran cantidad de aportes creativos (msica, historia, diseo de personajes, niveles, etc) necesarios. El desarrollo tambin vara en funcin de la plataforma objetivo (PC, mviles, consolas), el gnero (estrategia en tiempo real, rpg, aventura grfica, plataformas, etc) y la forma de visualizacin (2d, 2.5d y 3d). QU ES UN ENTORNO DE DESARROLLO DE JUEGOS? DEFINICIN Un entorno de desarrollo de videojuegos es una herramienta software, de uso libre y gratuito, que es utilizada para crear escenarios, modificaciones, e incluso nuevos juegos utilizando el motor grfico de un juego relacionado. As, poniendo algn ejemplo, utilizando el ent orno de desarrollo de Neverwinter Nights ha sido creado Rose of Eternity, o usando el de "Half -Life" ha sido creado "Counter-Strike", dos juegos con grficos, opciones y modelos completamente diferentes de sus respectivos originales. DIFERENCIAS CON RESPECTO A UN ENTORNO DE DESARROLLO 3D A pesar de tener un interfaz grfico muy similar, las diferencias con un entorno de desarrollo 3D son perfectamente visibles: hay que respetar las "reglas" del motor que estamos usando, existen eventos con los que crear situaciones en el juego, requieren ciertos conocimientos de programacin, etc... Aunque en todo esto profundizaremos ms adelante. Hagamos ahora un breve repaso de la historia de los entornos de desarrollo de videojuegos, para saber en dnde situarnos y cmo valorar estas valiosas herramientas que los desarrolladores ponen a nuestra disposicin. BREVE HISTORIA DE LOS ENTORNOS DE DESARROLLO ENTORNOS EN 2D

Ya desde finales de los ochenta-primeros de los noventa, la idea de permitir al usuario la posibilidad de crear fases o escenarios empez a arraigar en los desarrolladores de videojuegos. Ya en los 80, el famoso Lemmings permita la creacin de fases por medio de un sencillo interfaz con la forma de un lienzo y un pincel, en el que simplemente arrastrando el ratn para crear el suelo y marcando el punto de salida y llegada de los lemmings podamos crear nuestras propias fases. Algo ms adelante, en el 95, apareca Warcraft, un juego de estrategia desarrollado por Blizzard Entertaiment que inclua un completo editor de mapas con diferentes terrenos, n de jugadores, niveles de IA, etc Ms tarde, en el 98, la misma compaa dio un giro al mundillo con Starcraft, cuyo editor, si bien muy parecido en esttica al de Warcraft, permita la inclusin de triggers o eventos, en los que bajo una condicin se poda ejecutar de forma automtica una accin; este en apariencia sencillo aadido propici que las posibilidades de creacin se volvieran mucho ms imaginativas y variadas, llegndose a crear juegos de aventuras para un solo jugador a partir de este editor. A partir de ste momento las compaas de programacin se subieron al carro como locas, y raro era el juego que no tena herramienta de desarrollo o la posibilidad de cambiar su contenido con relativa facilidad y ciertos conocimientos de programacin (modding). ENTORNOS EN 3D Con la estandarizacin de las 3D como entorno grfico en los videojuegos, vino tambin un cambio sustancial en los entornos de desarrollo; cambios de cmara, mapeado de texturas e incluso creacin de modelos en 3D se convirtieron en herramientas usadas en todos los entornos. Si bien en los juegos de estrategia el cambio fue notorio pero no radical, las 3D dieron entrada a un tipo de juego que, hoy por hoy, es uno de los gneros ms jugados del mundo, sin duda el ms vanguardista tecnolgicamente, y quiz el que ms xito ha tenido entre modders y creadores de mapas: estamos hablando de los shooters, juegos de disparos en primera persona. Los entornos de desarrollo que suelen proporcionar las compaas con estos juegos, aunque de fcil manejo, requieren cierta familiarizacin con la programacin; quizs el ms completo y sin ninguna duda el ms utilizado es el Hammer (antes WorldCraft), desarrollado por Valve para su juego Half-Life, y usado posteriormente incluso para el desarrollo de juegos completos, como Counter-Strike y Day of Defeat, que lejos de quedarse en anecdticos, el Counter-Strike fue juego ms jugado en red del mundo durante 4 aos consecutivos, derrotando en su propio campo a Quake II y a su propio padre, Half-Life. Otros gneros, como juegos de rol o aventuras, tambin suelen incluir entornos de desarrollo (Aurora de Neverwinter Nights, Titan Quest,), pero son bastante distintos del que nos ocupa, y no consideramos adecuado profundizar mucho ms en el tema. 2. CARACTERSTICAS DE LOS VIDEOJUEGOS La interaccin entre el jugador o jugadores y el aparato electrnico (donde se ejecuta el videojuego), puede ser individual o mltiple, mediante el uso de una consola de videojuegos o a travs de internet (Juegos online). El juego es ejecutado mediante una computadora, videoconsola o mquinas Arcade y otros dispositivos adecuados para ejecutar programas como los telfonos mviles.

El juego es grabado en un dispositivo de almacenamiento como el cartucho, disco magntico, CD o DVD. Los grficos que son la forma de ver un videojuego. La calidad visual con la que se aprecian los elementos en la pantalla. En un principio todos los elementos eran de dos dimensiones 2D, es decir todo lo que se mostraba en la pantalla era plano. En la actualidad la mayora de los juegos se desarrolla en tres dimensiones dando as ms realismo a sus contenidos. El control del juego es una de las facetas ms importantes, la forma de manejar el juego debe ser fcil e intuitiva; sino que el aprendizaje puede ser costoso y por consiguiente el juego no llame la atencin. La calidad del sonido que ha evolucionado paralelamente a los grficos desde el sonido del speaker del ordenador (solo eran los sonidos que emita el altavoz interno del ordenador) hasta el sonido envolvente que existe actualmente. Este sonido envolvente se consigue colocando altavoces delante y detrs del usuario. De esta manera los sonidos que en el juego provengan de delante sonaran delante del jugador y los sonidos que provengan de detrs en el juego sonarn detrs A) FUNCIONAMIENTO EN TIEMPO REAL Los videojuegos de estrategia en tiempo real o RTS (siglas en ingls de real-time strategy) son videojuegos de estrategia en los que no hay turnos sino que el tiempo transcurre de forma continua para los jugadores. Los videojuegos en tiempo real son uno de los subgneros de los juegos de estrategia ms dinmicos que hay. Adems, por regla general estn ms trabajados en el apartado grfico, ya que al tener terrenos de juego ms pequeos que otros subgneros, se pueden representar ms texturas sin alterar tanto el rendimiento. Los RTS estn pensados para ser jugados de forma muy dinmica y rpida. A diferencia delos basados en turnos no precisan un planteamiento tan pausado de las decisiones y se centran muy a menudo en la accin militar. La recoleccin de recursos suele ser simple, slo haymaterias primas. Las batallas se representan a una escala de refriega, aunque hay varios juegos que se centran en representar batallas multitudinarias con millares de unidades en el terreno, como sucede en las batallas de la saga Total War. El multijugador es el ms extendido y popular de los dems subgneros, pues se pueden hacer partidas rpidas y dinmicas que no llegan a la hora de juego. Tiempo real y tiempo real pausable Normalmente en los RTS no se pueden dar rdenes con el tiempo en pausa. Sin embargo, tambin hay videojuegos que son en tiempo real regulable o pausable en lo que se puede dar rdenes mientras el tiempo est detenido. Estos videojuegos suelen tener menos accin y ms opciones que los de tiempo real convencional. En ocasiones se puede configurar bajo qu condiciones se parar el juego. Existen ejemplos de este tipo tanto en videojuegos de escala estratgica (como la mayora de los videojuegos de Paradox Interactive), como tctica (por ejemplo, Men of War: Assault Squad).

Caractersticas
Los juegos RTS constan de caractersticas que pueden ser comunes en otros subgneros de la estrategia pero nicos en los dems gneros de videojuegos.

Las partidas se desarrollan en un mapa, que puede ser una ubicacin real o no (indistintamente de lo fidedigna que sea), en el cual ocurre la accin. En el mapa podemos encontrar unidades, edificaciones, recursos y el moldeado del terreno. Las unidades son individuos o grupos que forman una unidad independiente y se pueden controlar directamente con la interfaz del ordenador. Se puede tener un nmero determinado de unidades iguales o distintas, pero ese nmero depende de la poblacin mxima por faccin o las limitaciones de la campaa si es el caso. Estas unidades se suelen separar en unidades militares y unidades civiles. Las primeras estn enfocadas al combate, en cambio las segundas son para la recoleccin de recursos y construccin de edificaciones. Cada unidad posee un nivel de salud, que determina la cantidad de dao que pueden recibir antes de ser eliminadas. Puntos de ataque, que son los puntos de salud que quitan a las unidades enemigas por golpe. Los puntos de defensa, que es el valor de puntos de ataque que resisten por golpe. Dependiendo del juego puede haber ms tipos de atributos variados. Tambin existen las unidades que no tienen accin, normalmente suelen ser animales, rboles y dems recursos. Las edificaciones son objetos generalmente inamovibles, aunque puede haber excepciones. Son construidos por las unidades, habitualmente las civiles. Se pueden agrupar en edificaciones productivas, de recoleccin y defensivas. Las productivas son edificaciones que pueden generar unidades a cambio de recursos y un tiempo de espera determinado por unidad. En todos los juegos modernos se incluyen colas de produccin, en las cuales se puede poner en cola a varias unidades para su creacin y as poder atender otras tareas durante el proceso. Las de recoleccin son edificios enfocados a la recoleccin de recursos, son un punto donde las unidades recolectoras pueden depositar los recursos. Las defensivas son estructuras que pueden atacar a unidades enemigas, como el caso de las torres. Las murallas y muros estn considerados defensivas aunque no ataquen ya que ofrecen una resistencia al avance del enemigo. Los edificios no tienen que ser slo de un tipo, pueden ser de varios, por ejemplo los edificios centrales que suelen ser los que crean unidades de recoleccin pueden crear unidades, atacar al enemigo y ser un punto para depositar recursos. Finalmente est el moldeado del terreno, este determina la forma del mapa y las limitaciones de movilidad de las unidades. Por ejemplo las unidades terrestres no anfibias no pueden atravesar ros, mares u ocanos, y de la misma forma las unidades navales no pueden acceder a tierra firme. Tambin podemos destacar la cmara. sta determina la forma en la que vemos el campo de batalla o mapa. Lo ms normal en los RTS es la perspectiva isomtrica, que se sita en la esquina inferior derecha y enfoca a la esquina superior izquierda. De esta forma tenemos un plano general bastante grande del terreno y se pueden ver las unidades y edificaciones de perfil. Aunque esta es la cmara por excelencia, en determinados juegos se puede usar otras cmaras para funciones cinemticas. stas habitualmente son planos generales de uno o varios personajes del juego durante algn evento cinemtico. Con el paso de los aos se han ido aadiendo funciones a las cmaras, inicialmente la cmara era fija, solo se poda mover hacia los lados o los bordes. Posteriormente se aadieron cuatro posiciones de cmara adicionales para rotar el mapa y poder ver objetos que quedaban tapados por alguna parte del terreno. A partir de la

introduccin de los juegos en tres dimensiones las cmaras se han vuelto dinmicas, pues podemos rotar la cmara en cualquier posicin y alejar o acercar el zoom. Finalmente podemos destacar el minimapa. Aunque esta caracterstica es compartida con otros gneros como los RPG, es muy caracterstica e importante para los juegos RTS. En el minimapa podemos visualizar en todo momento el movimiento de unidades y la posicin de edificaciones de todo el mapa o de toda la zona visible del mapa. Tambin se pueden ver recursos y el moldeado del terreno como ros, montaas, acantilados, etc. Es vital para crear estrategias y gestionar los recursos del mapa, adems de poder avistar ataques enemigos que no vemos en la cmara. Con el paso de los aos se han ido introduciendo caractersticas nuevas, aunque no tan importantes. Varios ejemplos seran: El Metamapa: es una mezcla de minimapa en pantalla completa. Agrupacin de unidades en grupos predefinidos. Puntos de experiencia y niveles para las unidades y edificios, que fue una caracterstica adaptada de los RPG. Habilidades generales de accin, que son ataques o succesos que se pueden invocar cada determinado tiempo, pero que no se relacionan con ninguna unidad o edificio. Terreno destructible, en el cual las unidades pueden modificar terreno. Control por voz, donde el jugador puede dirigir unidades a travs de un micrfono con palabras predefinidas.

Modos de juego
Por lo general tienen dos vertientes. La primera se basa en el juego de un jugador, donde hay una campaa o una serie de campaas que pueden estar conectadas en las cuales suele haber un hroe o un personaje caracterstico con unos rasgos muy marcados. En esas campaas suelen discurrir situaciones picas o histricas. En la segunda vertiente, el juego se enfoca enmodo multijugador, casi en su totalidad en red o a travs de internet. Aqu no es habitual la aparicin de hroes, y prima la habilidad de gestionar y administrar la poblacin y ejrcitos de forma rpida y eficaz. Modo campaa Los modos campaa de los juegos RTS son contenidos del videojuego enfocados generalmente a un jugador. En algunos de los juegos ms modernos existe la posibilidad de hacer campaa en modo cooperativo, que sera una mezcla de modo campaa y modo multijugador. Las campaas estn organizadas como un conjunto de misiones lineales, aunque puede haberflashbacks, donde se narra la parte de la historia de una civilizacin, raza, etnia o grupo de individuos. En la mayora de los casos siempre hay uno o varios hroes que lideran las misiones. Hay videojuegos donde la historia est muy enfocada a los hroes y sus aventuras, como sera el caso de la saga Warcraft, en cambio hay otros donde estn claramente dirigidos a civilizaciones o razas, como sera el caso de la saga Age of Empires. Con frecuencia en las campaas se tiene acceso a unidades o edificios que en otros modos no estn disponibles, eso se debe a la necesidad de adaptar la misin en cuestin a la historia sin desequilibrar las diferentes facciones jugables. Los hroes que aparecen en las campaas se suelen agrupar en dos tipos diferentes: Los hroes principales, suelen tener un carcter marcado donde las decisiones que toman influyen en las misiones. Adems tienen unos atributos como un nivel de

salud o puntos de ataque superiores a las unidades normales. Adems pueden tener habilidades nicas. Generalmente en las misiones hay que mantener al hroe vivo para continuar. Por otro lado, estn los hroes secundarios. Estos suelen tener un carcter menos marcado y no tienen mucha importancia dentro de la historia; suelen servir para enlazar correctamente la historia dentro de las misiones. Aunque lo habitual es que haya como mnimo dos hroes principales, un protagonista y un antagonista, hay varios videojuegos donde no hay hroes principales.

Modo mapa aleatorio o refriega


Este modo de juego presente en casi todos los juegos consiste en realizar batallas en mapas donde el jugador puede elegir el escenario, los parmetros de recursos, la cantidad de facciones involucradas y las alianzas entre ellas. No tienen relacin con la historia, y no aparecen hroes a no ser que el juego est concebido para ello, aunque siempre son hroes secundarios sin relacin con el modo campaa. Existen varios submodos de juego dependiendo del videojuego, que por lo general son los mismos que en los modos multijugador. Modo multijugador Histricamente los modos multijugador de los videojuegos RTS han estado enfocados al juego en red. Eso suceda por la limitacin del ancho de banda de los inicios. Hoy en da hay muchos que tienen un contenido para internet muy importante e incluso son exclusivos para jugar en internet. En modo multijugador se puede dar el caso que se incluyan facciones controladas por el ordenador, aunque no es muy habitual. Los jugadores escogen sus alianzas antes de empezar la batalla en un men, todo muy parecido a una partida de mapa aleatorio. Una vez establecidos todos los parmetros el juego se lanza. En los primeros juegos que soportaba multijugador por internet no haba servidores dedicados, de esta forma si se perda la conexin con el anfitrin durante el juego se terminaba la partida. Este ltimo punto se ha ido solucionando con la implementacin de servidores dedicados por parte de las desarrolladoras. En los juegos ms modernos hay implantado un sistema de handicap para poder nivelar a los jugadores expertos con los principiantes. Subgneros de videojuegos de estrategia en tiempo real

Build and Battle (B&B): Con frecuencia el trmino estrategia en tiempo realresponde a este subgnero especfico aunque es una parte ms del todo. Son videojuegos en los que lo fundamental es el ciclo: 1) recolectar recursos; 2) construir edificios y unidades; 3) batalla. Cuentan con menos aspectos de diplomacia, poltica o comercio. Dune II (1992) es considerado el iniciador de este subgnero.1 Es el subgnero de mayor nmero de ventas. Ejemplos ms conocidos:Dune, Command & Conquer, Warcraft, StarCraft, Homeworld, Age of Empires,Empire Earth, entre otros. Videojuegos de guerra: Normalmente los videojuegos de guerra en tiempo real son juegos tcticos, como la clsica saga Close Combat. Otros menos populares sonSquad Assault o la saga BCT/ATF (ambos pausables). Es mucho menos comn la presencia de wargames operacionales que no sean por turnos, casi la nica excepcin es la saga Airbone Assault de Panther Games. La mayora de los wargames de escala estratgica u operacional son por turnos.

Tcticos no wargames: Videojuegos tcticos menos orientados a la representacin realista de batallas, como Ground Control o Nexus. Tcticos hombre a hombre: Es una variante del anterior donde se manejan unidades individuales, como en la saga Commandos. Accin tctica: Es un hbrido entre videojuego de accin y videojuego tctico hombre a hombre en los que se manejan pequeas unidades de operaciones especiales en 3D en primera persona. Por ejemplo SWAT 3, Rainbow Six. B) REALIZACION DE TAREAS INDEPENDIENTE AL USUARIO, DIBUJAR LOS OBJETOS ACTUALIZANDO CAORDENADAS CALCULAR CONDICIONES. El diseador grafico; alguien debe ser capaz de realizar las imgenes que aparecern, ya sea en mens, pantallas de configuracin y en el juego mismo; debe conocer sobre el uso de alguna herramienta de retoque fotogrfico como Photoshop, Paint Shop Pro o Gimp, y herramientas para modelar objetos 3D tales como 3D Studio Max, Maya, Blender, entre otros. La persona quien componga o cree y/o edite los sonidos y msica que aparecern en el juego, es otro de los participantes en la construccin de videojuegos, los software utilizados son el Adobe Audition, Acid Pro, Reason, Fruity Loops, etc. No hay que olvidar que un videojuego es un programa diferente a los programas convencionales; por ello debe funcionar en tiempo real en todo momento mientras se est ejecutando, debe estar realizando alguna tarea como: dibujar los objetos, actualizar coordenadas, calcular colisiones, etc., independiente de si el usuario hace algo. Obviamente debe tambin estar esperando que ocurra algn evento, ver si el usuario presiona alguna tecla, si mueve el mouse, o presiona algn botn de este y luego actuar en consecuencia. Todo esto y ms ocurre en un ciclo o loop.

3. ESTRUCTURA BASICA DE UN VIDEOJUEGO


Bsicamente la estructura de un videojuego consta de las siguientes partes: 1. Inicializacin Aqu inicializaremos todo lo que ser usado luego en el ciclo del videojuego. Por ejemplo la librera grfica, un modo grfico, el sistema de sonido/msica, de texto y cualquierotro tipo de sistema necesario. Adems reservaremos memoria para los objetos que intervienen en el juego, creacin de estructuras de datos, etc. Carga de sonidos, de imgenes y de recursos en general. Tambin en este proceso se inicializarn las posiciones iniciales de los personajes, carga de puntajes desde un archivo, etc. 2. Ciclo del videojuego El ciclo del videojuego es un loop que se estar repitiendo una y otra vez. Aqu es donde ocurre toda la accin del juego, y la nica forma para poder salir de este ciclo es cuando el jugador pierde, llega al final del juego o sale del videojuego con alguna combinacin de teclas o presionando algn botn del mouse, etc. El ciclo del juego consta bsicamente de tres partes: 2.1. Entrada En esta parte se obtiene desde algn dispositivo de entrada (teclado, mouse, joystick, etc.) todo lo que realiza el jugador, por ejemplo que tecla presion/solt

del teclado, que botn del mouse presion/solt, si movi el mouse en alguna direccin, etc. 2.2. Procesamiento Aqu se procesa toda la informacin que se recibi en el punto anterior y se toman decisiones a partir de los datos de entrada. Es decir aqu est toda la lgica del juego. Se procesa la fsica, inteligencia artificial, comunicacin de datos en red, etc. 2.3. Salida En este punto se muestra toda la informacin ya procesada en el punto anterior, aqu es donde mostramos los grficos en pantalla, reproducimos sonidos, etc. 3. Finalizacin En esta parte se hace bsicamente lo opuesto a lo que hicimos en la inicializacin, es decir, eliminar de la memoria todos los recursos almacenados, ya sea imgenes, sonidos, msica, etc. Cerrar todos los sistemas que se abrieron en la inicializacin. Guardar datos de puntajes en un archivo, etc.

HERRAMIENTAS DE PROGRAMACION
Herramientas De Programacin Las herramientas de programacin, son aquellas que permiten realizar aplicativos, programas, rutinas, utilitarios y sistemas para que la parte fsica del computador u ordenador, funcione y pueda producir resultados.Hoy da existen mltiples herramientas de programacin en el mercado, tanto para analistas expertos como para analistas inexpertos.Las herramientas de programacin ms comunes del mercado, cuentan hoy da con programas de depuracin o de bugger, que son utilitarios que nos permiten detectar los posibles errores en tiempo de ejecucin o corrida de rutinas y programas. | Entre otras herramientas de programacin encontramos libreras y componentes, dados por algunos lenguajes de programacin como son el C++ y delphi. Otras herramientas de programacin son los lenguajes de programacin, que nos permiten crear rutinas, programas y utilitarios. Entre algunas de estas herramientas de programacin tenemos: * Basic y Pascal que son herramientas de programacin, idneas para la inicializacin de los programadores. * C y C++ que sirven para la programacin de sistemas. * Cobol, que es una herramienta de programacin orientada hacia sistemas de gestin empresarial como nominas y contabilidad. * Fortran, que son lenguajes especficos para clculos matemticos y o numricos. * Herramientas de programacin para ambientes grficos como son Visual Basic, Delphi y Visual C. * HTML y Java, que permiten la creacin de pginas WEB para internet. Interrupciones del PIC16F84 Las interrupciones constituyen quiz el mecanismo ms importante para la

conexin del micro controlador con el mundo exterior, sincronizando la ejecucin de programas con acontecimientos externos.

SISTEMA OPERATIVO
Es un programa o conjunto de programas que en un sistema informtico gestiona los recursos de hardware y provee servicios a los programas de aplicacin, ejecutndose en modo privilegiado respecto de los restantes y anteriores prximos y viceversa.2 Ntese que es un error comn muy extendido denominar al conjunto completo de herramientas sistema operativo, es decir, la inclusin en el mismo trmino de programas como el explorador de ficheros, el navegador web y todo tipo de herramientas que permiten la interaccin con el sistema operativo, tambin llamado ncleo o kernel. Esta identidad entre kernel y sistema operativo es solo cierta si el ncleo es monoltico. Otro ejemplo para comprender esta diferencia se encuentra en la plataforma Amiga, donde el entorno grfico de usuario se distribua por separado, de modo que, tambin poda reemplazarse por otro, como era el caso de directory Opus o incluso manejarlo arrancando con una lnea de comandos y el sistema grfico. De este modo, al arrancar un Amiga, comenzaba a funcionar con el propio sistema operativo que llevaba incluido en una ROM, por lo que era cuestin del usuario decidir si necesitaba un entorno grfico para manejar el sistema operativo o simplemente otra aplicacin. Uno de los ms prominentes ejemplos de esta diferencia, es el ncleo Linux, usado en las llamadas distribuciones Linux, ya que al estar tambin basadas en Unix, proporcionan un sistema de funcionamiento similar. Este error de precisin, se debe a la modernizacin de la informtica llevada a cabo a finales de los 80, cuando la filosofa de estructura bsica de funcionamiento de los grandes computadores3 se redise a fin de llevarla a los hogares y facilitar su uso, cambiando el concepto de computador multiusuario, (muchos usuarios al mismo tiempo) por un sistema monousuario (nicamente un usuario al mismo tiempo) ms sencillo de gestionar.4 (Vase AmigaOS, beOS o MacOS como los pioneros5 de dicha modernizacin, cuando los Amiga fueron bautizados con el sobrenombre de Video Toasters6 por su capacidad para la Edicin de vdeo en entorno multitarea round robin, con gestin de miles de colores einterfaces intuitivos para diseo en 3D. Uno de los propsitos del sistema operativo que gestiona el ncleo intermediario consiste en gestionar los recursos de localizacin y proteccin de acceso del hardware, hecho que alivia a los programadores de aplicaciones de tener que tratar con estos detalles. La mayora de aparatos electrnicos que utilizan microprocesadores para funcionar, llevan incorporado un sistema operativo (telfonos mviles, reproductores de DVD, computadoras, radios, enrutadores, etc.). En cuyo caso, son manejados mediante una Interfaz Grfica de Usuario, un gestor de ventanas o un entorno de escritorio, si es un celular, mediante una consola o control remoto si es un DVD y, mediante una lnea de comandos o navegador web si es un enrutador.

LENGUAJES DE PROGRAMACION

Un lenguaje de programacin es un lenguaje que puede ser utilizado para controlar el comportamiento de una mquina, particularmente una computadora. Consiste en un conjunto de reglas sintcticas y semnticas que definen su estructura y el significado de sus elementos, respectivamente. Aunque muchas veces se usa lenguaje de programacin y lenguaje informtico como si fuesen sinnimos, no tiene por qu ser as, ya que los lenguajes informticos engloban a los lenguajes de programacin y a otros ms, como, por ejemplo, el HTML. Segn la forma de ejecucin Lenguajes compilados Naturalmente, un programa que se escribe en un lenguaje de alto nivel tambin tiene que traducirse a un cdigo que pueda utilizar la mquina. Los programas traductores que pueden realizar esta operacin se llaman compiladores. stos, como los programas ensambladores avanzados, pueden generar muchas lneas de cdigo de mquina por cada proposicin del programa fuente. Se requiere una corrida de compilacin antes de procesar los datos de un problema. Los compiladores son aquellos cuya funcin es traducir un programa escrito en un determinado lenguaje a un idioma que la computadora entienda (lenguaje mquina con cdigo binario). Al usar un lenguaje compilado (como lo son los lenguajes del popular Visual Studio de Microsoft), el programa desarrollado nunca se ejecuta mientras haya errores, sino hasta que luego de haber compilado el programa, ya no aparecen errores en el cdigo. Lenguajes interpretados Se puede tambin utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el cdigo objeto que se produce durante la corrida de compilacin para utilizarlo en una corrida de produccin futura, el programador slo carga el programa fuente en la computadora junto con los datos que se van a procesar. A continuacin, un programa intrprete, almacenado en el sistema operativo del disco, o incluido de manera permanente dentro de la mquina, convierte cada proposicin del programa fuente en lenguaje de mquina conforme vaya siendo necesario durante el proceso de los datos. No se graba el cdigo objeto para utilizarlo posteriormente. La siguiente vez que se utilice una instruccin, se le debe interpretar otra vez y traducir a lenguaje mquina. Por ejemplo, durante el procesamiento repetitivo de los pasos de un ciclo, cada instruccin del ciclo tendr que volver a ser interpretado cada vez que se ejecute el ciclo, lo cual hace que el programa sea ms lento en tiempo de ejecucin (porque se va revisando el cdigo en tiempo de ejecucin) pero ms rpido en tiempo de diseo (porque no se tiene que estar compilando a

cada momento el cdigo completo). El intrprete elimina la necesidad de realizar una corrida de compilacin despus de cada modificacin del programa cuando se quiere agregar funciones o corregir errores; pero es obvio que un programa objeto compilado con antelacin deber ejecutarse con mucha mayor rapidez que uno que se debe interpretar a cada paso durante una corrida de produccin. ALGUNOS LENGUAJES DE PROGRAMACIN:

ABAP ABC Ada ActionScript Afnix ALGOL APL ASP ASP.NET AWK B BASIC BCPL Befunge Boo C C++ C# Caml Clipper CLIPS CLU COBOL CORAL

FORTRAN Gambas GML GRAFCET FP Haskell Icon Inform INTERCAL ISWIM J Java JavaScript Joy KWC LADDER Lexico Lingo Lisp Logo Lua MAGIC Mainsail Mesa

Parlog Perl PHP PL/1 Plankalkl PostScript PowerBuilder Prolog Python Rapid REXX RPN RPG Ruby Sail Sather Scheme Scriptol Seed7 Self Sh Simula Smalltalk Snobol

D Delphi DIV Dylan Eiffel Erlang Ensamblador Extended ML Euphoria Fnix Flow-Matic Forth

Miranda ML Modula Modula-2 Modula-3 Natural NetREXX Oberon Object REXX Objective-C Ocaml Occam Oz Pascal

SPARK Squeak SR Standard ML TI-Basic TCL VBA Visual Basic Visual C++ Visual DialogScript Visual Foxpro Yurix ZPL

PROGRAMACIN MODULAR La programacin estructurada es una tcnica de diseo de programas que comenz a ponerse enprctica a principios de los aos 70. Su utilizacin tiene como objetivo paliar algunas deficiencias: 1. Los programas que estn constituidos por un nico bloque, ms o menos grande, de cdigo, dependiendo de la complejidad y tamao de la aplicacin, por ejemplo 5000 6000 lneas de cdigo sin comentar, sin documentar y sin estructurar, esto es, sin hacer uso de un slo submdulo, son programas pocos legibles, difciles de depurar y modificar y poco reutilizables. 2. Un problema complejo no puede solucionarse de una sola vez y con un nico algoritmo; adems, existen operaciones que se repiten una y otra vez a lo largo del programa, de tal manera que es necesario el mismo bloque de cdigo pero con diferentes datos. Con el fin de dar solucin a los puntos anteriores se introdujo la programacin estructurada. Su objetivo primordial es resolver un problema, ms o menos complejo, dividindolo en otros ms sencillos, que ligados convenientemente, nos den la solucin del problema original. Cada subproblema se representar mediante uno o varios mdulos segn su complejidad. La idea es que estos mdulos sean independientes, es decir, que se

puedan modificar o reemplazar sin afectar al resto del programa o que puedan ser reutilizados en otros programas. Supongamos el siguiente ejemplo. Un profesor quiere crear un programa para gestionar la notas de sus alumnos. Quiere que dicho programa le permita realizar tareas tales como asignar notas, cambiar notas, ver las notas segn las distintas calificaciones, etc. Un posible divisin del problema en mdulos sera: Esta subdivisin nos permitira, fcilmente, cambiar la forma de visualizar a los alumnos, reutilizar el mdulo Visualizar en otro programa y sobre todo es mucho ms fcil de comprobar su funcionamiento. Por tanto, las ventajas del diseo modular se traducen, principalmente, en que los programas son: ms fciles de escribir y probar (los mdulos pueden escribirse y probarse separadamentems fciles de mantener y documentar. Programacin Estructurada. Se refiere a un conjunto de tcnicas que han ido evolucionando. Estas tcnicas aumentan considerablemente la productividad del programa reduciendo el tiempo requerido para escribir, verificar, depurar y mantener los programas. La programacin estructurada utiliza un nmero limitado de estructuras de control que minimizan la complejidad de los problemas y que reducen los errores. sta incorpora entre otros elementos: el diseo descendente, recursos abstractos y estructuras bsicas. La programacin estructurada es una forma de escribir programacin de ordenador de forma clara, para ello utiliza nicamente tres estructuras: secuencial, selectiva e iterativa; siendo innecesario y no permitindose el uso de la instruccin o instrucciones de transferencia incondicional ( GOTO ). QU ES UNA INTERFAZ GRAFICA DE USUARIO? En el contexto del proceso de interaccin persona-ordenador, lainterfaz grfica de usuario (IGU), es el artefacto tecnolgico de unsistema interactivo que posibilita, a travs del uso y la representacin del lenguaje visual, una interaccin amigable con un sistema informtico. La interfaz grfica de usuario (en ingls Graphical User Interface,GUI) es un tipo de interfaz de usuario que utiliza un conjunto de imgenes y objetos grficos (iconos, ventanas, tipografa) para representar la informacin y acciones disponibles en la interfaz. Habitualmente las acciones se realizan mediante manipulacin directa para facilitar la interaccin del usuario con la computadora. Surge como evolucin de la lnea de comandos de los primerossistemas operativos y es pieza fundamental en un entorno grfico.

Como ejemplo de interfaz GUI podemos citar el escritorio o desktopdel sistema operativo Windows y el entorno X-Window de Linux. Estructuras y Bases de Datos Sistemas administradores de bases de datos

Qu es un DBMS? Data Base Management System Es un software cuyo objetivo principal es proveer mayor control sobre la informacin. Subsana las deficiencias, limitantes y carencias del uso de archivos tradicionales. En un ambiente tradicional los programas interactan directamente sobre los archivos de datos a travs del sistema operativo. En un ambiente con DBMS los programas interactan con l y este a su vez con los archivos de datos a travs del sistema operativo. Niveles de un DBMS Interno Representacin de bajo nivel de toda la informacin de la base de datos. Registros internos, mtodos de almacenamiento y de acceso a la informacin. Conceptual Esquema lgico de la base de datos (definicin). Se aplican restricciones de seguridad e integridad. Usuario Vistas lgicas que el usuario percibe como informacin. El usuario puede ser un usuario final o un programador (el DBA (database administrator) es aparte). Objetivos de un DBMS Integridad Estar seguros de que la informacin dentro de la base de datos esta correcta de acuerdo a ciertos parmetros de validacin. Lgica Bitcora de control, unicidad de la transaccin, mantiene la consistencia. Ejemplo: BEGIN transaction Movimiento de retiro Actualiza retiro en C23 Moviemiento de depsito Actualiza depsito en C24 END transaction Si algn movimiento dentro de la transaccin falla, los otros son cancelados.

Referencial Que el campo de una tabla (llave externa) nunca haga referencia a un rengln de otra tabla (llave interna) que no exista. Entidad Nunca tener dos registros dentro de la misma tabla que sean idnticos, esto produce confusin en el proceso de seleccin. Usuario Conjunto de reglas que regulan el medio ambiente donde se desenvolver el sistema (business rules). Pueden incluir procedimientos y polticas de seguridad. Dominio Poder controlar (restringir) los valores posibles (a un dominio) para un campo determinado de una relacin (tabla). Seguridad Facilidades que provee la base de datos para controlar el acceso y la utilizacin de la informacin. Del sistema operativo Sistemas de seguridad que son parte de la arquitectura del sistema operativo sobre el cual funciona el DBMS: OS/2, VMS, DOS, UNIX, VM, MVS, etc. Dan proteccin de archivos y directorios as como controlan cuentas y usuarios. Acceso a la informacin Estructuras de datos que sirven para facilitarle al usuario slo la informacin que requiere. Pueden ser vistas lgicas, tablas derivadas, subesquemas, esquemas del DBMS, columnas, tablas e incluso bases de datos completas. Ejecucin de comandos Esquema que nos sirve para controlar los comandos que puede ejecutar el usuario sobre la informacin. Se regulan los comandos de SQL como Select, Insert, Update, Delete y Execute con directivas GRANT y REVOKE. Independencia Es la facilidad de modificar ciertas estructuras o criterios definidos en la base de datos sin repercusiones para los programas. Existen la independencia lgica, la fsica, la de integridad y la de distribucin. Mdulos o sistemas donde opera el DBMS Estructuras CDD Diccionario de datos comunes, almacena informacin centralizada, ah reside la definicin de la base de datos.

Funciones de lenguaje Definicin DDL Lenguaje de definicin de datos, maneja las estructuras de la base de datos. Manipulacin DML Lenguaje de manipulacin de datos, realiza la explotacin, actualizacin, borrado e insercin de datos en la base de datos. Control DCL Maneja las transacciones, los usuarios y los privilegios. Programacin Interfaz para interactuar con lenguajes de programacin externos al DBMS. Operacin y administracin Administracin Definicin de cuestiones asociadas con las estructuras a nivel conceptual e interno de la base de datos. Operacin Mantenimiento del medio ambiente ptimo para el funcionamiento del manejador de base de datos. Archivo Log Es un archivo donde se guardan las instrucciones que conforman una transaccin lgica mientras se completa. Esto con el objetivo de preservar la integridad. Precompilador Parte integral del DBMS que se encarga de traducir los comandos del lenguaje especfico del DBMS a instrucciones del lenguaje de programacin donde se intercalan dichos comandos. Esquema general de un DBMS El usuario (final, programador u operador, recordar que el DBA es un caso particular), interacta con los mdulos DML (manipulacin de datos) y DDL (definicin de datos). Los mdulos DML y DDL interactan con el precompilador. El precompilador interacta con el CDD (diccionario de datos) y con programas externos. Los programas externos interactan con el DBMS y el sistema operativo. Por ltimo el DBMS interacta con el CDD, con el archivo log y con la base de datos. Los componentes de un DBMS pueden variar dependiendo del modelo (jerrquico, redes o relacional) y del producto. Modelos de bases de datos

Modelo jerrquico, red y relacional Caractersticas, usos y mantenimiento El modelo relacional de bases de datos Se basa en el concepto lgico que nos indica que la informacin de un manejador de base de datos debe presentarsele al usuario en forma de tablas. Cronologa 1970 Codd define el modelo R 1974 IBM inicia el system R 1974 Primer artculo de SEQUEL 1977 SEQUEL2 (SQL) 1978 Primeras pruebas de R 1979 Liberacin de Oracle 1981 Liberacin de Ingres 1981 IBM anuncia SQL/DS 1982 ANSI forma X3HZ 1983 IBM anuncia DB2 1986 Se ratifica el SQL de ANSI 1986 Sybase introduce OLTP 1987 IBM define SAA/SQL 1987 X/Open (ISO) ratifica el SQL86 1987 IBM saca SAA, DB2, SQL/400 SQL/DS y EE DBM para OS/2 1988 SQL estndar de FIPS 1988 Microsoft anuncia su SQL 1990 ANSI/SQL2 reas principales Un DBMS relacional debe dar un nivel de soporte de ciertos conceptos relacionales criticos que son: Estructura tabular, operadores tradicionales, operadores especiales, reglas de integridad y lgica de dominios. Se dividen en: Estructuras de datos Dominios relacionales: Relacin o tabla, atributo o columna, tupla o entidad o rengln, llave primaria y llave externa. Las llaves pueden ser simples (un solo atributo) o compuestas (2 o ms atributos). Existen adems las tablas bases (parte de la estructura de la base de datos) y las tablas derivadas (vistas) que se crean a partir de tablas base. Integridad De la entidad No se deben manejar valores nulos ni repetidos en la llave primaria.

Referencial No se debe referenciar algo que no existe dentro de la base de datos (llaves externas). Manipulacin de datos lgebra relacional Conjunto de operaciones para manipular informacin en un sistema relacional. Estos operadores debern ser parte del sublenguaje de datos (SQL) del producto. El lgebra relacional se aplica sobre relaciones (tablas) y da como resultado relaciones (tablas). Operadores Unin Es un operador tradicional, construye una relacin a partir de dos relaciones concatenando todas las tuplas posibles de estas (elimina duplicados), C:=A Unin B. Interseccin Es un operador tradicional, construye una relacin a partir de todas las tuplas que aparecen en las dos relaciones de entrada, C:=A Interseccin B. Diferencia Es un operador tradicional, construye una relacin a partir de las tuplas que aparecen en A y no en B, C:=A Diferencia B. Producto Es un operador tradicional, la relacin resultante se compone de todas las combinaciones posibles de las columnas de ambas relaciones de entrada, C:=AB. Select Selecciona tuplas de A de acuerdo a un criterio especfico (lgico) y forma con ellas una nueva relacin. Project Selecciona columnas (atributos) de la relacin A y forma con ellos una nueva relacin. Join La relacin resultante C contiene todas las tuplas concatenadas de las dos relaciones de entrada (A y B) que satisfacen una cierta condicin comn. a1 b1 Join a2 b2 b1 c1 = a1 b1 c1

Divide Toma dos relaciones, una binaria y otra unitaria, construye la relacin de salida a partir de: Todos los valores de un atributo de la relacin binaria cuyo otro atributo comprende todos los valores que se encuentran en la relacin unitaria. a x Divide x = a a y z b a z b x b y b z No se deben confundir el Select como concepto algebrico de la instruccin de SQL Select.

Asignacin relacional Cmo y dnde se guardan los resultados del lgebra relacional. Contexto, Reglas de Codd Sistema tabular, relacional mnimo, relacional completo o relacional total 0.- Todo sistema relacional debe manejar sus bases de datos a travs de sus capacidades relacionales exclusivamente. 1.- Toda la informacin en una base de datos relacional se debe representar explcitamente en el nivel lgico en forma de tablas relacionales. 2.- Acceso garantizado: Todos y cada uno de los datos en una base de datos relacional deben poder accesarse a travs de la combinacin: Nombre de relacin (Tabla), llave primaria (Rengln) y nombre atributo (Columna). 3.- Valores nulos: Todo manejador relacional debe poder representar y manipular valores nulos, utilizando para su representacin un cdigo especfico. V F N V F N V V F N V V V V F F F F F V F N N N F N AND N V N N OR 4.- Catlogo relacional: La informacin sobre la base de datos debe estar representada en tablas para que podamos utilizar el mismo lenguaje para su administracin. 5.- Sublenguaje de datos (SQL): Un manejador relacional debe soportar al menos un lenguaje, con una sintxis formalmente definida, a travs del cual podemos: Definir datos, definir vistas lgicas, manipular datos, controlar la integridad, controlar seguridad y realizar transacciones lgicas. 6.- Actualizacin de vistas: Un DBMS relacional debe tener un algoritmo al menos tan poderoso como el VU-1 para determinar si la vista lgica en cuestin es sujeta a inserciones o borrados de tuplas y si se pueden modificar columnas. 7.- Operaciones masivas: La capacidad del manejador de manipular una relacin a travs de un solo operando debe aplicar no solo al Select si no tambin al Insert, Delete y al Update. 8.- Independencia fsica: Los programas de aplicacin deben permanecer sin cambios cuando se modifiquen, ya sea las representaciones de almacenamiento, o los mtodos de acceso a la informacin (modelo fsico). 9.- Independencia lgica: Los programas de aplicacin deben permanecer sin cambios cuando se lleven a cabo modificaciones para preservar la informacin (modelo lgico). 10.- Independencia de integridad: Las reglas de integridad deben poder definirse en el lenguaje de datos y almacenarse en el catlogo del sistema relacional.

11.- Independencia de distribucin: Los programas de aplicacin no deben sufrir modificaciones cuando la informacin se distribuye en lugares fsicamente diferentes. Esto debe ser transparente para el usuario. 12.- No subversin: Ninguna aplicacin podr accesar directamente la informacin en la base de datos por cuestiones de integridad. Toda aplicacin deber pasar a travs de los controles de seguridad e integridad del DBMS. Lo importante de un DBMS no es que sea relacional, si no que cumpla con las caractersticas de integridad, independencia y seguridad. Hay que evaluar no solo que el producto cumpla con las reglas de Codd, si no tambin que tan eficientemente las lleva a cabo. Sublenguaje de datos (SQL, Structured Query Language) Los paquetes, herramientas o programas que accesan al DBMS lo hacen mediantes instrucciones de SQL. En el SQL el usuario no indica dnde estn los datos, ni los manipula uno por uno, el SQL es un lenguaje no-procedural. Qu es SQL? Es una herramienta para organizar y explotar informacin almacenada en una base de datos del tipo relacional. Sus funciones son: Consultas interactivas (ISQL), programacin, administracin de la base de datos, lenguaje cliente/servidor, soporte a bases de datos distribuidas y servir como gateway a otras bases de datos. Cumple el papel de sublenguaje de datos en el modelo relacional. El SQL es la forma de comunicacin con el motor de base de datos. El SQL es usado para manejar formas, generar reportes, programar aplicaciones, comunicar con otros equipos, bases de datos y otros manejadores. Valores nulos Debe existir una forma explcita de representar la ausencia de informacin en cualquier campo de la base de datos: NI (Nulo Inaplicable) y NA (Nulo Aplicable). Tipos de SQL Esttico, que va al pre-compilador del DBMS y se define al crear la aplicacin. Lo usan los paquetes de aplicacin y los programas. Dinmico, que va al optimizador del DBMS y se define al ejecutar la aplicacin. Lo usan las herramientas de usuario. El optimizador es parte integral del DBMS, su labor es analizar los comandos SQL y decide la mejor opcin para accesar la informacin en funcin del catlogo de sistema (diccionario de la base de datos), el pre-compilador tambin lo usa. Cursores Estructura a travs de la cual podemos accesar las tablas de una base de datos registro por registro, con SQL intercalado en un lenguaje de 3 generacin.

Subqueries Es la posibilidad de anidar varios queries en un mismo bloque de ejecucin, es indispensable para tener un lenguaje estructurado. Cliente/Servidor con SQL/DBMS Front End: Interfaz de usuario (PC) Front - Back : NetBios, IPX/SPX, Named Pipes Back End: SQL/DBMS en el servidor Front - MainFrame: TCP/IP, APPC, ISO/OSI MainFrame: SQL/DBMS en el MainFrama Comandos de SQL Definicin A travs de estos comandos creamos la base de datos, modificamos alguna de sus caractersticas o la borramos: Create CREATE TABLA productos pro_clave CHAR(6), pro_descri CHAR(20), pro_precio MONEY, pro_invent INTEGER Drop DROP TABLE productos Alter ALTER TABLE productos ADD pro_ventas MONEY Manipulacin A travs de estos comandos consultamos, modificamos o borramos la informacin dentro de la base de datos: Select SELECT pro_descri FROM productos WHERE pro_clave = "100345" SELECT * FROM productos Insert INSERT INTO productos (pro_clave , pro_descri, pro_precio, pro_invent) VALUES ("100345","Un producto ms",100.00,123) Update

UPDATE productos SET pro_estado = "A" WHERE pro_clave = "100345" Delete DELETE FROM productos WHERE pro_clave = "100345" Control (DCL) Manejamos la seguridad y los privilegios relacionados con la base de datos. Grant GRANT UPDATE, SELECT ON productos TO usuaio01 Revoke REVOKE ALL ON productos TO usuario02 Commit Rollback Anlisis bsico para bases de datos relacionales Entidades Personas, lugares, objetos, conceptos, actividades o eventos de inters para la empresa: EMPLOYEE, DEPARTAMENT, PROJECT. Un tipo de entidad son un conjunto de cosas escritos en maysculas (EMPLOYEE), un ejemplo de entidad es una cosa particular escrita en minscula (John Smith). Las entidades se convierten en tablas en el diseo relacional. E1 Buscar entidades en las entrevistas Las entidades son sustantivos, pero no todos los sustantivos son entidades. Se deben ignorar sustantivos que denoten datos especficos o que no sean importantes para la empresa. No se debe confundir una forma con la informacin que documenta. E2 Qu tipo de entidad? Se ver en el anlisis avanzado. E3 Determinar llave primaria La llave primaria identifica y distingue a los miembros de las entidades: EMPLOYEE_NUMBER, DEPARTAMENT_CODE. Caractersticas generales: nica, conocida todo el tiempo. Caractersticas deseables: Estable, controlada por el DBA, disponible para los usuarios, no describe informacin, corta, simple, evitar nombres.

E4 Decidir un nombre formal Usar el singular del sustantivo (EMPLOYEE, DEPARTAMENT). Listar los nombres alternativos como sinnimos en el diccionario de datos. Eliminar homnimos. E5 Escribir una descripcin Significados y usos en oraciones completas, inclur ejemplos y contra ejemplos. Relaciones Una oracin acerca de dos entidades: EMPLOYEE MANAGE DEPARTAMENT, EMPLOYEE ASSIGN_TO PROJECT. Un tipos de relacin se escribe en maysculas: EMPLOYEE MANAGE DEPARTAMENT, un ejemplo de relacin es una oracin acerca de entidades en minsculas: John Smith manage Administration. Las relaciones se transforman en llaves forneas en el diseo relacional. R1 Buscar relaciones en entrevistas Las relaciones son verbos, pero no todos los verbos son relaciones. Se deben ignorar verbos que describen procesos en lugar de verbos o que no son seguidos por la empresa. Buscar relaciones implcitamente documentadas. R2 Qu tipo de relaciones? Se ver en el anlisis avanzado. R3 Determinar la cardinalidad Mxima La cardinalidad de EMPLOYEE WORK_IN DEPARTAMENT es muchos-uno, cuntos empleados pueden trabajar en un departamento? Muchos, en cuntos departamentos puede un empleado trabajar? Al menos uno. La cardinalidad de EMPLOYEE MANAGE DEPARTAMENT es uno-uno, cuntos empleados pueden manejar un departamento? Al menos uno, cuntos departamentos puede un empleado manejar? Al menos uno. Mnima La cardinalidad mnima de EMPLOYEE MANAGE DEPARTAMENT es uno-cero, cuntos empleados deben manejar un departamento? Al menos uno, cuntos departamentos debe manejar un empleado? Cero. La cardinalidad es una regla especial de integridad y refleja la poltica de la empresa. R4 Decidir un nombre formal Usar la voz activa cuando sea posible, listar los sinnimos en el diccionario de datos y eliminar los homnimos. Los nombres de las relaciones incluyen nombres de entidades (o no cuando sean obvias).

EMPLOYEE ASSIGN_TO PROJECT, AGENT ASSIGN_TO CUSTOMER. R5 Escribir una descripcin Usar oraciones completas, ejemplos y contra ejemplos. Atributos Una propiedad descriptiva de la entidad o de la relacin. EMPLOYEE EMPLOYEE-------------->PROJECT EMPLOYEE_NUMBER ASSIGN_TO SALARY_MOUNT START_DATE EXTENSION_NUMBER ROLE_NAME Padre: Entidad o relacin que posee un atributo. Tipo de atributo: Conjunto de valores (maysculas). Ejemplo de atributo: Valor individual (minsculas). Los atributos se transforman en columnas en el diseo relacional. A1 Buscar atributos en la entrevista Los atributos son sustantivos que denotan datos especficos. NAME, DATE, QUANTITY, MONETARY VALUE. A2 Qu tipo de dato? Los tipos de datos incluyen: nombre: MONEY, LENGTH, QUANTITY tipo fsico: character, integer, float, binary nmero de caracteres o dgitos valores legales (COLOR IN [RED, GREEN, BLUE]) reglas de validacin (AGE>=21) valor por omisin (default) A3 Determinar la cardinalidad Los atributos tienen cardinalidad mnima y mxima La cardinalidad de EXTENSION_NUMBER es muchos=mximo a cero=mnimo, cuntas extensiones puede un empleado tener? Muchas, cuntas extensiones debe un empleado tener? Cero. Terminologa: Singular Mximo uno, Optional Mnimo cero, Plural Mximo muchos, Required Mnimo uno. A4 Buscar un nombre formal El nombre formal del atributo deber tener el formato: PARENTAL_QUALIFIER_DATATYPE, ejemplos: EMPLOYEE_FIRTS_NAME, ASSIGN_START_DATE o CUSTOMER_BALANCE_AMOUNT.

El nombre de padre puede evitarse para claridad en el contexto. Pueden usarse cero, uno o varios calificadores. El DATATYPE se toma de la lista estndar. Se deben eliminar homnimos y documentar en el diccionario de datos los sinnimos. A5 Escribir una descripcin Usar frases completas, dar ejemplos y contra ejemplos. Especificar unidades (monetarias, distancia, tiempo, peso). Diagrama entidad - relacin M(0) M(0) EMPLOYEE ------------------------PROJECT EMPLOYEE_NUMBER ASSIGN_TO PROJECT_NUMBER SS_NUMBER ROLE_NAME DESCRIPTION FULL_NAME BUDGET_AMOUNT SEX |1(0) EXTENSION_NUMBER | |1 |M(0) |BELONG_TO | MANAGE | WORK_IN | |1(0) |1 |M DEPARTAMENT TASK DEPT_NUMBER PROJECT_NUMBER DEPT_NAME TASK_NAME BUILDING_NUMBER START_DATE STATUS Anlisis avanzado para bases de datos relacionales Entidades Las entidades dependientes no pueden existir sin su entidad padre. Las dependencias siempre tienen una relacin BELONG_TO con su entidad padre, usualmente muchos a uno. PROJECT PROJECT_NUMBER ------------------------- TASK 1 BELONG_TO M PROJECT_NUMBER TASK_NAME La llave primaria de las dependencias incluyen la llave padre y una columna descriptiva. Subentidades La subentidad es un subconjunto de otra entidad, llamada superentidad. Crear subentidades para subconjuntos importantes de una entidad, que tienen atributos especiales. Entidad: EMPLOYEE, ejemplos AGENT, CLERK, SALARIED_EMPLOYEE, HOURLY_EMPLOYEE Subentidad: PROGRAMMER, ejemplos APPLICATION_PROGRAMMER, SYSTEMS_PROGRAMMER

Herencia La llave primaria, los atributos y las relaciones de la superentidad se aplican a todas sus subentidades y no viceversa. EMPLOYEE SALARIED_EMPLOYEE EMPLOYEE_NUMBER SS_NUMBER HOURLY_EMPLOYEE FULL_NAME OVERTIME_RATE SEX EXTENSION_NUMBER AGENT COMMISION_AMOUNT TERRITORY_NAME

CLERK TYPING_SPEED

PROGRAMMER LANGUAGE LEVEL_CODE

APPL_PROGRAM

SYS_PROGRAMM MACHINE_NAME

La relacin ISA (is a, es un) Existe siempre una relacin ISA entre una subentidad y una superentidad. La cardinalidad es siempre mximo: 1-1 y mnimo: 1-0 (super-sub). EMPLOYEE----------------PROGRAMMER 1 ISA 1(0) No se documentar la relacin ISA en el diccionario de datos o en el diagrama, siempre es asumida. E2 Qu clase de entidad? Si no puede existir sin su padre, es dependiente y se debe documentar como BELONG_TO. Los subconjuntos importantes de una entidad con atributos especiales son subentidades, documentar la superentidad pero no la relacin ISA. E3 Determinar la llave primaria La llave primaria de la dependencia incluye la llave de la entidad padre y una columna descriptiva. La llave primaria de la subentidad es heredada de la superentidad. E7 Crear superentidades alrededor de entidades similares Las entidades similares tienen muchos atributos en comn. Asigna los atributos comunes a la superentidad, y los especiales a las subentidades. Considera el uso de llaves primarias artificiales para nuevas superentidades. EMPLOYEE CUSTOMER PERSON EMPLOYEE FULL_NAME FULL_NAME PERSON_ID SALARY_AMOUNT ADDRESS ADDRESS BIRTH_DATE BIRTH_DATE ADDRESS SALARY_AMOUNT ACCOUNT_NUMBER JOBCODE --->

FULL_NAME BIRTH_DATE

JOBCOD

STOCKH

CUSTOMER STOCKHOLDER ACCOUNT_NUMBER FULL_NAME ADDRESS E8 Determina clases y clasifica atributos EMPLOYEE JOBCODE WAGE_STATUS EMPLOYEE_NUMBER SS_NUMBER AGENT SALARIED_EMPLOYEE FULL_NAME CLERK HOURLY_EMPLOYEE PROGRAMMER SKILL_TYPE APPLICATIONS_PROGRAMMER SYSTEM_PROGRAMMER Clase: Grupo de subentidades mutuamente excluyentes, alineadas verticalmente. Cada clase corresponde a la clasificacin del atributo de la superentidad. Una superentidad puede tener muchas clases sin relacionarse. Relaciones Las relaciones N-way (n caminos) inmiscuyen ms de dos entidades flunky ROLE--IN--EMPLOYEE--ASSIGN_TO--PROJECT sales

Relaciones recursivas La relacin recursiva es una frase acerca de una entidad: EMPLOYEE SUPERVISE EMPLOYEE. Documentar los roles de la primera y la segunda entidad en la descripcin, ejemplo: SUPERVISOR, SUBORDINATE. R2 Qu tipo de relacin? Las frases con una oracin proposicional conteniendo una entidad son relaciones tres-caminos. No confundir las tres-caminos con dos de dos-caminos. Se deben documentar los roles en la relacin recursiva. R7 Eliminar las relaciones indirectas Una relacin indirecta es redundante a otras dos relaciones. Usualmente se excluyen las relaciones indirectas del diccionario. EMPLOYEE---------DEPARTAMENT--------DIVISION | WORK_IN BELONG_TO | | | --------------ASSIGN_TO--------------

Relaciones o atributos? Cuando un atributo iguala la llave primaria de una entidad, es en realidad una relacin. EMPLOYEE DEPARTAMENT_CODE | EMPLOYEE----WORK_IN------DEPARTAMENT | DEPARTAMENT EMPLOYEE_NUMBER Relaciones o entidades? Los verbos pueden substituirse por sustantivos y viceversa. Si la llave primaria coincide con la llave primaria de otras entidades, es una relacin. EMPLOYEE--------PROJECT PROJECT | ASSIGN_TO |IN -----> ROLE EMPLOYEE |---ASSIGMENT---| | ROLE

R8 No confundir relaciones con entidades o atributos Los atributos que designan entidades son relaciones. Si la llave primaria de una entidad coincide con otras llaves primarias, podra ser una relacin. Atributos Usualmente la relacin padre es intuitivamente obvia, si no se est seguro se deber buscar: - Posesivo: El salario del empleaado. - Verbo poseer: Los empleados tienen< cdigos de trabajo. - Preposicin: El salario de el eempleado. A1 Buscar atributos en la entrevista Verificar la entidad padre o la relacin. Buscar una preposicin, un verbo de posesin o una voz posesiva. A7 Reasignar los atributos indirectos Un atributo indirecto no es en realidad una propiedad de su padre: EMPLOYEE ---> EMPLOYEE---------------DEPARTAMENT BUILDING_NUMBER WORK_IN BUILDING_NUMBER Un atributo indirecto es un caso especial de relacin indirecta. A8 Documentar la frmula derivada (si la hay) Un atributo derivable es calculado en base a otros atributos.

COMPENSATION_AMOUNT = HOURLY_WAGE_AMOUNT * 2000 + BONUS_AMOUNT Un atributo primitivo debe ser entrado directamente. Documentar la frmula si el atributo es importante o la derivacin es obscura. Considerar la eliminacin de atributos derivables. A9 Convertir los atributos opcionales en subentidades Los atributos opcionales tienen una cardinalidad mnima de cero. EMPLOYEE FULL_NAME ADDRESS SALARY_AMOUNT COMMISSION (o) TERRITORY (o) EMPLOYEE FULLNAME ADDRESS ----> SALARY_AMOUNT

AGENT COMMISSION TERRITORY Los atributos son opcionales cuando su valor es a veces desconocido o inaplicable. E6 R6 A6 Documentar estados pasados o futuros Muchas entidades, relaciones y atributos se refieren a la situacin actual, si estados pasados o futuros se necesitan entonces agregar: Para entidades o relaciones aadir DATE o DATETIME como atributo para estados puntuales o continuos y START_DATE y END_DATE para estados segmentados. Los atributos se deben hacer compuestos (SALARY_AMOUNT, EFFECTIVE_DATE). Se deben documentar los estados pasados y futuros en la descripcin. Diseo relacional bsico EMPLOYEE EMPLOYEE_NUMBER PROJECT_NAME SS_NUMBER FULL_NAME SEX EXTENSION_NUMBER (m) BELONG_TO M(0) M(0) JOBCODE --------- PROJECT ASSIGN_TO AGENT ROLE_NAME DESCRIPTION TERRITORY BUDGET_AMOUNT COMMISSION | 1(0) | CLERK PROGRAMMER LANGUAGE LEVEL 1(0) 1(0) | ---| | |MARRY -----| M TASK PROJECT_NAME TASK_NAME START_DATE STATUS

|1 |MANAGE |1(0) DEPARTAMENT

|M(0) |WORK_IN |1

DEPT_NUMBER DEPT_NAME BUILDING_NUMBER Diseo lgico En el diseo bsico relacional, cada entidad se transforma en una tabla. Las tablas son mezcladas o combinadas para mejorar el desempeo en el diseo relacional avanzado. T1 Las entidades independientes se transforman en tablas independientes PROJECT PROJECT_NAME DESCRIPTION BUDGET_AMOUNT P1 xyz Database 19000 P2 gizmo test 48000 P3 widget sales 4000 La llave primaria no contiene llaves forneas. T2 las entidades dependientes se transforman en tablas dependientes TASK PROJECT_NAME TASK_NAME START_DATE STATUS P1 Requirements 10/29/85 complete P1 Logical design 03/24/87 active P1 Physical design 03/29/87 proposed P3 Sales report null proposed La llave fornea hace referencia a la tabla padre, es una relacin BELONG_TO. La llave primaria contiene esta llave fornea y otras columnas adicionales. En la llave fornea no se permiten nulos ni defaults. El borrado de datos usualmente se hace en cascada, o se restringe del todo. T3 Las subentidades se transforman en subtablas PROGRAMMER EMPLOYEE_NUMBER LANGUAGE LEVEL e1 PL/1 beginner e5 Fortran intermediate e6 Cobol advanced La llave fornea hace referencia a la tabla padre, es una relacin ISA. La llave primaria es exactamente igual a la llave fornea. En la llave fornea no se permiten nulos ni defaults. El borrado de datos usualmente se hace en cascada, o se restringe del todo. La clasificacin de las columnas en la supertabla es recomendada si se desean eliminar las bsquedas en la subtabla y evitar la redundancia de los datos en la subtabla: EMPLOYEE EMPLOYEE_NUMBER ... JOBCODE LANGUAGE LEVEL TERRITORY e1 program d3 e2 agent d2 null DEPT# Pl/1 null begin null Texas

e3 Bulgaria e4 e5 e6

agent d2 clerk d1 program program

null null d2 d3

null null null Fortran interm null Cobol advanc null

Las relaciones se transforman en llaves forneas El nombre de la llave fornea ser el mismo del de la llave primaria, solo se agregar un calificador si se necesita. Se deben usar nombres con significado (MANAGER, SPOUSE): EMPLOYEE ---|MARRY EMPLOYEE_NUMBER---| | | |MANAGE |WORK_IN | | DEPARTAMENT DEPARTAMENT_NUMBER PROJECT PROJECT_NUMBER | | BELONG_TO | TASK PROJECT_NUMBER TASK_NAME

Relaciones muchos-uno EMPLOYEE-----------DEPARTAMENT M WORK_IN 1 Diseo errneo: DEPARTAMENT DEPT_NUMBER d1 d2 e3, e5 d3 d4 research legal 360 145 e6 null e1, e5 null DEPT_NAME Finance Marketing BUILDING 139 200 MANAGER e4 e3 e2, STAFF e4

R1 Muchos-uno, poner la llave fornea en la tabla "muchos" La llave primaria debe ser singular porque las tablas son normalizadas. EMPLOYEE EMPL_NUMBER e1 program e2 e3 e4 e5 program e6 program NAME SEX SPOUSE JOBCODE DEPT_NUMBER Ronald Reagan male e2 d3 Nancy Reagan female e1 agent d2 Dick Butkus male null agent d2 Humphrey Bugart male e5 clerk d1 Lauren Bacall female e4 d2 Maggie Thatcher female null d3

R2 Uno-uno, poner la llave fornea en la tabla con menos renglones Esto reduce o elimina los valores nulos. [DEPARTAMENT] pocos MANAGE [EMPLOYEE] muchos

Aqu va la llave R3 Muchos-muchos, transformarlas en tablas asociativas EMPLOYEE 1 M M 1 PROJECT EMPLOYEE_NUMBER --------- ASSIGNT_TO -----------PROJECT_NUMBER EMPLOYEE_NUMBER PROJECT_NUMBER ROLE_NAME ASSIGN_TO EMPLOYEE_NUMBER PROJECT_NUMBER ROLE_NAME e1 p1 Supervisor e1 p3 Scientist e3 p2 null e5 p3 Flunky Dos llaves forneas sobre la misma tabla se refieren a dos tablas relacionadas. La llave primaria est compuesta de las llaves forneas, podra contener columnas adicionales. No se permiten nulos ni defaults en la llave fornea, el borrado es en cascada o no se restringe del todo. R4 la relacin tres-caminos se transforma en tabla asociativa Como en la relacin muchos-muchos la llave primaria contiene tres o ms llaves forneas. [EMPLOYEE] ASSIGN_TO [PROJECT] IN [ROLE] ROLE ROLE_NUMBER r1 r2 r3 ASSIGN_TO EMPL_NUMBER e1 e1 e3 e5 ROLE_NAME supervisor scientist flunky PROJ_NUMBER p1 p3 p2 p3 RATE 60.00 25.50 9.95 ROLE_NUMBER r1 r2 r1 r3

Los atributos se transforman en columnas Los atributos singulares se transforman en una columna. Los tipos de datos compuestos se transforman en diversas columnas, esto depende del soporte del DBMS. EMPLOYEE EMPLOYEE_NUMBER SS_NUMBER NAME

SEX 1 JOBCODE EXTENSION_NUMBER (m) |M |----|WORK_IN 1 |1 DEPARTMENT

---|MARRY

Diseo simple pero imposible porque las tablas se normalizan: EMPLOYEE_NUMBER NAME e1 Ronald Reagan 1000,1111,1112 Ni siquiera se piense: EMPLOYEE_NUMBER e1 e1 e1 NAME Ronald Reagan Ronald Reagan Ronald Reagan DEPT_# d3 d3 d3 EXTENSION 1000 1111 1112 DEPT_# EXTENSION d3

Esto es lo que usualmente se hace, error comn: EMPLOYEE_NUMBER e1 NAME Ronald Reagan DEPT_# d3 EXT_1 1000 EXT_2 EXT_3 1111 1112

C1 los atributos plurales se transforman en tablas dependientes La llave fornea se refiere a la tabla padre. La llave primaria contiene la llave fornea y el atributo plural. La llave fornea no debe contener nulos ni defaults, el borrado se hace en cascada o se restringe. EMPLOYEE ------- TELEPHONE EMPLOYEE_NUMBER EMPLOYEE_NUMBER SS_NUMBER EXTENSION_NUMBER NAME SEX JOBCODE TELEPHONE EMPLOYE_NUMBER e1 1000 e1 1111 e1 1112 EXTENSION_NUMBER

C2 Especificar no-nulo para los atributos y las relaciones requeridas Un atributo es requerido si en el anlisis se encuentra con una cardinalidad mnima de 1, en el diseo esto se especifica como un atributo no-nulo. Se debe especificar no-nulo cuando sea un atributo requerido, cuando se trate de la llave fornea que representa una relacin requerida y en todos los atributos de la llave primaria.

No se deben permitir defaults con significado desconocido o inaplicable. C3 forzar los atributos nicos con ndices Los ndices podran hacer ms lentas las inserciones, se debe evaluar si el beneficio justifica el costo. Siempre se deben crear indices nicos en las columnas de la llave primaria. CREATE UNIQUE INDEX SS# ON EMPLOYEE (SS#) C4 los atributos de las relaciones van con la llave fornea Para las relaciones uno-uno y muchos-uno se debe poner el atributo en la tabla que contiene la llave fornea. En las relaciones muchos-muchos y tres-caminos los atributos van en su propia tabla asociativa. [EMPLOYEE]-------------[DEPARTAMENT] M MANAGE 1(0) START_DATE DEPARTAMENT DEPT_# DEPT_NAME START_DATE d1 Finance 10/29/89 Normalizacin Redundancia La redundancia de un valor es la repeticin de un hecho dentro de la base de datos relacional. La redundancia es de hechos o de valores. Trae como consecuencias: Inconsistencia de datos, anomalas en la actualizacin e incertidumbre en el procedimiento de mantenimiento de la base de datos. Forma normal La forma normal (FN) es una estructura de tablas que reduce la redundancia. La forma normal logra, por descomposicin y sin prdidas, dividir una tabla en tablas ms pequeas. Primera forma normal Cada celda de una tabla contiene solamente un valor. Segunda forma normal Se debe eliminar la dependencia parcial descomponiendo sin prdida la tabla. Cada columna no-llave (todo el rengln) debe depender enteramente de la llave primaria. Tercera forma normal Se debe eliminar la dependencia indirecta por descomposicin sin prdida. Cada columna no-llave (solo la columna) depende directamente de la llave primaria. Diseo relacional avanzado BUILDING_# 139 MANAGER e4

Llaves artificiales Llaves primarias no significativas introducidas por el administrador de la base de datos. Algunas veces son nulos las llaves naturales, por eso se crean las artificiales. Las llaves naturales son fcilmente accesadas por el usuario final. Las artificiales solo tienen propsitos administrativos. Se debe considerar hacer una llave artificial cuando existen muchas llaves forneas, cuando la llave natural pueda ser nula o no nica o inestable o compleja. Problema de la forma L (L-shaped data) Ventajas de tener una supertabla: Se tienen pocos Joins (uniones) entre tablas Se tienen pocas llaves forneas Se tienen pocas tablas Ventajas de tener subtablas: Se tienen pocos nulos aplicables Se ocupa menor espacio fsico Se tiene mayor estabilidad y flexibilidad Lo mejor es hacer lo posible por tener subtablas simpre y cuando el costo de los joins sea aceptable, o para evitar tener nulos inaplicables, se deberan unir las tablas con cardinalidad uno-uno. Vectores Un vector es un atributo plural donde el nmero de valores es "siempre" el mismo. Rengln ao 1981 fresh soph 143 102 junior senior grad 205 257 50

Columna ao class num_alumnos 1981 fresh 143 1981 soph 102 El diseo en rengln tiene como ventajas la menor cantidad de datos almacenados y el hecho de tener pocas tablas. El diseo en columnas es fcil de mantener y es mas flexible. Columna: Select AVG(num_alumnos) ...)/5 From Tabla_columna Where ao=1981 Rengln: Select (fresh + soph + From Tabla_renglon Where ao=1981

Debemos implantar vectores de columna a menos que el tamao fsico, el acceso a los usuarios, o el nmero de tablas nos oblige a usar el diseo de rengln. Atributos codificados Son "cdigos" obscuros que deben ser bien documentados y conocidos por los usuarios y los programadores: Nmero de empleado non = Empleado asalariado Nmero de empleado par = Empleado por honorarios No se deben usar demasiado. Valores sobrepuestos Son columnas en las cuales los atributos plurales fueron implementados como singulares. Resumen Se deben implementar los atributos plurales en tablas dependientes y considerar el uso del diseo de rengln.
Se deben evitar el uso de columnas sobrepuestas y los atributos codificados. Sobrenormalizacin Razones para la sobrenormalizacin: 1.- Remover datos sin importancia de tablas crticas 2.- Remover grandes columnas descriptivas 3.- Cuando un solo rengln excede el tamao de una pgina En el tercer punto, en Sybase 1 pgina equivale a 2 kb. Esto es, solo se protegen 2 kb de tabla cuando alguien modifique un rengln. La sobrenormalizacin mejora el desempeo, pero primero se deben agotar las soluciones fsicas. Estructuras de datos Pilas (stacks) Colas Listas rboles (Trees) Grafos (Graphs)

EDITORES DE TEXTOS

Un editor de texto es un programa que permite crear y modificar archivos digitales compuestos nicamente por un 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- u 8-bits en ASCII o UTF-8, rara vez EBCDIC. Por ejemplo, un editor ASCII de 8 bits que lee el nmero binario 0110 0001 (decimal 97 o 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 comoLinux 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 sloretorno de carro en cambio Microsoftde carro y salto de lnea TIPOS DE EDITORES DE TEXTO 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. El editor de texto debe ser considerado como una herramienta de trabajo del programador o administrador de la mquina. Como herramienta permite realizar ciertos trabajos, pero tambin requiere de aprendizaje para que el usuario conozca y obtenga destreza en su uso. La llamada curva de aprendizaje es una representacin de la destreza adquirida a lo largo del tiempo de aprendizaje. Un editor puede ofrecer muchas funciones, pero si su curva de aprendizaje es muy larga, puede desanimar el aprendizaje y terminar siendo dejado de lado. Puede que un editor tenga una curva de aprendizaje muy empinada y corta, pero si no ofrece muchas funciones el usuario le reemplazar por otro ms productivo. Es decir la eleccin del editor ms apropiado depende de varios factores, alguno de ellos muy subjetivos. Esta coyuntura de intereses ha dado lugar a largas discusiones sobre la respuesta a la pregunta "cual es el mejor editor de texto?". Hoy en da muchos editores originalmente salidos de Unix o Linux han sido portados a otros sistemas operativos, lo que permite trabajar en otro 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 e 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, completacin 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.

Ejemplos

Bloc de notas, editor integrado en Windows, tambin conocido como Notepad (en ingls). Emacs, otro editor muy comn en Unix. Gedit, editor libre que se distribuye junto con GNOME para sistemas tipo Unix. Tambin disponible para Windows. jEdit, editor popular multiplataforma. Kate, editor para Unix. Notepad++, editor de cdigo fuente para Windows. Vi, editor muy comn en Unix. LopeEdit, producto de LopeSoft.

ARCHIVOS ESCRIPTS
Con script (escrito) se denomina programas que se escriben en texto claro y que son interpretados directamente, o sea, que no tienen que pasar por un proceso de traduccin. En otros ambientes se llaman tambin archivos batch. Los lenguajes script se distinguen en el sentido, que ellos mismos solo tienen la funcionalidad de aglutinar comandos ``externos'', los cuales pueden ser entonces de una complejidad arbitraria, sin que el lenguaje script mismo tenga muchos comandos. Existe un sinnmero de lenguajes script, algunos ejemplos son Tcl, perl y la gran variedad de shell's (interpretadores de comandos) como son zsh, csh, ksh, sh. El shell estndard del proyecto GNU y de Linux es bash e incorpora un lenguaje script muy poderoso. Podemos ver un script como una listas de comandos que el sistema linux permite ejecutar automticamente, en vez de tener que introducirlos manualmente. Hay tres conceptos que se asocian con los lenguajes script, o la programacin shell: la creacin de ``macros'', o sea subsumir bajo un solo nuevo nombre de comando una sere de commandos indivduales, la realizacin de tareas complejas a travs de la combinacin de varias tareas sencillas - divide and conquer, y la realizacin de tareas diferentes pero parecidas con un solo comando - parmetros.
Para crear un script se anotan los comandos individuales en secuencia en un archivo ascii, el cual se puede interpretar a continuacin, utilizando el nombre del archivo como comando shell. Para esto se le necesita dar permiso de ejecucin al archivo, ej. (``macro''): Escriba en un archivo de nombre 'archivos' la lnea: ``ls'', ejecute el commando: ``chmod +x archivos'', y a continuacin ``./archivos''

El comando 'ls' se ejecutara. Vamos a ver este proceso ms detallado:

1. Bash reconoce, que ``./archivos'' no es un comando interno. 2. Normalmente busca en la via de acceso (Variable PATH) si encuentra el archivo. En este caso, el nombre del archivo est especificado absolutamente ('./' es el directorio actual, y 'archivos' existe) entonces lo trata de ejecutar. 3. El atributo de ejecucin est activado entonces se determina si el archivo es en uno de los formatos binarios que se pueden ejecutar directamente. En este caso es un archivo de texto, no 'binario' 4. Si la primera lnea tiene la secuencia ``#!'' seguido por el nombre de un comando (filtro), este comando se ejecuta, usando el archivo script como entrada en stdin. 5. En nuestro caso no existe esta lnea, por lo que se ejecuta el shell por omisin (default shell) como filtro. 6. Este nuevo bash (sub-shell) lee la lnea 'ls', y lo interpreta como si hubieramos typeado el comando a mano: Se ejecuta 'ls' y los archivos del directorio actual se alistan en la pantalla. 7. El nuevo bash termina y regresamos al prompt del bash originador. Como crear los scripts y archivos batch con los cdigos en esta pgina

Para crear un script (estn en los cuadros de borde de color azul), da un clic para seleccionar, copia el cdigo al Bloc de notas y en el men Archivo escoge: "Guardar como", escribe cualquier nombre pero terminado en .VBS. Para crear un archivo batch (estn en los cuadros de borde de color amarillo), da un clic para seleccionar, copia el cdigo al Bloc de notas y en el men Archivo escoge: "Guardar como", escribe cualquier nombre pero terminado en .CMD o en .BAT

1.

Comunicacin de datos a travs de redes Redes de rea amplia ( Wan ) : Son todas aquellas que cubren una extensa rea geogrfica .Son generalmente una serie de dispositivos de conmutacin interconectados . Se desarrollan o bien utilizando tecnologa de conmutacin de circuitos o conmutacin de paquetes. Conmutacin de circuitos: en estas redes se establece un camino a travs de los nodos de la red dedicado a la interconexin de dos estaciones. En cada enlace, se dedica un canal lgico a cada conexin. Los datos se transmiten tan rpido como se pueda . En cada nodo , los datos de entrada se encaminan por el canal dedicado sin sufrir retardos . Conmutacin de paquetes: no es necesario reservar canal lgico. En cada nodo, el paquete se recibe totalmente, se almacena y seguidamente se transmite al siguiente nodo.

2.

3.

4.

5.

6.

7.

Retransmisin de tramas: al conseguir con la nueva tecnologa una tasa de errores muy pequea y una velocidad de transmisin elevada, no es necesario adjuntar mucha informacin de cabecera a cada paquete y por tanto las velocidades de transmisin son elevadsimas comparadas con el sistema de conmutacin de paquetes . ATM : en retransmisin de tramas se usan paquetes de tamao variable y en ATM se usan paquetes de tamao fijo , con lo que se ahorra informacin de control de cada trama y por tanto se aumenta la velocidad de transmisin ( cada paquete se llama aqu "celda" ) . En este sistema , se dedican canales virtuales de velocidades de transmisin adaptables a las caractersticas de la transmisin ( es parecido a la conmutacin de circuitos ) . RDSI y RDSI de banda ancha : es un sistema de transmisin de enfoque universal y de velocidad de transmisin muy rpida . Est basado en conmutacin de circuitos ( banda estrecha ) y en conmutacin de paquetes ( banda ancha ) . Redes de rea local ( LAN ) : son de cobertura pequea, velocidades de transmisin muy elevadas, utilizan redes de difusin en vez de conmutacin, no hay nodos intermedios . 1 . 4 . Protocolos y arquitectura de protocolos Al intercambio de informacin entre computadores se le llama comunicacin entre computadores. Al conjunto de computadores que se interconectan se le llama red de computadores . Para la comunicacin entre dos entidades situadas en sistemas diferentes , se necesita definir y utilizar un protocolo . Los puntos que definen un protocolo son :

La sintaxis : formato de los datos y niveles de seal . La semntica : incluye informacin de control para la coordinacin y manejo de errores . La temporizacin : incluye la sincronizacin de velocidades y secuenciacin . Todas estas tareas se subdividen en subtareas y a todo se le llama arquitectura del protocolo . Un modelo de tres capas En la comunicacin intervienen tres agentes : aplicaciones , computadores y redes . Por lo tanto , es lgico organizar la tarea en tres capas . 1. Capa de acceso a la red : Trata del intercambio de datos entre el computador y la red a que est conectado . 2. Capa de transporte : consiste en una serie de procedimientos comunes a todas las aplicaciones que controlen y sincronicen el acceso a la capa de acceso a la red. 3. Capa de aplicacin : permite la utilizacin a la vez de varias aplicaciones de usuario . El protocolo debe definir las reglas , convenios , funciones utilizadas , etc...para la comunicacin por medio de red .

Cada capa del protocolo le pasa datos a la siguiente capa y sta le aade datos propios de control y luego pasa el conjunto a la siguiente capa . Por tanto , cada capa forma unidades de datos que contienen los datos tomados de la capa anterior junto a datos propios de esta capa , y al conjunto obtenido se le llama PDU ( unidad de datos del protocolo ) . 1.4.2. Arquitectura de protocolos TCP/IP
No hay un estndar para este modelo ( al contrario del OSI ) , pero generalmente hay estas cinco capas : Capa fsica : es la encargada de utilizar el medio de transmisin de datos . Se encarga tambin de la naturaleza de las seales , velocidad de datos , etc.. Capa de acceso a la red : es responsable del intercambio de datos entre el sistema final y la red a la cual se est conectado . Capa internet ( IP ) : se encarga del encaminamiento a travs de varias redes . Capa de transporte o capa origen-destino ( TCP ) : se encarga de controlar que los datos emanados de las aplicaciones lleguen correctamente y en orden a su destino . Capa de aplicacin : contiene la lgica necesaria para llevar a cabo las aplicaciones de usuario .

El modelo OSI
Este modelo considera 7 capas : Aplicacin Presentacin Sesin Transporte Red Enlace de datos Fsica 1 . 5 . Normalizaciones 2 . TRANSMISION DE DATOS 2 .1 . Conceptos y terminologa 2.1.1. Terminologa utilizada en transmisin de datos Los medios de transmisin pueden ser :

Guiados si las ondas electromagnticas van encaminadas a lo largo de un camino fsico ; no guiados si el medio es sin encauzar ( aire , agua , etc..) . Frecuencia , espectro y ancho de banda S(t) = A x Sen ( 2 x pi x f x t + fase ) La longitud de onda se define como el producto de la velocidad de propagacin de la onda por su fase. Conceptos en el dominio temporal . Una seal , en el mbito temporal , puede ser continua o discreta . Puede ser peridica o no peridica . Una seal es peridica si se repite en intervalos de tiempo fijos llamados periodo . La onda seno es la ms conocida y utilizada de las seales peridicas . En el mbito del tiempo , la onda seno se caracteriza por la amplitud , la frecuencia y la fase . El espectro de una seal es el conjunto de frecuencias que constituyen la seal . El ancho de banda es la anchura del espectro . Muchas seales tienen un ancho de banda infinito , pero la mayora de la energa est concentrada en un ancho de banda pequeo .

Si una seal tiene una componente de frecuencia 0 , es una componente continua . Conceptos del dominio de la frecuencia . En la prctica , una seal electromagntica est compuesta por muchas frecuencias . Si todas las frecuencias son mltiplos de una dada , esa frecuencia se llama frecuencia fundamental . El periodo ( o inversa de la frecuencia ) de la seal suma de componentes es el periodo de la frecuencia fundamental . Se puede demostrar que cualquier seal est constituida por diversas frecuencias de una seal seno . Relacin entre la velocidad de transmisin y el ancho de banda . El medio de transmisin de las seales limita mucho las componentes de frecuencia a las que puede ir la seal , por lo que el medio slo permite la transmisin de cierto ancho de banda . En el caso de ondas cuadradas ( binarias ) , estas se pueden simular con ondas senoidales en las que la seal slo contenga mltiplos impares de la frecuencia fundamental . Cuanto ms ancho de banda , ms se asemeja la funcin seno ( multifrecuencia ) a la onda cuadrada . Pero generalmente es suficiente con las tres primeras componentes . Se puede demostrar que al duplicar el ancho de banda , se duplica la velocidad de transmisin a la que puede ir la seal . Al considerar que el ancho de banda de una seal est concentrado sobre una frecuencia central , al aumentar esta , aumenta la velocidad potencial de transmitir la seal . Pero al aumentar el ancho de banda , aumenta el coste de transmisin de la seal aunque disminuye la distorsin y la posibilidad de ocurrencia de errores . Transmisin de datos analgicos y digitales Los datos analgicos toman valores continuos y los digitales , valores discretos . Una seal analgica es una seal continua que se propaga por ciertos medios . Una seal digital es una serie de pulsos que se transmiten a travs de un cable ya que son pulsos elctricos . Los datos analgicos se pueden representar por una seal electromagntica con el mismo espectro que los datos . Los datos digitales se suelen representar por una serie de pulsos de tensin que representan los valores binarios de la seal . La transmisin analgica es una forma de transmitir seales analgicas ( que pueden contener datos analgicos o datos digitales ). El problema de la transmisin analgica es que la seal se debilita con la distancia , por lo que hay que utilizar amplificadores de seal cada cierta distancia . La transmisin digital tiene el problema de que la seal se atena y distorsiona con la distancia , por lo que cada cierta distancia hay que introducir repetidores de seal. Ultimamente se utiliza mucho la transmisin digital debido a que : La tecnologa digital se ha abaratado mucho .

Al usar repetidores en vez de amplificadores , el ruido y otras distorsiones no es acumulativo . La utilizacin de banda ancha es ms aprovechada por la tecnologa digital . Los datos transportados se pueden encriptar y por tanto hay ms seguridad en la informacin . Al tratar digitalmente todas las seales , se pueden integrar servicios de datos analgicos ( voz , vdeo, etc..) con digitales como texto y otros . Perturbaciones en la transmisin Atenuacin La energa de una seal decae con la distancia , por lo que hay que asegurarse que llegue con la suficiente energa como para ser captada por la circuitera del receptor y adems , el ruido debe ser sensiblemente menor que la seal original ( para mantener la energa de la seal se utilizan amplificadores o repetidores ) . Debido a que la atenuacin vara en funcin de la frecuencia , las seales analgicas llegan distorsionadas , por lo que hay que utilizar sistemas que le devuelvan a la seal sus caractersticas iniciales ( usando bobinas que cambian las caractersticas elctricas o amplificando ms las frecuencias ms altas ) . Distorsin de retardo Debido a que en medios guiados , la velocidad de propagacin de una seal vara con la frecuencia , hay frecuencias que llegan antes que otras dentro de la misma seal y por tanto las diferentes componentes en frecuencia de la seal llegan en instantes diferentes al receptor . Para atenuar este problema se usan tcnicas de ecualizacin . Ruido El ruido es toda aquella seal que se inserta entre el emisor y el receptor de una seal dada . Hay diferentes tipos de ruido : ruido trmico debido a la agitacin trmica de electrones dentro del conductor , ruido de intermodulacin cuando distintas frecuencias comparten el mismo medio de transmisin , diafona se produce cuando hay un acoplamiento entre las lneas que transportan las seales y el ruido impulsivo se trata de pulsos discontinuos de poca duracin y de gran amplitud que afectan a la seal . Capacidad del canal Se llama capacidad del canal a la velocidad a la que se pueden transmitir los datos en un canal de comunicacin de datos. La velocidad de los datos es la velocidad expresada en bits por segundo a la que se pueden transmitir los datos. El ancho de banda es aquel ancho de banda de la seal transmitida y que est limitado por el transmisor y por la naturaleza del medio de transmisin ( en hertzios). La tasa de errores es la razn a la que ocurren errores .

Para un ancho de banda determinado es aconsejable la mayor velocidad de transmisin posible pero de forma que no se supere la tasa de errores aconsejable . Para conseguir esto , el mayor inconveniente es el ruido . Para un ancho de banda dado W , la mayor velocidad de transmisin posible es 2W , pero si se permite ( con seales digitales ) codificar ms de un bit en cada ciclo , es posible transmitir ms cantidad de informacin . La formulacin de Nyquist nos dice que aumentado los niveles de tensin diferenciables en la seal , es posible incrementar la cantidad de informacin transmitida . C= 2W log2 M El problema de esta tcnica es que el receptor debe de ser capaz de diferenciar ms niveles de tensin en la seal recibida , cosa que es dificultada por el ruido . Cuanto mayor es la velocidad de transmisin , mayor es el dao que puede ocasionar el ruido . Shannon propuso la frmula que relaciona la potencia de la seal ( S ) , la potencia del ruido ( N ) , la capacidad del canal ( C ) y el ancho de banda ( W ) . C = W log2 ( 1+S/N ) Esta capacidad es la capacidad mxima terica de cantidad de transmisin , pero en la realidad , es menor debido a que no se ha tenido en cuenta nada ms que el ruido trmico . MEDIOS DE TRANSMISION Medios de transmisin guiados En medios guiados , el ancho de banda o velocidad de transmisin dependen de la distancia y de si el enlace es punto a punto o multipunto . Par trenzado Es el medio guiado ms barato y ms usado . Consiste en un par de cables , embutidos para su aislamiento , para cada enlace de comunicacin . Debido a que puede haber acoples entre pares , estos se trenza con pasos diferentes . La utilizacin del trenzado tiende a disminuir la interferencia electromagntica . Este tipo de medio es el ms utilizado debido a su bajo coste ( se utiliza mucho en telefona ) pero su inconveniente principal es su poca velocidad de transmisin y su corta distancia de alcance . Con estos cables , se pueden transmitir seales analgicas o digitales . Es un medio muy susceptible a ruido y a interferencias . Para evitar estos problemas se suele trenzar el cable con distintos pasos de torsin y se suele recubrir con una malla externa para evitar las interferencias externas . Pares trenzados apantallados y sin apantallar Los pares sin apantallar son los ms baratos aunque los menos resistentes a interferencias ( aunque se usan con xito en telefona y en redes de rea local ) . A

velocidades de transmisin bajas , los pares apantallados son menos susceptibles a interferencias , aunque son ms caros y ms difciles de instalar . Cable coaxial Consiste en un cable conductor interno ( cilndrico ) separado de otro cable conductor externo por anillos aislantes o por un aislante macizo . Todo esto se recubre por otra capa aislante que es la funda del cable . Este cable , aunque es ms caro que el par trenzado , se puede utilizar a ms larga distancia , con velocidades de transmisin superiores , menos interferencias y permite conectar ms estaciones . Se suele utilizar para televisin , telefona a larga distancia , redes de rea local , conexin de perifricos a corta distancia , etc... Se utiliza para transmitir seales analgicas o digitales . Sus inconvenientes principales son : atenuacin , ruido trmico , ruido de intermodulacin . Para seales analgicas , se necesita un amplificador cada pocos kilmetros y para seales digitales un repetidor cada kilmetro . Fibra ptica Se trata de un medio muy flexible y muy fino que conduce energa de naturaleza ptica . Su forma es cilndrica con tres secciones radiales : ncleo , revestimiento y cubierta. El ncleo est formado por una o varias fibras muy finas de cristal o plstico . Cada fibra est rodeada por su propio revestimiento que es un cristal o plstico con diferentes propiedades pticas distintas a las del ncleo . Alrededor de este conglomerado est la cubierta ( constituida de material plstico o similar ) que se encarga de aislar el contenido de aplastamientos , abrasiones , humedad , etc... Es un medio muy apropiado para largas distancias e incluso ltimamente para LAN's. Sus beneficios frente a cables coaxiales y pares trenzados son :
Permite mayor ancho de banda. Menor tamao y peso . Menor atenuacin . Aislamiento electromagntico . Mayor separacin entre repetidores .

Su rango de frecuencias es todo el espectro visible y parte del infrarrojo . El mtodo de transmisin es : los rayos de luz inciden con una gama de ngulos diferentes posibles en el ncleo del cable , entonces slo una gama de ngulos conseguirn reflejarse en la capa que recubre el ncleo . Son precisamente esos rayos que inciden en un cierto rango de ngulos los que irn rebotando a lo largo del cable hasta llegar a su destino . A este tipo de propagacin se le llama multimodal . Si se reduce el radio del ncleo , el rango de ngulos disminuye hasta que slo sea posible la transmisin de un rayo , el rayo axial , y a este mtodo de transmisin se le llama monomodal .

Los inconvenientes del modo multimodal es que debido a que dependiendo al ngulo de incidencia de los rayos , estos tomarn caminos diferentes y tardarn ms o menos tiempo en llegar al destino , con lo que se puede producir una distorsin ( rayos que salen antes pueden llegar despus ) , con lo que se limita la velocidad de transmisin posible . Hay un tercer modo de transmisin que es un paso intermedio entre los anteriormente comentados y que consiste en cambiar el ndice de refraccin del ncleo . A este modo se le llama multimodo de ndice gradual . Los emisores de luz utilizados son : LED ( de bajo coste , con utilizacin en un amplio rango de temperaturas y con larga vida media ) y ILD ( ms caro , pero ms eficaz y permite una mayor velocidad de transmisin ) . Transmisin inalmbrica SE utilizan medios no guiados , principalmente el aire . Se radia energa electromagntica por medio de una antena y luego se recibe esta energa con otra antena . Hay dos configuraciones para la emisin y recepcin de esta energa : direccional y omnidireccional . En la direccional , toda la energa se concentra en un haz que es emitido en una cierta direccin , por lo que tanto el emisor como el receptor deben estar alineados . En el mtodo omnidireccional , la energa es dispersada en mltiples direcciones , por lo que varias antenas pueden captarla . Cuanto mayor es la frecuencia de la seal a transmitir , ms factible es la transmisin unidireccional . Por tanto , para enlaces punto a punto se suelen utilizar microondas ( altas frecuencias ) . Para enlaces con varios receptores posibles se utilizan las ondas de radio ( bajas frecuencias ) . Los infrarrojos se utilizan para transmisiones a muy corta distancia ( en una misma habitacin ) . Microondas terrestres Suelen utilizarse antenas parablicas . Para conexionas a larga distancia , se utilizan conexiones intermedias punto a punto entre antenas parablicas . Se suelen utilizar en sustitucin del cable coaxial o las fibras pticas ya que se necesitan menos repetidores y amplificadores , aunque se necesitan antenas alineadas . Se usan para transmisin de televisin y voz . La principal causa de prdidas es la atenuacin debido a que las prdidas aumentan con el cuadrado de la distancia ( con cable coaxial y par trenzado son logartmicas ) . La atenuacin aumenta con las lluvias . Las interferencias es otro inconveniente de las microondas ya que al proliferar estos sistemas , pude haber ms solapamientos de seales . Microondas por satlite
El satlite recibe las seales y las amplifica o retransmite en la direccin adecuada . Para mantener la alineacin del satlite con los receptores y emisores de la tierra , el satlite debe ser geoestacionario . Se suele utilizar este sistema para : Difusin de televisin . Transmisin telefnica a larga distancia . Redes privadas .

El rango de frecuencias para la recepcin del satlite debe ser diferente del rango al que este emite , para que no haya interferencias entre las seales que ascienden y las que descienden . Debido a que la seal tarda un pequeo intervalo de tiempo desde que sale del emisor en la Tierra hasta que es devuelta al receptor o receptores , ha de tenerse cuidado con el control de errores y de flujo de la seal . Las diferencias entre las ondas de radio y las microondas son : Las microondas son unidireccionales y las ondas de radio omnidireccionales . Las microondas son ms sensibles a la atenuacin producida por la lluvia . En las ondas de radio , al poder reflejarse estas ondas en el mar u otros objetos , pueden aparecer mltiples seales "hermanas" .

Infrarrojos Los emisores y receptores de infrarrojos deben estar alineados o bien estar en lnea tras la posible reflexin de rayo en superficies como las paredes. En infrarrojos no existen problemas de seguridad ni de interferencias ya que estos rayos no pueden atravesar los objetos (paredes por ejemplo). Tampoco es necesario permiso para su utilizacin (en microondas y ondas de radio si es necesario un permiso para asignar una frecuencia de uso).

BIBLIOTECAS
cuenta con funciones para grficos, manipulacin de imgenes, texto, sonidos, dispositivos de entrada (teclado, ratn y mandos de juego) y temporizadores, as como rutinas para aritmtica de punto fijo y acceso al sistema de archivos. Hasta agosto de 2011, hay 2 versiones de Allegro que cuentan con soporte oficial por parte de los desarrolladores, la versin clsica (Allegro 4) y la nueva versin (Allegro 5). La versin ms reciente de Allegro 4 incluye soporte para el manejo de archivos de datos y una implementacin por software de funciones para grficos en 3D. La versin 5 de Allegro cuenta con una nueva API y cambia la implementacin por software de las rutinas grficas por una implementacin basada en OpenGL o Direct3D.Aunque Allegro ofrece una API en lenguaje C, actualmente existen envolventes y bibliotecas adicionales que permiten utilizarlo en otros lenguajes como Python, D, Lua y Pascal.

APIS GRFICAS
Una API (Application Programming Interface) o Interfaz de Programacin de Aplicaciones, es un conjunto de funciones que realizan tareas especficas facilitando la vida al programador. Al hablar de API grafica nos referimos a un set de funciones para inicializar por ejemplo modos grficos, realizar copiado de datos de la memoria del computador a la tarjeta de video (blitting), etc. Existen APIs especificas para cada tipo de tarea que queramos realizar. Actualmente las APIs Grficas ms usadas son OpenGL y DirectX. OpenGL (Open Graphics Library) es una API multiplataforma creada por Silicon Graphics en 1992, que maneja solo el aspecto grfico de un sistema, dejando afuera el sonido, msica, control de teclado, mouse, joysticks, gamepads, etc., los que deben ser controlados con otras APIs especializadas. Existe una biblioteca multiplataforma para el manejo de audio tridimensional llamada OpenAL (Open Audio Library).

DirectX es una API multimedia creada por Microsoft en 1995, que consta bsicamente de Direct3D para la parte grfica, DirectSound y DirectMusic para la parte de audio, y DirecInput para el control de teclados, joysticks, etc. Tambin incluye DirectPlay para comunicacin de datos en redes. El uso de estas dos APIs en un comienzo puede ser un poco complicado y engorroso, especialmente DirectX. Existen algunas alternativas como Allegro o SDL, las que son multiplataforma. SDL (Simple DirectMedia Layer) es una API grfica para realizar operaciones de dibujado en 2D, gestionar efectos de sonido y msica, y cargar imgenes. SDL permite bsicamente crear aplicaciones en 2D, pero si queremos extender estas capacidades podemos usarla en conjunto con OpenGL, ya sea para crear nuevamente aplicaciones 2D que aprovechen las caractersticas de aceleracin por hardware, que todas las tarjetas de video poseen hoy en da, como para crear aplicaciones completamente en 3D. Ya vimos las herramientas y conocimientos necesarios para comenzar en el desarrollo de videojuegos, pero no podemos dejar de mencionar que tambin existen los Engines o Motores de juego, que estn basados en algunas de las APIs ya vistas, OpenGL o DirectX principalmente, que proveen al programador todas las funcionalidades necesarias para el desarrollo de un juego. Bsicamente un Engine esta formado por varios sistemas y subsistemas, por ejemplo un sistema grfico para manejar objetos 2D o 3D, un sistema de control de entrada (teclado, mouse, etc.), sistema de texto, sistema de red, sistema de scripts, sistema de audio, etc. Todos los conocimientos necesarios que vimos antes ahora estn aplicados en un Engine.

Ventajas y desventajas de los lenguajes de desarrollo.

Lenguaje C

El lenguaje C es creado entre los aos 1972-1973 por un equipo de programadores de los antiguos Laboratorios Bell de AT&T. Dennis Ritchie dise e implement el primer compilador de lenguaje C en un (prehistrico?) computador PDP-11. El lenguaje C se bas en dos lenguajes (prcticamente desaparecidos): "BCPL", escrito por Martin Richards, y "B", escrito por Ken Thompson en 1970 para el primer sistema UNIX en un PDP-7. Un recuento bastante detallado de estos aos se puede encontrar en [CHIST], en el que se puede apreciar el caracter experimental de su desarrollo, as como las diversas influencias de otros lenguajes de programacin y los diversos compromisos de eficiencia que tuvieron que afrontar. El lenguaje C originalmente "oficial" fue el "K&R C"[KRTUT]. Ese nombre proviene de los nombres de los autores del libro "The C Programming Language" (primera edicin), a saber, Brian Kernigham y Dennis Ritchie, el cual fue durante muchos aos la "referencia oficial" del lenguaje. Hacia 1988-1989 (luego de varios aos de propuestas y acuerdos preliminares), el American National Standards Institute" (ANSI) adopt una versin mejorada de C, conocida hasta hoy como "ANSI C" o C89. Esta es la versin descrita en la segunda edicin de "The C Programming LanguageANSI C". La versin ANSI C contiene una importante revisin a la sintaxis, especialmente para el uso de funciones (que fue tomada del lenguaje C++), as como la estandarizacin (parcial) de las libreras del sistema. La ltima revisin del lenguaje C es conocida como "C99"[C99K] y no est (en este momento) soportada en forma completa por la mayora de compiladores, por lo cual gran parte de programadores siguen empleando (muchas veces por desconocimiento) slo lo que proporciona la versin "C89". Adems de libros como [ANSIC], existe mucha informacin online para aprender este lenguaje, por ejemplo [CTUT1],[CTUT2],[CTUT3]. Lenguaje C++ Bjarne Stroustrup crea una versin experimental denominada "C with Classes" hacia 1979, con la intencin de proporcionar una herramienta de desarrollo para el kernel Unix en ambientes distribuidos. En particular, l considera que ciertas caracteristicas del lenguaje "Simula" (notablemente su orientacin a objetos) son tiles en desearrollos de software complejos, pero a la vez que

dicho lenguaje no proporciona la performance necesaria para el contexto de sistemas operativos. Es as como decide extender el lenguaje C. En 1983 el lenguaje se rebautiza como C++ y en 1985 Stroustrup publica la primera edicin del libro "The C++ Programming Language" que sirvi de estndar informal y texto de referencia. Posteriormente el lenguaje fue estandarizado (ISO C++) y paralelamente son publicadas la segunda y tercera ediciones de "The C++ Programming Language"[CPPSTR] de modo tal que reflejan estos cambios. Ms detalles se pueden e interesantes opiniones se pueden leer en [CPPFAQ]. Desde sus inicios, C++ intent ser un lenguaje que incluye completamente al lenguaje C (quiz el 99% del cdigo escrito en C es vlido en C++) pero al mismo tiempo incorpora muchas caracteristicas sofisticadas no incluidas en aqul, tales como: POO, excepciones, sobrecarga de operadores, templates o plantillas. Una visin general del lenguaje se pude obtener en [CPPWIKI]. Diversos tutoriales y textos como [CPPECKEL], [CPPPROF] proporcionan abundante informacin educativa. Lenguaje Java Java originalmente fue denominado "Oak". Sus inicios datan de 1991 cuando James Gosling (en Sun Microsystems) encabez un proyecto cuyo objetivo original era implementar una mquina virtual ampliamente portable y un lenguaje de programacin ambos orientados a dispositivos "embedded"[JAVAHIST] (procesadores incorporados en diversos dispositivos de consumo masivo como VCRs, tostadoras, PDAs, telfonos mbiles, etc.) La sintaxis del lenguaje hered caractersticas de C y C++, explcitamente eliminando aquellas que para muchos programadores (segn los diseadores) resultan excesivamente complejas e inseguras. Con el auge de Internet, pareci natural aprovechar este lenguaje para desarrollar aplicaciones distribudas y portables. La primera implementacin de Java data de 1995 y pronto los "navegadores web" incorporaron soporte Java para la ejecucin de pequeas aplicaciones interactivas (Applets.) En la actualidad su uso es promovido para el desarrollo de aplicaciones empresariales del lado del servidor, especialmente a travs del estndar J2EE, as como en dispositivos mviles (a travs del estndar J2ME.) En realidad, Java hace referencia a un conjunto de tecnologas entre las cuales el lenguaje Java es slo una de ellas. Por tal motivo muchas veces se habla de la "plataforma Java", la cual es indesligable del lenguaje.

Sun controla los estndares de Java a travs de un mecanismo de apertura parcial denominado el Java Community Process (JCP.) Una gran cantidad de documentacin online para el aprendizaje se de Java se puede hallar en [JAVATUT]. 3. Criterios de Comparacin Comparar lenguajes de programacin nunca ha sido una tarea sencilla ni objetiva. En [TUCKER] se proporcionan nueve "criterios para la evaluacin y comparacin de lenguajes" (ver tambin [WIKICOMP] para una alternativa ms sencilla.) Un listado de estos criterios (con ligeras modificaciones) se presenta a continuacin: 1. Expresividad: Facilidad del lenguaje para expresar los algoritmos 2. Bien Definido: Consistencia y falta de ambigedad 3. Tipos y estructuras de datos Ventajas y Desventajas: Comparacin de los Lenguajes C, C++ y Java 3 / 13 4. Modularidad: permitir el desarrollo de componentes independientemente 5. Facilidades de entrada-salida: Soporte para interaccin con el entorno 6. Transportabilidad/Portabilidad 7. Eficiencia/Performance 8. Pedagoga: Facilidad de aprendizaje y enseanza 9. Generalidad: Aplicabilidad, Uso Esta lista es utilizada en dicha referencia para comparar lenguajes de programacin en un espectro muy amplio (desde LISP hasta COBOL pasando por ALGOL) pero puede servirnos como punto de partida. Considero importante agregar los siguientes aspectos: 1. Estandarizacin: Quin controla el lenguaje? 2. Evolucin: Qu est ocurriendo con el lenguaje?
3. Soporte de Libreras: Qu NO se debe reescribir?

También podría gustarte