Ahora a IBM se le ha dado por sacar una herramienta de programacion que compite directamente con java y la han llamado "SCALA".
Tambien se han tomado las precauciones de elaborar un manual para programadores de java ocupados. EN el sigueinte enlace pueden acceder a él:
The busy Java developer's guide to Scala: Functional programming for the object oriented.
javamos
Monday, May 19, 2008
Tuesday, March 29, 2005
YA NO MÁS TEORIA
Bueno, definitivamente hay mucho que leer, pero estos son conceptos claves para entender lo que se hace con JAVA. Pronto empezaremos a ver más cosas prácticas.
MODELADO ORIENTADO A OBJETOS
El dominio de aplicación representa todos los aspectos del problema del usuario al desarrollar un sistema. Esto incluye el ambiente físico, los usuarios y otras personas, sus procesos de trabajo, etc. Es crítico que los analistas y desarrolladores comprendan el dominio de aplicación de un sistema para realizar con efectividad la tarea que pretenden. Toma en cuenta que el dominio de aplicación cambia a lo largo del tiempo conforme cambian los procesos de trabajo y las personas.
El dominio de solución es el espacio de todos los sistemas posibles. El dominio de solución es mucho más rico y volátil que el dominio de aplicación. Ésto se debe a las tecnologías emergente (también llamadas facilitadores de tecnología), a cambios conforme madura la tecnología de implementación o a una mejor compresión de la tecnología de implementación por parte de los desarrolladores cuando construyen el sistema. El modelado del dominio de la solución representa las actividades de diseño del sistema y diseño de objetos del proceso de desarrollo. Observa que la entrega del sistema puede cambiar el dominio de aplicación conforme a los usuarios desarrollan nuevos procesos de trabajo para acomodar el sistema.
El análisis orientado a objetos está interesado en el modelado del dominio de aplicación. El diseño orientado a objetos está interesado en el modelado del dominio de solución. Ambas actividades de modelado usan las mismas representaciones (es decir, clases y objetos). En el análisis y diseño orientados a objetos, el modelo del dominio de aplicación también es parte del modelo del sistema. Por ejemplo, un sistema de control de tráfico aéreo tiene una clase ControlarTrafic para representar a los usuarios individuales, sus preferencias e información de bitácora. El sistema también tiene una clase Aeronave para representar la información asociada con la aeronave a la que se le está dando seguimiento. ControlarTrafico y Aeronave son conceptos del dominio de aplicación que están codificados dentro del sistema.
El modelado del dominio de aplicación y del dominio de solución con una sola notación tiene ventajas y desventajas. por un lado puede ser poderoso: las clases del dominio de solución que representan conceptos de la aplicación pueden ser seguidas hacia el dominio de aplicación. Además estas clases pueden ser encapsuladas en subsistemas independientes de otros cobnceptos de instrumentación (por ejemplo, la interfaz de usuario y la tecnología de base de datos) y empacados en una herramienta reutilizable de clases de dominio. Por otro lado, el uso de una sola motación puede provocar confusión, debido a que elimina la distinción entre el mundo real y su modelo. El dominio de sistema debe ser más simple y estar orientado hacia la solución. Para resolver este asunto usamos una sola notación y, cuando hay ambigüedad, hacemos distinciones entre los dos dominios. En la mayoría de los casos hacemos referencia al modelo (por ejemplo, "una Aeronave está compuesta de Manifiesto y PlanVuelo" es una declaración acerca del modelo).
HERENCIA
La herencia nos permite crear una relación jerarquica entre las clases usando subclases. Una subclase hereda atributos y métodos de su superclase. Por ejemplo, un carro y una bicicleta tienen cosas en común. Podríamos usar una clase vehículo que contenga un atributo color y un método mover, y entonces hacer que nuestras clases carro y bicicleta herenden de vehículo.
Con la herencia, puedes crear y agregar cosas a las clases existentes. De una simple clase base, puedes derivar clases más complejas y especializadas como sea necesario. Esto hace tu código más reusable, que es una de las grandes ventajas de la POO.
El usar la herencia puede ahorrarnos trabajo si los métodos pueden ser escritos en una superclase una sola vez, en lugar de escribirlos muchas veces en diferentes subclases. También puede permitirnos modelar las relaciones del mundo real de una forma más adecuada. Si la expresión sobre dos clases tiene sentido con "es un(a)" entre las clases, se puede decir que la herencia es adecuada. La expresión "un carro es un vehículo" tiene sentido, pero la sentencia "un vehículo es un carro" no es correcta porque no todos los vehículos son carros. Por lo tanto, el carro puede heredar de vehículo.
POLIMORFISMO
Un lenguaje orientado a objetos debe soportar el polimorfismo, lo que significa que clases diferentes pueden tener comportamientos diferentes oara el mismo método. SI por ejemplo una clase carro y una clase bicicleta, ambas pueden tener diferentes métodos llamados mover.
El polimorfismo es más una caracterśitica de los comportamientos que de los objetos. Una comparación con el mundo real es la de los verbos en los idiomas, que son equivalentes a los métodos. Considera las formas en que una bicicleta puede ser utilizada en la vida real. Puede limpiarla, moverla, desambrarla, repararla, o pintarla, entre otras cosas.
Estos verbos describen acciones genéricas porque no sabes que tipo de objetos están siendo afectados. (Este tipo de abstracción de objetos y acciones es una de las caracterśiticas distintivas de la inteligencia humana.)
Por ejemplo, mover una bicicleta requiere de acciones completamente diferentes de aquellas requeridas para mover un carro, aunque los conceptos sean similares. El verbo mover puede ser asociado con un conjunto particular de acciones solo cuando se conoce al objeto que esta siendo afectado.
EL ENCAPSULAMIENTO
Al empaquetamiento de las variables de un objeto con la protección de sus métodos se le llama encapsulamiento. Típicamente, el encapsulamiento es utilizado para esconder detalles de la puesta en práctica no importantes de otros objetos. Entonces, los detalles de la puesta en práctica pueden cambiar en cualquier tiempo sin afectar otras partes del programa.
El encapsulamiento de variables y métodos en un componente de software ordenado es, todavía, una simple idea poderosa que provee dos principales beneficios a los desarrolladores de software:
El encapsulamiento de variables y métodos en un componente de software ordenado es, todavía, una simple idea poderosa que provee dos principales beneficios a los desarrolladores de software:
Modularidad, esto es, el código fuente de un objeto puede ser escrito, así como darle mantenimiento, independientemente del código fuente de otros objetos. Así mismo, un objeto puede ser transferido alrededor del sistema sin alterar su estado y conducta.
Ocultamiento de la información, es decir, un objeto tiene una "interfaz publica" que otros objetos pueden utilizar para comunicarse con él. Pero el objeto puede mantener información y métodos privados que pueden ser cambiados en cualquier tiempo sin afectar a los otros objetos que dependan de ello.
Los objetos proveen el beneficio de la modularidad y el ocultamiento de la información. Las clases proveen el beneficio de la reutilización. Los programadores de software utilizan la misma clase, y por lo tanto el mismo código, una y otra vez para crear muchos objetos.
En las implantaciones orientadas a objetos se percibe un objeto como un paquete de datos y procedimientos que se pueden llevar a cabo con estos datos. Esto encapsula los datos y los procedimientos. La realidad es diferente: los atributos se relacionan al objeto o instancia y los métodos a la clase. ¿Por qué se hace así? Los atributos son variables comunes en cada objeto de una clase y cada uno de ellos puede tener un valor asociado, para cada variable, diferente al que tienen para esa misma variable los demás objetos. Los métodos, por su parte, pertenecen a la clase y no se almacenan en cada objeto, puesto que sería un desperdicio almacenar el mismo procedimiento varias veces y ello va contra el principio de reutilización de código.
CLASES DE EVENTO, EVENTOS Y MENSAJES
Las clases de evento son abstracciones que representan un tipo de evento para el cual el sistema tiene una respuesta común.
Un evento, una instancia de la clase de evento, es una ocurrencia relevante en el sistema.
Por ejemplo, un evento puede ser un estímulo dado por un actor (en notación UML los actores son entidades externas que interactúan con el sistema), un transcurso de tiempo o el envío de un mensaje entre dos objetos. El envío de un mensaje es el mecanismo por el cual el objeto que lo envía solicita la ejecución de una operación en el objeto que lo recibe. El mensaje esta compuesto por un nombre y varios argumentos.
El objeto receptor hace corresponder el nombre del mensaje con alguna de sus operaciones y le pasa los argumentos a la operación. Cualquier resultado se regresa al objeto que lo envió.
Un evento, una instancia de la clase de evento, es una ocurrencia relevante en el sistema.
Por ejemplo, un evento puede ser un estímulo dado por un actor (en notación UML los actores son entidades externas que interactúan con el sistema), un transcurso de tiempo o el envío de un mensaje entre dos objetos. El envío de un mensaje es el mecanismo por el cual el objeto que lo envía solicita la ejecución de una operación en el objeto que lo recibe. El mensaje esta compuesto por un nombre y varios argumentos.
El objeto receptor hace corresponder el nombre del mensaje con alguna de sus operaciones y le pasa los argumentos a la operación. Cualquier resultado se regresa al objeto que lo envió.
LAS CLASES (¿TENDRÁN CLASE Y FINURA?)
Una clase es una entidad que declara conjuntos de objetos similares.
En programación una clase es como una plantilla para un tipo particular de objetos donde cada uno de estos objetos tendrá un estado propio, aunque podrán hacer operaciones comunes. Un objeto es una instancia de clase.
Una clase es como una caja negra, se puede saber que es lo que hace. Por otro lado las instancias de clase ocupan espacio en memoria y debido a que existen en el tiempo deben realizar dos operaciones básicas, que son crearse y destruirse, por lo tanto un constructor es la operación que creará un objeto y/o inicializará su estado, mientras que un destructor es la operación que liberará el estado de un objeto y lo destruirá.
En programación una clase es como una plantilla para un tipo particular de objetos donde cada uno de estos objetos tendrá un estado propio, aunque podrán hacer operaciones comunes. Un objeto es una instancia de clase.
Una clase es como una caja negra, se puede saber que es lo que hace. Por otro lado las instancias de clase ocupan espacio en memoria y debido a que existen en el tiempo deben realizar dos operaciones básicas, que son crearse y destruirse, por lo tanto un constructor es la operación que creará un objeto y/o inicializará su estado, mientras que un destructor es la operación que liberará el estado de un objeto y lo destruirá.
CONOZCAMOS OTROS CONCEPTOS
ARTIBUTO
Son las características que describen el estado del objeto, consta de dos partes, nombre del atributo y el valor del atributo.
MÉTODOS
Son las operaciones que afectan el comportamiento asociado a un objeto, la ejecución de un método cambia el estado del objeto.
Ejemplo:
Objeto: Ventana
Atributos: Tamaño (valor: 800 x 600) ; Color (valor: Azul)
Métodos: MaximizarVentana, MinimizarVentana, CerrarVentana, CambiarColor
Cada método consta de un nombtre y un cuerpo que realiza la acción la cúal desde el punto de vista de un lenguaje orientado a objetos es el bloque de código que ejecuta tal acción.
Son las características que describen el estado del objeto, consta de dos partes, nombre del atributo y el valor del atributo.
MÉTODOS
Son las operaciones que afectan el comportamiento asociado a un objeto, la ejecución de un método cambia el estado del objeto.
Ejemplo:
Objeto: Ventana
Atributos: Tamaño (valor: 800 x 600) ; Color (valor: Azul)
Métodos: MaximizarVentana, MinimizarVentana, CerrarVentana, CambiarColor
Cada método consta de un nombtre y un cuerpo que realiza la acción la cúal desde el punto de vista de un lenguaje orientado a objetos es el bloque de código que ejecuta tal acción.
BUENO, TODO VA BIEN, PERO ¿QUÉ ES UN OBJETO?
Un objeto es una entidad que contiene las características que describen el estado de un objeto del mundo real y las acciones que se asocian con el objeto. Se designa por un nombre o identificador del objeto y se describe mediante una notación gráfica que varia de acuerdo a la metodología que se esté aplicando.
¿QUÉ ES LA PROGRAMACIÓN ORIENTADA A OBJETOS?
La programación orientada a objetos (También llamada POO) se conoce como un nuevo paradigma de programación en el mundo.
No existe ningún estilo de programación que sea la última palabra como metodología de programación, ya que cada uno de ellos tiene sus ventajas t desventajas.
La orientación a objetos reune la simulación de situaciones del mundo real. Las entidades centrales son los objetos que son tipos de datos que se encapsulan con el mismo nombre, las estructuras de datos y las operaciones que manipulan estos datos.
El atractivo intuitivo de la orientación a objetos es que proporciona conceptos y herramientas con las cuales se modela y representa el mundo real tan fielmente como sea posible.
La programación orientada a objetos según Grady Booch es "Un método de implantación en el que los programas se organizan como colecciones cooperativas de objetos cada uno de los cuales representa una instancia de clase u objeto, y cuyas clases son todas miembro de una jerarquía de clases unidas mediante relaciones de herencia.
MÁS SOBRE LA HISTORIA DE JAVA
JAVA es un lenguaje de Programación Orientada a Objetos, creado por James Gosling y otros ingenieros de Sun Microsystems. Fue desarrollado en 1991, como parte del proyecto Green, y anunciado oficialmente el 23 de mayo de 1995, en SunWorld; siendo liberado en noviembre del mismo año.
Gosling y compañia inicialmente diseñaron Java, que fue llamado Oak en un principio (en honor a un árbol afuera de la oficina de Gosling), para reemplazar C++. Las especificaciones de JAVA son mantenidas por la comunidad a través de la "JAVA Community Process" que es administrada por Sun. JAVA es una marca registrada de Sun.
PASADO Y PRESENTE: LA INTERESANTE HISTORIA DE JAVA
PASADO
El lenguaje JAVA fue originalmente pensado para realizar pequeños programas que pudieran utilizarse en cualquier tipo de electrodoméstico, como neveras u hornos micro ondas, pero la idea no tuvo mucho éxito. Según cuentan, alguien rescató la idea y la planteó para usarla en el entorno de Internet, y ese pequeño impulso convirtió a JAVA en un lenguaje potente, robusto, seguro y ampliamente utilizado a nivel mundial, gracias además, es gratuito.
PRIMER ROUND
Se puede considerar que uno de los primeros triunfos de JAVA fue que se integró en el navegador de Internet llamado Netscape, esto permitía ejecutar programas dentro de una página web, lo cual hasta entonces era imposible con el lenguaje HTML, (el cual es el lenguaje con el cual están hechas las páginas de Internet).
PRESENTE
En estos momentos el lenguaje JAVA se utiliza en forma amplia ya que casi cualquier cosa que se puede hacer en cualquier otros lenguaje se puede hacer también con JAVA, y la verdad muchas veces JAVA demuestra muchas más ventajas. Pues con JAVA se pueden programar páginas web dinámicas, con accesos a bases de datos, utilizando XML y con cualquier tipo de conexión de red entre cualquier sistema.
En conclusión, cualquier aplicación que deseemos programar se puede hacer utilizando Java.
UNA RAZÓN IMPORTANTE PARA USAR JAVA
Una de las principales características que hace resaltar a JAVA y por la cual ha cobrado muchísima importancia, es que es un lenguaje independiente de la plataforma. Esto quiere decir que al realizar un programa en JAVA, este deberá funcionar de forma satisfactoria en cualquier computador del mundo, aunque es posible que en algunos casos se deban realizar pequeños ajustes.
La independencia de plataforma es una ventaja importantísima y significativa en el desarrollo de software, pues antes se debía desarrollar un programa para cada sistema operativo (Windows, Linux, Apple, otros) sin contar las versiones de cada uno de estos. Esto puede hacer que un software sencillo llegue a tener unos costos de desarrollo demasiado altos y un grado de mantenimeinto inmenso, sin contar la oportunidad de que se presenten muchos errores de prrogramación por cuestiones relativas a cada sistema operativo.
Me imaginoq ue te preguntarás, ¿cómo hace JAVA para crar programas independientes de plataforma?, pues es muy sencillo. JAVA posee una Máquina de Java para cada sistema operativo, el cual es un software que hace las veces de puente entre el sistema operativo y el programa de Java y permite que este se ejecute sin problemas.
¿QUÉ ES JAVA?
Java es un lenguaje de programación muy poderoso, con el que podemos realizar cualquier programa que deseemos. En estos momentos JAVA es un lenguaje que ha adquirido mucha importancia y se ha extendido su uso ampliamente en el mundo.
La licencia de uso de JAVA es gratuita, o sea, no tienes que pagar por hacer programas en JAVA.
JAVA ha sido desarrollado por la compañía Sun Microsystems, la cual le da todo su respaldo para que este lenguaje siempre esté a la altura de los grandes retos tecnológicos.
Subscribe to:
Posts (Atom)