martes, 6 de enero de 2015

Generalidades del lenguaje JAVA.

El objetivo original era construir una  plataforma de desarrollo de aplicaciones para controlar electrodomésticos y pequeños equipos electrónicos, como televisores, vídeos, teléfonos celulares, etc. Posteriormente se desechó el propósito inicial y se utilizó como lenguaje para Internet, debido a  que facilita la introducción de nuevas funcionalidades en las páginas Web. Una característica importante es que permite crear las  páginas mucho más dinámicas de lo que era posible hasta ese momento, sin la necesidad de establecer una conexión con el servidor. Esto se consigue ejecutando pequeños programas en la computadora destino.

Multiplataforma
La introducción de Java implica un profundo cambio en la forma en que actualmente se entiende y realiza la programación, es un lenguaje multiplataforma.
Java permite ejecutar una aplicación con absoluta abstracción no sólo del hardware, sino también del sistema operativo. Un programa Java puede ejecutarse indistintamente sobre una computadora de escritorio, Macintosh o Unix. Para lograr la independencia de plataforma, Java compila el código fuente del programa y genera un código intermedio, totalmente independiente de la máquina, conocido como ByteCode (pseudo-instrucciones), que debe ser ejecutado por una Máquina Virtual Java (JVM). La Máquina Virtual es un traductor que convierte el ByteCode al código máquina específico del sistema destino. Por tanto, el único requisito necesario es que cada plataforma incluya un intérprete que cumpla las especificaciones de la Máquina Virtual Java. Actualmente, esta máquina se está trasladando a las principales plataformas. También es posible compartir todo tipo de ficheros debido a que el formato de caracteres utilizado es Unicode de 16 bit.

Applets
Los programas escritos en Java se denominan Applets y se integran en los documentos HTML.
Estos programas se utilizan para realizar animaciones gráficas, todo tipo de juegos, aplicaciones educativas, consulta y actualización de bases de datos y recepción de un pedido de compras en una tienda virtual. Los programas escritos en Java se transfieren a través de la Red y son interpretados y ejecutados por el navegador en la propia computadora.

Características
Java es un lenguaje potente, desarrollado para soportar las actuales tecnologías. Algunas de sus características son las siguientes:

LaCompu1. Orientación a Objetos. Esta característica permite dividir un programa complejo en pequeñas unidades de cómputo denominadas objetos. Los objetos son "cajas negras" que realizan determinadas operaciones, que unidas entre sí integran aplicaciones con alto poder operacional.

LaCompu2. Sencillez y Eficacia. Java es un lenguaje de programación sencillo y a la vez potente, que permite crear cualquier tipo de aplicación de propósito general. Administra los recursos de máquina adecuadamente obteniendo un elevado rendimiento.

LaCompu3. Seguridad. Una de las características más importantes de Java es su seguridad. No permite acceso directo a memoria y el manejo y aritmética de punteros. Además, esta prohibido el acceso a archivos locales por parte de los navegadores de Internet.

LaCompu4. Multiproceso. Permite la ejecución de varias tareas al mismo tiempo mejorando la interacción con el usuario.

LaCompu5. Orientado a Red. Java es el lenguaje por excelencia para interactuar con la Red de redes. Contempla e integra la conexión vía TCP/IP y HTTP. Simplemente, haciendo clic en el botón de un navegador es posible acceder a información localizada en cualquier parte del mundo y, para ello, no existe ninguna necesidad de programación adicional.

Elementos del lenguaje
Los elementos de Java son muy parecidos al de los lenguajes C y C++. Se pueden agrupar en las siguientes categorías:

La CompuTipos de datos. Un dato es la información que debe almacenarse en una variable para su posterior uso. Consta de datos simples (enteros, de coma flotante, lógicos y tipo carácter) y compuestos (matrices, cadenas, interfaces y clases).

La CompuInstrucciones de control. Las instrucciones de control permiten ejecutar un determinado bloque de instrucciones del programa en función de las condiciones establecidas. Java utiliza las siguientes instrucciones:

If-Else. If evalúa una condición y, si es cierta, ejecuta el bloque de instrucciones que le sigue. Si es falsa ejecuta las instrucciones que siguen a else.
- Switch. Es un bloque de decisión múltiple y permite establecer distintas opciones en función del valor de una variable.
- For. Permite repetir un número determinado de veces un bloque de sentencias.
- While. Ejecuta un bloque de instrucciones hasta que se cumpla una condición. En función de la condición, es posible que el bloque de instrucciones no se ejecute.
- Do-While. Es una variante de la anterior con la peculiaridad de que, por lo menos una vez se ejecutará el bloque de instrucciones.
- Objetos. Un objeto es una agrupación de datos y funciones y constituyen los elementos más importantes del lenguaje.
- Librerías. Java dispone de librerías de clases donde se encuentran las utilidades necesarias para confeccionar un programa.

Lenguaje Java

Java es un lenguaje de programación de propósito general, concurrente, orientado a objetos que fue diseñado específicamente para tener tan pocas dependencias de implementación como fuera posible. Su intención es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo ejecuten en cualquier dispositivo (conocido en inglés como WORA, o "write once, run anywhere"), lo que quiere decir que el código que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra. Java es, a partir de 2012, uno de los lenguajes de programación más populares en uso, particularmente para aplicaciones de cliente-servidor de web, con unos 10 millones de usuarios reportados.2 3

El lenguaje de programación Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compañía Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems. Su sintaxis deriva en gran medida de C y C++, pero tiene menos utilidades de bajo nivel que cualquiera de ellos. Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier máquina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente.


La compañía Sun desarrolló la implementación de referencia original para los compiladores de Java, máquinas virtuales, y librerías de clases en 1991 y las publicó por primera vez en 1995. A partir de mayo de 2007, en cumplimiento con las especificaciones del Proceso de la Comunidad Java, Sun volvió a licenciar la mayoría de sus tecnologías de Java bajo la Licencia Pública General de GNU. Otros también han desarrollado implementaciones alternas a estas tecnologías de Sun, tales como el Compilador de Java de GNU y el GNU Classpath.





Conceptos Básicos.

La programación orientada a objetos es una forma de programar que trata de encontrar una solución a estos problemas. Introduce nuevos conceptos, que superan y amplían conceptos antiguos ya conocidos. Entre ellos destacan los siguientes:
Clase
Definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ella.
Herencia
(Por ejemplo, herencia de la clase C a la clase D) es la facilidad mediante la cual la clase D hereda en ella cada uno de los atributos y operaciones de C, como si esos atributos y operaciones hubiesen sido definidos por la misma D. Por lo tanto, puede usar los mismos métodos y variables públicas declaradas en C. Los componentes registrados como "privados" (private) también se heredan, pero como no pertenecen a la clase, se mantienen escondidos al programador y sólo pueden ser accedidos a través de otros métodos públicos. Esto es así para mantener hegemónico el ideal de POO.
Objeto
Instancia de una clase. Entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos), los mismos que consecuentemente reaccionan a eventos. Se corresponden con los objetos reales del mundo que nos rodea, o con objetos internos del sistema (del programa). Es una instancia a una clase.
Método
Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecución se desencadena tras la recepción de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un método puede producir un cambio en las propiedades del objeto, o la generación de un "evento" con un nuevo mensaje para otro objeto del sistema.
Evento
Es un suceso en el sistema (tal como una interacción del usuario con la máquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. También se puede definir como evento la reacción que puede desencadenar un objeto; es decir, la acción que genera.
Atributos
Características que tiene la clase.
Mensaje
Una comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros asociados al evento que lo generó.
Propiedad o atributo
Contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto y esto se define como sus características predeterminadas, y cuyo valor puede ser alterado por la ejecución de algún método.
Estado interno
Es una variable que se declara privada, que puede ser únicamente accedida y alterada por un método del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos). No es visible al programador que maneja una instancia de la clase.
Componentes de un objeto
Atributos, identidad, relaciones y métodos.
Identificación de un objeto
Un objeto se representa por medio de una tabla o entidad que esté compuesta por sus atributos y funciones correspondientes.
En comparación con un lenguaje imperativo, una "variable" no es más que un contenedor interno del atributo del objeto o de un estado interno, así como la "función" es un procedimiento interno del método del objeto.

Programación Orientada a Objetos

La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa los objetos en sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herenciacohesiónabstracciónpolimorfismoacoplamiento y encapsulamiento. Su uso se popularizó a principios de la década de los años 1990. En la actualidad, existe una gran variedad de lenguajes de programación que soportan la orientación a objetos.



Análisis y Diseño de Sistemas de Información.

El análisis y diseño de sistemas, tal como es ejecutado por los analistas de sistemas, busca analizar sistemáticamente la entrada de datos o el flujo de datos, el proceso o transformación de los datos, el almacenamiento de datos y la salida de información dentro del contexto de un negocio particular. Además, el diseño y análisis de sistemas es usado para analizar, diseñar e implementar mejoras en el funcionamiento de los negocios que pueden ser logradas por medio del uso de sistemas de información computarizados. La instalación de un sistema sin la planeación adecuada lleva a grandes frustraciones, y frecuentemente causa que el sistema deje de ser usado.

Usuarios finales.
Cualquiera que interactúe con un sistema de información en el contexto de su trabajo en la organización puede ser llamado un usuario final. A lo largo de los años se han hecho borrosas las distinciones entre usuarios. Además, cualquier categoría de usuarios empleada no debe ser vista como excluyente. Sin importar cómo se hayan clasificado los usuarios finales, un hecho es pertinente al analista de sistemas: el involucramiento del usuario a lo largo del proyecto, es crítico para el desarrollo exitoso de los sistemas de información computarizados. Los analistas de sistemas, cuyos papeles dentro de la organización se tratan a continuación, son el otro componente esencial para el desarrollo de sistemas de información.

El analista de sistemas como consultor.
El analista de sistemas frecuentemente actúa como consultor y, por lo tanto, puede ser contratado específicamente para que se encargue de los asuntos de los sistemas de información dentro de un negocio. Esto puede ser una ventaja, debido a que los consultores externos pueden llevar con ellos una perspectiva fresca que no poseen otros miembros de la organización. Pero también puede decirse que los analistas externos están en desventaja, debido a que la verdadera cultura organizacional nunca puede ser conocida por un extraño.

El analista de sistemas como experto de soporte.
Otro papel que tal vez requiera desarrollar es el de experto de soporte en un negocio donde se está empleado regularmente en alguna actividad de sistemas. En este papel el analista se apoya en su experiencia profesional relacionada con el hardware y software de computadora y su uso en el negocio. Este trabajo frecuentemente no es un proyecto de sistema completo, sino solamente pequeñas modificaciones o decisiones que afectan a un solo departamento.

El analista de sistemas como agente de cambio.
El papel más comprensivo y responsable que toma un analista de sistemas es el de agente de cambio, ya sea interno o externo al negocio. Como analista se es un agente de cambio cada vez que se ejecuta cualquiera de las actividades del ciclo de vida del desarrollo de sistemas (tratado en la siguiente sección) y se está presente en el negocio por un periodo extendido (desde dos semanas hasta más de un año). Un agente de cambio puede ser definido como una persona que sirve de catalizador para el cambio, desarrolla un plan para el cambio y trabaja junto con otros para facilitar ese cambio.

Ciclo de Vida de los Sistemas.

El Ciclo de Vida del Desarrollo de Sistemas (SDLC) es una metodología de sistemas usada para facilitar el desarrollo de los sistemas de información. Además, el SDLC ayuda a los gestores de proyecto con la planificación del desarrollo y la puesta en marcha de un sistema de información que reúna los requisitos del usuario, y que sea completado a tiempo y dentro de los límites del presupuesto. Con el SDLC, un administrador de proyecto gestiona de forma efectiva las tareas y detalles de un proyecto de desarrollo de sistemas, y comunica las fechas objetivo importante a las personas involucradas o afectadas por el proyecto. Las fases del SDLC son análisis, diseño, desarrollo, pruebas, implementación y mantenimiento.