martes, 30 de septiembre de 2014

SISTEMAS MULTIUSUARIO Y DE RED UT2


UTILIDADES DE DESARROLLO


Indudablemente, la informática desde hace un largo tiempo ha venido ocupando e introduciéndose en cada aspecto de nuestra vida, tanto en el hogar como en el ámbito laboral. En este último, es absolutamente imposible pensar en desarrollar una tarea sin que haya una computadora cerca, en cualquiera de sus formas.
En este punto, la oferta de software, es abrumadora, y podemos encontrar una aplicación que se adapte a nuestras necesidades prácticamente sin ningún tipo de problemas.
Sin embargo, existen casos específicos en donde hallar un programa para que haga exactamente lo que queremos es imposible, sobre todo cuando tenemos requisitos fuera de lo común, o el trabajo que realizamos es poco conocido o practicado.

En este punto, hacer nuestros propios programas es una de las alternativas más idóneas, tanto para aquellos profesionales o responsables de un microemprendimiento que necesitan una herramienta que le aporte a su empresa tecnología y valor agregado. Si bien estas herramientas exigen un grado bastante alto de conocimientos para poder sacarles el mejor provecho, lo cierto es que ya no son tan difíciles de operar como en otros tiempos, lo que nos ofrece la oportunidad, con una curva de aprendizaje relativamente suave, de crear y poner en funcionamiento nuestro propio software.
Para crear nuestros propios programas de computadoras existen muchas alternativas, cada una de ellas con sus propias ventajas, desventajas y curva de aprendizaje, sólo es cuestión de conocerlas y elegir la que creemos que será la más adecuada a nuestras necesidades. En este unidad conoceremos algunas de las herramientas de programación, es decir los programas que sirven para hacer programas, más usados y populares del mercado.

CONCEPTO SOBRE EDICIÓN  Y OBTENCIÓN DE CÓDIGO  EJECUTABLE:
EDITOR, COMPILADOR, ENLAZADOR Y, LIBRERÍAS.

EDITOR DE CÓDIGO FUENTE

Un editor de código fuente es un editor de texto diseñado específicamente para editar el código fuente de programas informáticos. Puede ser una aplicación individual o estar incluido en un entorno de desarrollo integrado.

Los editores de código fuente tienen características diseñadas exclusivamente para simplificar y acelerar la escritura de código fuente, como resaltado de sintaxis, autocompletar y pareo de llaves. 
Estos editores también proveen un modo conveniente de ejecutar un compilador, un intérprete, un depurador, o cualquier otro programa que sea relevante en el proceso de desarrollo de software. Por lo que, si bien muchos editores de texto pueden ser usados para editar código fuente sin problemas, si no mejoran, automatizan y facilitan la edición del código, no ameritan ser llamados "editores de código fuente", y son únicamente editores de texto que pueden ser usados para editar código fuente.

Algunos editores de código fuente verifican la sintaxis a medida que el programador escribe, alertando inmediatamente sobre los problemas de sintaxis que puedan surgir. Otros editores de código fuente comprimen el código, convirtiendo las palabras clave en "tokens" de un solo byte, eliminado espacios en blanco innecesarios y convirtiendo los números a una forma binaria. Estos editores "tokenizadores" descomprimen el código fuente al momento de visualizarlo, imprimiéndole con los espacios y mayúsculas adecuadas. Existen editores que realizan ambas tareas.

COMPILADOR, ENLAZADOR (linker) Y LIBRERÍAS

Un programa escrito en un lenguaje de alto nivel, no puede ser ejecutado 
directamente por un ordenador, sino que debe ser traducido a lenguaje máquina. 

Las etapas por las que debe pasar un programa escrito en un lenguaje de 
Programación, hasta poder ser ejecutable son: 

Programa fuente: Programa escrito en un lenguaje de alto nivel (texto ordinario que contiene las sentencias del programa en un lenguaje de programación). Necesita ser traducido a código máquina para poder ser 
Ejecutado. 

Compilador: Proceso encargado de traducir los programas fuentes escritos en un lenguaje de alto nivel a lenguaje máquina y de comprobar que las llamadas a las funciones de librería se realizan correctamente. 

Programa (o código) objeto: Es el programa fuente traducido (por el compilador) a código máquina. Aún no es directamente ejecutable. 
Programa Ejecutable: Traducción completa a código máquina, realizada 
por el enlazador, del programa fuente y que ya es directamente ejecutable.

Linker (enlazador): Es el proceso encargado de insertar al programa objeto, el código máquina de las funciones de las librerías (archivos de biblioteca) usadas en el programa y realizar el proceso de montaje, que producirá un programa ejecutable .exe. Las librerias son una colección de código (funciones) ya programado y traducido a código máquina, listo para utilizar en un programa y que facilita la labor del programador. 




Como cada lenguaje de programación tiene unas reglas especiales (sintaxis) debe existir un compilador específico para cada lenguaje de programación.

Si el programa fuente es sintácticamente correcto, el compilador generará el código objeto, en caso contrario mostrará una lista con los errores encontrados,no generándose ningún programa objeto, para que procedamos a su depuración. 

Los compiladores emiten mensajes de error o de advertencia durante las fases de compilación, de enlace o de ejecución de un programa:

• Los errores en tiempo de compilación son los que se producen antes de la ejecución del programa, durante el proceso de compilación del programa. 

• Los errores en tiempo de ejecución son los que se producen durante la ejecución del programa. Son los más difíciles de encontrar, no son detectados por el compilador, ya que son errores de lógica, no de sintaxis. 

Aunque al compilar un programa no emita errores, el programa puede funcionar incorrectamente y/o a dar errores durante su ejecución. Por ejemplo: 

• Un programa puede producir resultados erróneos, al equivocarnos (errores lógicos) al programar el algoritmo (sumar en vez de restar, etc.). 

• Un programa puede interrumpirse bruscamente, por ejemplo si tenemos que hacer una división y el divisor es cero, etc. 

Los errores que se pueden producir en la fase de compilación son:

− Errores fatales: 

Son raros. Indican errores internos del compilador. Cuando ocurren la  compilación se detiene inmediatamente.

− Errores de sintaxis:

Son los errores típicos de sintaxis. No detienen la compilación sino que al finalizar ésta se mostrará la lista con todos los errores encontrados. Algunos errores suelen ser consecuencia de otros cometidos con anterioridad. Con este tipo de errores no se puede obtener un programa objeto y por lo tanto tampoco el ejecutable. 

− Advertencias o avisos (warnings)

Indican que hay líneas de código sospechosas que a pesar de no infringir ninguna regla sintáctica, el compilador las encuentra susceptibles de provocar un error. Cuando se detecta un warning la compilación no se detiene. Si en un programa fuente sólo se detectan warnings sí que se podrá obtener un programa objeto, que después el linkado dará lugar a un programa ejecutable.
Con respecto a los errores en tiempo de ejecución, encontrar la causa que los provoca es una labor en ocasiones complicada, razón por la cual los EID (Entornos Integrados de Desarrollo, p.ej. DevC++) nos proporcionan una herramienta llamada Depurador que nos ayuda a encontrar los errores lógicos y demás errores producidos en tiempo de ejecución. 

Un depurador (debugger), es un programa diseñado específicamente para la detección, verificación y corrección de errores. Los depuradores nos permiten trazar el programa (ejecutarlo sentencia a sentencia) y visualizar el contenido de las variables y direcciones de memoria durante la ejecución del programa. 

Además permiten alterar el flujo de ejecución del mismo, cambiar los valores de las variables e introducir puntos de parada. 

Pasos para la elaboración y ejecución de un programa: 

1. Escribir el código fuente, por ejemplo con el editor de nuestra elección 
2. Compilar el fichero fuente 
3. Si se producen errores de sintaxis (o warnings) volver al editor y eliminar los errores de sintaxis. 
4. Si no hay errores se obtendrá el código objeto y el enlazador construirá el archivo ejecutable. 
5. Una vez tengamos el archivo ejecutable, será el sistema operativo el encargado de colocar el programa en la memoria central y ejecutarlo. 
6. Comprobar el funcionamiento del programa. 
7. Si se detecta errores o un mal funcionamiento del programa, activar el depurador para trazar el programa y ejecutarlo sentencia a sentencia. 
8. Una vez que hayamos encontrado la causa del error, volveremos al editor y lo corregimos. 
9. El proceso de compilar, enlazar y ejecutar el programa lo repetiremos hasta que no se produzcan errores. 

Fase de ejecución de un programa 

Una vez que tenemos el programa en lenguaje máquina, para poderlo ejecutar hay que introducirlo en la memoria. 

1. Una utilidad del S.O. llamada cargador colocará el programa, y sus datos de entrada, en memoria principal, preparándolo para su ejecución. 

2. El S.O. le pasa el control a la C.P.U. para que comience la ejecución del programa, realizando la Unidad de Control los siguientes pasos (fases): 

- Captación de la instrucción: Lee de la Memoria Principal la instrucción a ejecutar. 

- Ejecución de la instrucción: Interpreta la instrucción leída y envía señales de control a las unidades que deban intervenir en su ejecución. Tras dicha ejecución se establece cuál será la siguiente instrucción a ejecutar. 

Llego la hora del Test, clic en la imagen para acceder al mismo

SISTEMAS GESTORES DE BASES DE DATOS

INTRODUCCIÓN

En el mundo actual existe cada vez mas, una mayor demanda de datos. Esta siempre ha sido patente en empresas y sociedades, pero en estos años la demanda todavía se ha disparado más debido al acceso multitudinario a Internet. Por ello las bases de datos se reconocen como una de las principales aplicaciones de la informática.

En informática se conoce como dato a cualquier elemento informativo que tenga relevancia para un usuario. Desde el primer momento de esta ciencia se ha reconocido al dato como al elemento fundamental de trabajo en un ordenador. Por ello se han realizado numerosos estudios y aplicaciones para mejorar la gestión que hacen las computadoras con los datos.

La escritura fue la herramienta que permitió al ser humano poder gestionar bases cada vez más grandes de datos. Con el tiempo aparecieron herramientas como archivos, cajones, carpetas y fichas en las que se almacenaban los datos.

Antes de la aparición del ordenador, el tiempo requerido para manipular estos datos era enorme. Sin embargo el proceso de aprendizaje era
relativamente sencillo ya que se usaban elementos que el usuario reconocía perfectamente.

Por esa razón, la informática ha adaptado sus herramientas para que los
elementos que el usuario maneja en el ordenador se parezcan a los que utilizaba manualmente. Así en informática se sigue hablado de ficheros, formularios, carpetas, directorios,....

Componentes de un sistema de información electrónico

En el caso de una gestión electrónica de la información (lo que actualmente se considera un sistema de información electrónico), los componentes son:

Datos. Se trata de la información relevante que almacena y gestiona el sistema de información. Ejemplos de datos son: Sánchez, 12764569F, Calle Mayo 5, Azul…
♦ Hardware. Equipamiento físico que se utiliza para gestionar los datos. Cada uno de los dispositivos electrónicos que permiten el funcionamiento del sistema de información.
♦ Software. Aplicaciones informáticas que se encargan de la gestión de la base de datos y de
♦ Recursos humanos. Personal que maneja el sistema de información

Un sistema gestor de bases de datos o SGBD (aunque se suele utilizar más a menudo las siglas DBMS procedentes del inglés, Data Base Management
System) es el software que permite a los usuarios procesar, describir,
administrar y recuperar los datos almacenados en una base de datos.

En estos Sistemas se proporciona un conjunto coordinado de programas,
procedimientos y lenguajes que permiten a los distintos usuarios realizar sus tareas habituales con los datos, garantizando además la seguridad de los mismos.


Figura: Arquitectura de un S.G.B.D.

Los sistemas gestores de bases de datos, con independencia del modelo de sistema de gestión de la misma que vaya a utilizarse suelen disponer los datos de acuerdo a una estructura formal de representación que incluye tres categorías de representación: Campos, Registros y Ficheros.

Por campo debe entenderse cada uno de los atributos que van a ser considerados en la base de datos. Cada unos de los individuos sobre los que se ha recabado o se quiere recabar información, tendrá para cada atributo un determinado valor y cada dato concreto que se considere será el valor que toma para un determinado individuo un atributo determinado. 

Pues bien cada uno de estos atributos constituye un campo. Y un individuo quedará definido por el conjunto de valores que toma para cada uno de los campos considerados, precisamente esto constituye un registro.

En este sencillo ejemplo cada una de las columnas : Nro de registro, nombre, cargo y teléfono constituiría los campo de una estructura de la base de datos, y cada fila un registro diferente.



Finalmente todos los registros que quedan almacenados juntos, por constituirse el conjunto total de individuos sobre los que deseamos conservar, actualizar y explotar la información, a esta estructura se la conoce como una tabla , y una o más tablas relacionadas constituyen una base de datos.


Independencia de la representación concreta de los datos en la base de datos. El usuario debe ser capaz de disponer de una clara imagen lógica del conjunto de datos .
  • Control sobre la consistencia de la información ( ausencia de contradicciones )
  • Seguridad. Incluyendo sistemas de protección sobre algunas informaciones para que no puedan ser modificadas por accidente, negligencia o sabotaje.

  • Control de acceso si la base de datos es accesible a través de una red, para que no pueda modificarse la información de manera contradictoria o no autorizada.


Modelado de una base de datos

Suele distinguirse entre tres tipos de modelos de bases de datos: el modelo jerárquico, el modelo de red y el relacional.

El modelo jerárquico es adecuado para describir una base de datos en la que los objetos están relacionados rígidamente, formando un árbol de dependencias.

El modelo de red es más potente que el anterior porque puede describir cualquier tipo de relación entre objetos ( el modelo jerárquico sería un caso particular de éste)


El modelo relacional puede describir cualquier tipo de objetos y relaciones entre objetos y además de forma que éstas no queden registradas rígidamente mediante punteros, lo que facilita enormemente el mantenimiento de la base de datos.

El modelo relacional ha arrinconado a los otros dos, siendo su única debilidad aparente el que no existe un mecanismo para describir la relación entre los objetos al margen del procedimiento que el modelo ofrece para describir un objeto mediante sus atributos.

No hay comentarios:

Publicar un comentario