septiembre 26, 2010

Internet

Tiene sus raíces en la década de 1960; su patrocinio estuvo a cargo del Departamento de Defensa de los Estados Unidos. Diseñada originalmente para conectar los sistemas de cómputo principales de aproximadamente una docena de universidades y organizaciones de investigación, actualmente Internet es utilizada por cientos de millones de computadoras y dispositivos controlados por computadora en todo el mundo.

Algunos de los servicios disponibles en Internet, a parte de la World Wide Web, son el correo electrónico (SMTP Y POP), el acceso remoto a otras máquinas, la transferencia de archivos (FTP), las conversaciones en línea (IRC y chats), la mensajería instantánea, los boletines electrónicos (news, listas de distribución) o la transmisión de archivos.

Bibliografía consultada:
  • Historia y cronología de la ciencia y los descubrimientos, Isacc Asimov, pág. 809, 1ª. Edición 1990, Editorial Ariel S.A.
  • Como programar en Java, Deitel & Deitel, pág. 6, Séptima Edición 2008, Editorial Pearson Education.

Véase en Megavideo, La historia del Internet:
Episodio 1: La guerra de los navegadores.



Episodio 2: La historia de las búsquedas.



Episodio 3: Ebay y Amazón.



Episodio 4: Futuro dígital.


World Wide Web


En agosto de 1991, el físico británico Tim Berners Lee da a conocer la World Wide Web (WWW). Berners Lee empezó a desarrollar en el CERN (Laboratorio de Física de Partículas) con el objetivo de crear un método eficiente y rápido para intercambiar datos entre la comunidad científica de todo el mundo. Su proyecto acabó convirtiéndose en la World Wide Web, un sistema de comunicación global basado en hipertexto accesible a través de Internet. La Web es uno de los servicios más que ofrece la Internet, facilitando al público en general acceso a la información.

Bibliografía consultada:
  • Historia y cronología de la ciencia y los descubrimientos, Isacc Asimov, pág. 881, 1ª. Edición 1990, Editorial Ariel S.A.
  • Como programar en Java, Deitel & Deitel, pág. 6, Séptima Edición 2008, Editorial Pearson Education.

Véase en Ted.com:
Tim berners lee: on the next web.



Tim berners lee: the year open data went worldwide.



Kevin_kelly: on the next 5000 days of the web.


septiembre 22, 2010

Reutilización de software

Por reutilización se entiende el hecho de utilizar un elemento de un programa en diferentes aplicaciones, con poca o ninguna modificación. En el caso de la Orientación a Objetos, el elemento que se puede reutilizar es la clase.

En este sentido, sería conveniente pensar en la reutilización de las clases en el momento de diseñar un diseño orientado a objetos. Si se definen las clases pensando en su futuro uso en otras aplicaciones se conseguirá reducir el esfuerzo de desarrollo de aplicaciones futuras, lo que supondrá un gran ahorro de trabajo y permitirá concentrarse en aquellas partes de las aplicaciones futuras que nunca se hayan tratado.

Sistema heredado

Un sistema heredado es un sistema antiguo que aún proporciona servicios esenciales de negocio. Los sistemas heredados no son sólo sistemas de software de aplicación. Son sistemas socio-técnicos, por lo que incluyen procesos de negocio, software de aplicación, software de apoyo y sistema hardware.

Muchos sistemas heredados todavía se utilizan porque solucionan bien el problema y reemplazarlos sería demasiado costoso.

septiembre 21, 2010

Interfaz Gráfica de Usuario

Una interfaz gráfica de usuario (Graphical User Interface, GUI por sus siglas en inglés) presenta un mecanismo amigable al usuario para interactuar con una aplicación. En Java, los programas basados en GUI se implementan con el uso de las clases provenientes de los paquetes estándar javax.swing y java.awt.

Las GUIs se crean a partir de componentes de la GUI. A los componentes se les conoce como controles o widgets (accesorios de ventanas). Los componentes se colocan sobre Contenedores por ejemplo una ventana. Para colocar un componente sobre una ventana se utiliza un administrador de esquemas.

Las GUIS utilizan un modelo de programación basada en eventos, donde un evento ocurre cuando el usuario interactúa con un objeto GUI. En los programas basados en eventos, los objetos se programan para responder a dichos eventos al definir métodos de manejo de eventos.

septiembre 16, 2010

Pseudocódigo


Definición.
El pseudocódigo es un lenguaje muy útil para diseñar programas ya que permite expresar lo que se quiere hacer de una forma clara, precisa, sin ambigüedad y usando un lenguaje natural. Es una forma de describir la solución a un problema de manera que su posterior traducción a un lenguaje de programación de alto nivel sea sencilla.

Reglas generales del pseudocódigo.
No hay una forma estándar de escribir un programa en pseudocódigo, ya que depende en gran medida del criterio del programador. No obstante, es aconsejable respetar lo más rigurosamente posible las siguientes normas de carácter general:

1. Todo programa escrito en pseudocódigo comienza con la palabra “Inicio” y termina con la palabra “Fin”.
2. Cada instrucción se debe escribir en una línea.
3. Para su descripción se utilizan una serie de palabras reservadas, tales como “Inicio”, “Fin”, “Si”, “Entonces”, “Si no”, “Fin_si”, “Mientras”, “Seguir”, “Fin_Seguir”, que tienen un significado especifico.
4. Debe escribirse indentando (tabulando) para mostrar claramente las dependencias de unas instrucciones del programa respecto a otras.
5. Cada una de las estructuras que definen un programa tendrá un punto de comienzo y uno de fin, especificados por las palabras reservadas que definen la estructura.
6. Se escribirá en minúscula, excepto aquellos nombres que elija el programador (como NUM, MAYOR, MENOR) que irán en mayúsculas.

Ejemplos simples.
Calcular la suma y el producto de dos números.
Inicio
    Leer A y B
    SUMA = A + B
    PRODUCTO = A * B
    Mostrar Suma, Producto
Fin
Leer por teclado un número y si es mayor que 20 visualizarlo en la pantalla.
Inicio
    Leer un número (NUM)
    Si NUM > 20
        Entonces
            Mostrar NUM
    Fin_si
Fin
Encontrar la suma de los números comprendidos entre 1 y 100, ambos inclusive.
Inicio
    SUMA = 0
    Para NUM desde 1 hasta 100
        SUMA = SUMA + NUM
    Fin_para
    Mostrar SUMA
Fin

Programación estructurada

La programación estructurada es un concepto que surge como respuesta a la crisis del software de los años 60, cuando el desarrollo de programas estaba ocupando una porción cada vez mayor de los costos de computación y, a su vez, el mantenimiento de los mismos era cada vez más inmanejable.
La programación estructurada se convirtió, hace unos 20 años, en un must, y todo producto que se lanzaba al mercado se proclamaba estructurado.

El primer inconveniente que se atacó fue el uso del ya olvidado Goto (ruptura de secuencia o interrupción incondicional de la secuencia), sobre todo luego de un artículo de Dijkstra titulado “Goto considered harmful” (El Goto considerado dañino). A menudo se ha resumido la programación estructurada como el rechazo del Goto y nada más.

Esta búsqueda de la supresión del uso del Goto había provocado la enunciación del teorema de Bohm-Jacopini, ya en 1966 bajo la caracterización de una entrada, una salida: “Cualquier segmento de programa con una entrada y una salida que tenga todas las proposiciones en algún camino de la entrada a la salida se puede especificar usando sólo secuencia, selección e iteración”.


Sin embargo, la programación estructurada involucraba otras prácticas, de las cuales las más importantes parecen ser:

  • Utilizar un estilo disciplinado de programación.
  • Ser una técnica que lleve a programas fácilmente modificables.
  • Sencillez, claridad y elegancia.

Estos objetivos se logran sólo parcialmente con la eliminación del Goto y su reemplazo por las tres estructuras fundamentales de secuencia, selección e iteración.

Otros aspectos, menos formalizados, apuntaban a usar lenguajes que poseyeran unas pocas sentencias de uso habitual, con construcciones conceptualmente simples y ampliamente aplicables a la práctica, sin reglas demasiado permisivas, el uso de nombres claros, no utilizar un identificador para nombres múltiples, abundancia de comentarios aclaratorios, uso de sangrías para aumentar la legibilidad y denotar la estructura del programa, el aislamiento de las dependencias de la máquina en unas cuantas rutinas separadas, etc.

Fue la primera vez que el rendimiento y las características técnicas dejaron de ser las únicas consideraciones de calidad de los sistemas de software.

Los lenguajes de programación como Fortran y Algol se hicieron más estructurados, y luego surgieron nuevos lenguajes, como C y Pascal.

Bibliografía consultada:
  • Orientación a Objetos con Java y UML, Carlos Fontela, pág. 10, 11, Edición 2004, Editorial Nueva Librería.