Este documento describe los conceptos fundamentales de la tecnología de componentes. Explica que un componente es una unidad reutilizable de software que ofrece servicios a través de interfaces y que puede ser ensamblado con otros componentes. Luego, detalla los tipos de componentes JavaBeans y DLL, y cómo crear y usar componentes visuales en aplicaciones.
3. OBJETIVOS
Entender los conceptos de componentes.
Desarrollar programas orientados a
componentes.
Emplear JavaBeans y DLLS (Crear
Componentes)
Comprender las características de un
componente.
4. CONTENIDO
1. TECNOLOGÍA DE COMPONENTES
1.1. Programación orientada a componentes.
1.2. Características de un componente.
1.3. JavaBeans.
1.4. Aspectos avanzados de las propiedades.
1.5. Generación de eventos.
1.6. Componentes visuales.
1.7. Descripción detallada de Beans.
1.8. DLLs.
5. INTRODUCCIÓN
Los continuos avances en la Informática y las
Telecomunicaciones están haciendo cambiar la forma
en la que se desarrollan actualmente las aplicaciones
software:
Aumento de la potencia de los ordenadores.
Abaratamiento de los costos del hardware.
Redes de datos de cobertura global.
Nuevos paradigmas de programación.
7. Los productos excedían la estimación de costes,
había retrasos en las entregas, las prestaciones
no eran las solicitadas, el mantenimiento se hacía
extremadamente complicado y a veces imposible,
las modificaciones tenían un coste.
CRISIS DEL SOFTWARE
11. Desarrollo de Software Basado en
Componentes
Ensamblaje de partes de software previamente
elaboradas.
Inspirada en los procesos de producción de sistemas
físicos: producción de aviones, vehículos,
computadores, aparatos electrónicos, etc.
Fundamentada en la Reutilización de Software.
Orientar esfuerzos hacia una industria de partes.
12.
13. Programación Orientada a Componentes (POC)
La POC nace con el objetivo de construir un
mercado global de componentes software,
cuyos usuarios son los propios desarrolladores
de aplicaciones que necesitan reutilizar
componentes ya hechos y probados para
construir sus aplicaciones de forma más rápida
y robusta.
14. ComponenteCOMPONENTE
“Un componente es una unidad de
composición de aplicaciones software, que
posee un conjunto de interfaces y un conjunto
de requisitos, y que ha de poder ser
desarrollado, adquirido, incorporado al sistema
y compuesto con otros componentes de forma
independiente, en tiempo y espacio”
[Szyperski, 1998].
15. Definición de los 7 criterios [Meyer,1999]:
1. Puede ser usado por otros elementos de
SW.
16. Definición de los 7 criterios [Meyer,1999]:
2. Puede ser usado por los clientes sin la
necesidad de la intervención del
desarrollador.
17. Definición de los 7 criterios [Meyer,1999]:
3. Incluye las especificaciones de todas las
dependencias.
4. Incluye documentación de las
funcionalidades que ofrece.
5. Se puede entender su funcionamiento en
base a las especificaciones.
18. Definición de los 7 criterios [Meyer,1999]:
6. Se puede acoplar a otros componentes.
7. Puede ser incorporado a un sistema de
manera suave y rápida.
19. Interfaz de Componentes
Los componentes se comunican uno con el otro
por medio de interfaces. Una interfaz
proporciona los servicios que otros
componentes pueden utilizar y cómo pueden
hacerlo.
El cliente no necesita saber sobre los
funcionamientos internos del componente.
20. Un aspecto crítico a la hora de construir
sistemas complejos es el diseño de la
estructura del sistema.
Arquitectura Software
21. Arquitectura Software
Entendemos por Arquitectura
Software la representación de
alto nivel de la estructura de un
sistema o aplicación, que
describe las partes que la
integran, las interacciones
entre ellas, los patrones que
supervisan su composición,
y las restricciones a la hora
de aplicar esos patrones.
22. 1. Comprender y manejar la estructura de
las aplicaciones complejas.
Arquitectura Software
23. 2. Reutilizar dicha estructura (o partes de
ella) para resolver problemas similares.
Arquitectura Software
24. 3. Planificar la evolución de la aplicación,
identificando sus partes mutables e
inmutables, así como los costes de los
posibles cambios.
Arquitectura Software
25.
26. “A Java Bean is a reusable software
component that can be
manipulated visually in a builder tool”
JavaBeans
27. Un JavaBean es una clase puramente Java
desarrollada con unos patrones de diseño bien
definidos, que:
Permiten que sea usada en otras aplicaciones.
Permiten gestionar los componentes de forma
automática.
JavaBeans
Es un modelo sencillo, soportado directamente por
el entorno Java (multiplataforma).
Ejemplos de JavaBeans: Librerías gráficas AWT
(Sun), y SWT (Eclipse).
28. JavaBeans representa una implementación del
modelo Propiedad-Evento-Método.
Un componente JavaBean se define a través de :
Las propiedades que expone
Los métodos que ofrece
Los eventos que atiende o genera
Modelo de componentes JavaBeans
29. Soporte para “Introspection”: El bean tiene que ofrecer la
información necesaria para que la herramienta de diseño
pueda analizar sus características de forma opaca.
Características JavaBeans
30. Soporte para “Customization”: La herramienta de
construcción de la aplicación puede adaptar la apariencia o
comportamiento del bean a la aplicación.
Características JavaBeans
31. Soporte para Persistencia: El estado de un bean
personalizado puede ser almacenado para ser utilizado más
tarde.
Características JavaBeans
32. Soporte para Eventos: Los beans se comunican a través
del envío y recepción de eventos.
Características JavaBeans
33. Debe tener un constructor sin argumentos.
Sus atributos de clase deben ser privados.
Sus propiedades deben ser accesibles
mediante métodos get y set que siguen una
convención de nomenclatura estándar.
Debe ser serializable.
Patrón de diseño básico de un JavaBean
43. CREACIÓN DE COMPONENTES VISUALES
La mayoría de los componentes que se utilizan
son visuales, es decir, implementan elementos de
la interfaz de usuario.
●Construir un nuevo componente visual (basado
en Swing) consiste en construir una clase que
herede de la clase JComponent.
49. DESCRIPCIÓN DETALLADA DE BEANS
El mecanismo automático de introspección es
suficiente para que el entorno obtenga toda la
información de propiedades y eventos del Bean.
• Sin embargo hay otros aspectos adicionales no
contemplados:
El Icono que va a representar el Bean en la
paleta.
La descripción de cada una de las propiedades.
50. DESCRIPCIÓN DETALLADA DE BEANS
Especificar qué propiedades deben ser
visualizadas en el editor de propiedades.
El cuadro de propiedades tiene varios
apartados: propiedades principales, otras
propiedades, layout, accesibilidad, etc
51. DESCRIPCIÓN DETALLADA DE BEANS
●Junto a un bean es posible crear una clase auxiliar
<NombreBean>BeanInfo que va a proporcionar toda
esta información. Esta clase debe extender la clase
base SimpleBeanInfo.
●NetBeans permite generar automáticamente esta
clase y realizar gran parte de su configuración de
manera interactiva.
65. BEANS WEB
Un bean en JSP se puede almacenar en uno de los
siguientes contextos:
page: asociado a la página JSP y a una petición HTTP
concreta, desaparece al finalizar el procesado de la
página.
request: asociado a una petición HTTP concreta,
compartida entre todos los JSPs que atiendan dicha
petición, desaparece al finalizar el procesado de la
petición.
session: asociado a la sesión, compartida por todos los
JSPs para todas las peticiones de una misma sesión,
desaparece al finalizar la sesión.
application: asociado al contexto de la aplicación Web,
compartido por todos los JSPs de la aplicación en todas
las peticiones.