Capítulo 3. Tecnología empleada El lenguaje de programación Java

Texto completo

(1)

Capítulo 3

Tecnología empleada

En este capítulo comentaremos qué tecnologías se han empleado para la realización de este proyecto; por un lado para el modelado de datos se ha utilizado el lenguaje de programación Java, del que se presentan sus características y ventajas principales. Por otro lado se ha utilizado el programa Viscovery® SOMine para realizar el estudio de clasificación de los hábitos y comportamientos de los usuarios, del que también se presentan sus características principales.

3.1. El lenguaje de programación Java

Java es un lenguaje de programación orientado a objetos desarrollado por Sun Microsystems a principios de los años 90. Las aplicaciones Java están típicamente compiladas en un bytecode, aunque la compilación en código máquina nativo también es posible. En el tiempo de ejecución, el bytecode es normalmente interpretado o compilado a código nativo para la ejecución, aunque la ejecución directa por hardware del bytecode por un procesador Java también es posible.

Figura 5. Logotipos de Java y Sun microsystems

El lenguaje en sí mismo toma mucha de su sintaxis de C y C++, pero tiene un modelo de objetos más simple y elimina herramientas de bajo nivel como punteros. JavaScript, un lenguaje interpretado, comparte un nombre similar y una sintaxis similar, pero no está directamente relacionado con Java.

(2)

El lenguaje Java se creó con cinco objetivos principales:

1. Debería usar la metodología de la programación orientada a objetos. 2. Debería permitir la ejecución de un mismo programa en múltiples

sistemas operativos.

3. Debería incluir por defecto soporte para trabajo en red.

4. Debería diseñarse para ejecutar código en sistemas remotos de forma segura.

5. Debería ser fácil de usar y tomar lo mejor de otros lenguajes orientados a objetos, como C++.

Por tanto se ha elegido esta opción debido a su independencia de la plataforma y al gran número de bibliotecas que existen para este lenguaje.

3.1.1. Características principales

Las características principales que nos ofrece Java respecto a cualquier otro lenguaje de programación, son:

• Simplicidad

Java ofrece toda la funcionalidad de un lenguaje potente, pero sin las características menos usadas y más confusas de éstos. C++ es un lenguaje que adolece de falta de seguridad, pero C y C++ son lenguajes más difundidos, por ello Java se diseñó para ser parecido a C++ y así facilitar un rápido y fácil aprendizaje.

Java elimina muchas de las características de otros lenguajes como C++, para mantener reducidas las especificaciones del lenguaje y añadir características muy útiles como el garbage collector (reciclador de memoria dinámica). No es necesario preocuparse de liberar memoria, el reciclador se encarga de ello y como es un thread de baja prioridad, cuando entra en acción, permite liberar bloques de memoria muy grandes, lo que reduce la fragmentación de la memoria.

Java reduce en un 50% los errores más comunes de programación con lenguajes como C y C++ al eliminar muchas de las características de éstos, entre las que destacan:

I. aritmética de punteros II. no existen referencias III. registros (struct)

IV. definición de tipos (typedef) V. macros (#define)

VI. necesidad de liberar memoria (free)

Además, el intérprete completo de Java que hay en este momento solamente ocupa 215 Kb de RAM.

(3)

• Orientación a objetos

Java implementa la tecnología básica de C++ con algunas mejoras y elimina algunas características para mantener el objetivo de la simplicidad del lenguaje. Java trabaja con sus datos como objetos y con interfaces a esos objetos. Soporta las tres características propias del paradigma de la orientación a objetos: encapsulación, herencia y polimorfismo. Las plantillas de objetos son llamadas, como en C++, clases y sus copias, instancias. Estas instancias, como en C++, necesitan ser construidas y destruidas en espacios de memoria.

Java incorpora funcionalidades inexistentes en C++ como por ejemplo, la resolución dinámica de métodos. Esta característica deriva del lenguaje Objective C, propietario del sistema operativo Next. En C++ se suele trabajar con librerías dinámicas (DLLs) que obligan a recompilar la aplicación cuando se retocan las funciones que se encuentran en su interior. Este inconveniente es resuelto por Java mediante una interfaz específica llamada RTTI (RunTime Type Identification) que define la interacción entre objetos excluyendo variables de instancias o implementación de métodos. Las clases en Java tienen una representación en el runtime que permite a los programadores interrogar por el tipo de clase y enlazar dinámicamente la clase con el resultado de la búsqueda.

• Distribución

Java se ha construido con extensas capacidades de interconexión TCP/IP. Existen librerías de rutinas para acceder e interactuar con protocolos como http y ftp. Esto permite a los programadores acceder a la información a través de la red con tanta facilidad como a los ficheros locales.

La verdad es que Java en sí no es distribuido, sino que proporciona las librerías y herramientas para que los programas puedan ser distribuidos, es decir, que se corran en varias máquinas, interactuando.

• Robustez

Java realiza verificaciones en busca de problemas tanto en tiempo de compilación como en tiempo de ejecución. La comprobación de tipos en Java ayuda a detectar errores, lo antes posible, en el ciclo de desarrollo. Java obliga a la declaración explícita de métodos, reduciendo así las posibilidades de error. Maneja la memoria para eliminar las preocupaciones por parte del programador de la liberación o corrupción de la misma.

(4)
(5)

3.2. Eclipse

En la web oficial de Eclipse (www.eclipse.org), se define como “An IDE for everything and nothing in particular” (un IDE para todo y para nada en particular). Eclipse es, en el fondo, únicamente un armazón (workbench) sobre el que se pueden montar herramientas de desarrollo para cualquier lenguaje, mediante la implementación de los plugins adecuados.

La arquitectura de plugins de Eclipse permite, demás de integrar diversos lenguajes sobre un mismo IDE, introducir otras aplicaciones accesorias que pueden resultar útiles durante el proceso de desarrollo como: herramientas UML, editores visuales de interfaces, ayuda en línea para librerías, etc.

Figura 6. Logotipo de eclipse

El IDE Eclipse es, únicamente, una de las herramientas que se engloban bajo el denominado Proyecto Eclipse. El Proyecto Eclipse aúna tanto el desarrollo del IDE Eclipse como de algunos de los plugins más importantes (como el JDT, plugin para el lenguaje Java, o el CDT, plugin para el lenguaje C/C++). Este proyecto también alcanza a las librerías que sirven como base para la construcción del IDE Eclipse (pero pueden ser utilizadas de forma completamente independiente), como por ejemplo, la librería de widgets SWT.

En su origen, el Proyecto Eclipse era un proyecto de desarrollo OpenSource, soportado y mantenido en su totalidad por IBM. Bajo la dirección de IBM, se fundó el Consorcio Eclipse

al cual se unieron algunas empresas importantes como Rational, HP o Borland.

Desde febrero de 2004, el Consorcio Eclipse es independiente de IBM y entre otras, está formado por las empresas: HP, QNX, IBM, Intel, SAP, Fujitsu, Hitachi, Novell, Oracle, Palm, Ericsson y RedHat, además de universidades e institutos tecnológicos.

El IDE Eclipse se puede obtener bajándolo directamente del sitio web oficial del

Proyecto Eclipse - www.eclipse.org - o de cualquier “mirror” autorizado. Las descargas que incluyen el código fuente y descargas que incluyen los plugins más habituales. Además, de este mismo sitio, se puede descargar la librería SWT independientemente y su SDK.

Como Eclipse está escrito en Java, es necesario, para su ejecución, que exista un JRE (Java Runtime Environment) instalado previamente en el sistema.

La instalación de Eclipse, es tan sencilla como descomprimir el archivo descargado en el directorio que se estime conveniente.

(6)
(7)

3.3. Viscovery SOMine

Viscovery SOMine es una aplicación informática con aplicación en los campos de la minería de datos, análisis de clustering, procesos estadísticos, segmentación y clasificación basada en los mapas de características autoorganizados (SOM) y en la estadística clásica.

Desde su primer lanzamiento en 1996, se ha convertido en una herramienta muy extendida en el mercado de los programas de minería de datos basados en SOMs. Más de 300 universidades a lo largo del mundo utilizan el software para sus trabajos de investigación.

3.3.1. Características y funciones

Viscovery SOMine combina los métodos estadísticos clásicos y los SOM en un sistema de minería de datos y modelos predictivos. La tecnología robusta de alto rendimiento se utiliza para representar y visualizar distribuciones de datos que pueden contener miles de variables.

En contraste con los sistemas tradicionales de minería de datos, Viscovery ofrece un enfoque intuitivo de datos, de modo que incluso para los usuarios que no tienen conocimientos estadísticos avanzados es fácil de comprender y utilizar.

Todas las tareas, incluyendo la importación de los datos, el tratamiento previo y el tratamiento de outliers son guiadas. Los modelos terminados se pueden modificar y volver a aplicarse a nuevos proyectos.

Viscovery SOMine proporciona una herramienta fácil de utilizar para la exploración de datos, identificación de dependencias, el análisis de clustering, la segmentación y clasificación, así como una serie de funciones estadísticas clásicas, como la estadística descriptiva, perfiles de grupo, análisis de correlación, histogramas, diagramas de dispersión y otros.

Como prestaciones más importantes podríamos destacar:

Representación de datos compacta. Reducción de la complejidad a través de autoorganización de representación de datos que permite la visualización compacta de grandes cantidades de datos son numerosas variables en una sola pantalla.

Análisis intuitivo y clasificaciones precisas.

Fácil manejo. Soporte de flujo de trabajo y completa documentación incluyendo ayuda online.

(8)

Figure

Actualización...

Referencias

Actualización...