jueves, 19 de mayo de 2011

Documentación de usuario:
Este programa es sencillo de manejar  simplemente es un control de registros de las personas que quieren viajar a un destino turístico es un programa para el administrador de la agencia el cual quiera llevar  su registro le generara dos archivos de texto en el cual le mostrara  la lista de las personas y por medios de su numero de cuenta podrá buscar en los dos archivos la persona y a que lugar se dirigió.
Para empezar a utilizar este programa debemos  ingresar los datos  del cliente  como lo son la nombre edad y el numero de cuenta el cual  de hay seguirá llenar los dato como al destino y el lugar de hospedaje como seria la playa y el hotel.
El botón generar debe  generarte los archivos de texto donde podras localizar los registros   en el botón nuevo podras llenar otro registro  con nuevos datos  y el el botón fin saldrás de el programa.
Sistemas distribuidos:
Un sistema distribuido se define como: una colección de computadoras separadas físicamente y conectadas entre sí por una red de comunicaciones distribuida; cada máquina posee sus componentes de hardware y software que el usuario percibe como un solo sistema (no necesita saber qué cosas están en qué máquinas). El usuario accede a los recursos remotos (RPC) de la misma manera en que accede a recursos locales, o un grupo de computadores que usan un software para conseguir un objetivo en común.
Los sistemas distribuidos deben ser muy confiables, ya que si un componente del sistema se descompone otro componente debe de ser capaz de reemplazarlo, esto se denomina Tolerancia a Fallos.
Interfaz gráfica:
En esta pantalla me  generara un formulario donde  llenaremos los datos del cliente y nos generaran los archivos de texto donde me guardara  los destinos y los datos ingresados por el cliente



 


Pruebas unitarias
En programación, una prueba unitaria es una forma de probar el correcto funcionamiento de un módulo de código. Esto sirve para asegurar que cada uno de los módulos funcione correctamente por separado. Luego, con las Pruebas de Integración, se podrá asegurar el correcto funcionamiento del sistema o subsistema en cuestión.
La idea es escribir casos de prueba para cada función no trivial o método en el módulo de forma que cada caso sea independiente del resto.

Eventos, excepciones y errores:
Aquí un pedazo de código donde utilizamos  el try y el catch para  el manejo de excepciones y errores  donde si un archivo al cual estamos llamando no ha sido creada muestra un mensaje de  archivo no ha sido encontrado asi lo implementare con mi clase destino y clase cliente.
public static Destino[] obterArray(){
                 Destino []lugar= new Destino[100];
    StringTokenizer tokenizer ;
    String linea, Playa, Hotel, archivo = "Playas.txt";
    int Ncuenta,contador =0;
    try{
      FileReader file = new FileReader(archivo);
      BufferedReader archivoEntrada = new BufferedReader(file);
      linea = archivoEntrada.readLine();
      while (linea != null){
            tokenizer = new StringTokenizer(linea);
            Playa = tokenizer.nextToken();
            Hotel=tokenizer.nextToken();
            try {
                 Ncuenta = Integer.parseInt(tokenizer.nextToken());
                         lugar[contador++] = new Destino(Playa,Hotel,Ncuenta);
       } catch(NumberFormatException formatoNumero){}
                         linea = archivoEntrada.readLine();                                       
}
 archivoEntrada.close();
                 
}catch (FileNotFoundException excepcion){
                                System.out.print("el archivo "+archivo+" no fue encontrado");   }
catch (IOException excepcion){ System.out.println(excepcion);             }
return lugar;
}
}






Taller  Programación Orientada a Objetos
Patrones de diseño:
Los patrones de diseño son la base para la búsqueda de soluciones a problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces.
Un patrón de diseño es una solución a un problema de diseño. Para que una solución sea considerada un patrón debe poseer ciertas características. Una de ellas es que debe haber comprobado su efectividad resolviendo problemas similares en ocasiones anteriores. Otra es que debe ser reusable, lo que significa que es aplicable a diferentes problemas de diseño en distintas circunstancias.
Los patrones de diseño que utilice en mi programa seria los sig:
Memento (Recuerdo): Permite volver a estados anteriores del sistema:
 Al momento de limpiar las casillas y volver  a ingresar un  dato  en el registro.
Singleton (Instancia única): Garantiza la existencia de una única instancia para una clase y la creación de un mecanismo de acceso global a dicha instancia.
Donde accedemos de la clase  principal o donde tenemos el main a las demás clases que incorporan  el proyecto. 

miércoles, 11 de mayo de 2011


Que es un socket?
Un socket (enchufe), es un método para la comunicación entre un programa del cliente y un programa del servidor en una red. Un socket se define como el punto final en una conexión. Los sockets se crean y se utilizan con un sistema de peticiones o de llamadas de función a veces llamados interfaz de programación de aplicación de sockets (API, application programming interface).
Un socket es también una dirección de Internet, combinando una dirección IP (la dirección numérica única de cuatro partes que identifica a un ordenador particular en Internet) y un número de puerto (el número que identifica una aplicación de Internet particular, como FTP, Gopher, o WWW).
Base de datos distribuida
Una base de datos distribuida (BDD) es un conjunto de múltiples bases de datos lógicamente relacionadas las cuales se encuentran distribuidas en diferentes espacios lógicos (pej. un servidor corriendo 2 maquinas virtuales) e interconectados por una red de comunicaciones. Dichas BDD tienen la capacidad de realizar procesamiento autónomo, esto permite realizar operaciones locales o distribuidas. Un sistema de Bases de Datos Distribuida (SBDD) es un sistema en el cual múltiples sitios de bases de datos están ligados por un sistema de comunicaciones de tal forma que, un usuario en cualquier sitio puede acceder los datos en cualquier parte de la red exactamente como si estos fueran accedidos de forma local.
Un sistema distribuido de bases de datos se almacenan en varias computadoras. Los principales factores que distinguen un SBDD de un sistema centralizado son los siguientes:
  • Hay múltiples computadores, llamados sitios o nodos.
  • Estos sitios deben de estar comunicados por medio de algún tipo de red de comunicaciones para transmitir datos y órdenes entre los sitios.

La computación paralela es una técnica de programación en la que muchas instrucciones se ejecutan simultáneamente.1 Se basa en el principio de que los problemas grandes se pueden dividir en partes más pequeñas que pueden resolverse de forma concurrente ("en paralelo"). Existen varios tipos de computación paralela: paralelismo a nivel de bit, paralelismo a nivel de instrucción, paralelismo de datos y paralelismo de tareas. Durante muchos años, la computación paralela se ha aplicado en la computación de altas prestaciones, pero el interés en ella ha aumentado en los últimos años debido a las restricciones físicas que impiden el escalado en frecuencia. La computación paralela se ha convertido en el paradigma dominante en la arquitectura de computadores, principalmente en los procesadores multinúcleo. Sin embargo, recientemente, el consumo de energía de los ordenadores paralelos se ha convertido en una preocupación.
Los ordenadores paralelos se pueden clasificar según el nivel de paralelismo que admite su hardware: los ordenadores multinúcleo y multiproceso tienen varios elementos de procesamiento en una sola máquina, mientras que los clusters, los MPP y los grids emplean varios ordenadores para trabajar en la misma tarea.
Los programas de ordenador paralelos son más difíciles de escribir que los secuenciales porque la concurrencia introduce nuevos tipos de errores de software, siendo las condiciones de carrera los más comunes. La comunicación y la sincronización entre las diferentes subtareas son típicamente las grandes barreras para conseguir un buen rendimiento de los programas paralelos. El incremento de velocidad que consigue un programa como resultado de la paralelización viene dado por la ley de Amdahl.