1.- Concepto de componente. Características.
Caso práctico
Ada ha escuchado la conversación de sus compañeros, e interviene para explicarles qué es un componente:
-Un componente es una pieza de hardware o software pequeña, que tiene un comportamiento específico y dispone de una interfaz que permite que se inserte fácilmente. Por ejemplo, una etiqueta o un botón que se basan en las etiquetas o botones estándares de la paleta de NetBeans adaptados a las necesidades específicas de una aplicación y que puede ser reutilizada es un componente. Tienen la ventaja de que pueden especializarse mucho y al estar probadas de antemano sabemos que su funcionamiento es correcto por lo que facilitan la programación de aplicaciones nuevas.
Un componente software es una clase creada para ser reutilizada y que puede ser manipulada por una herramienta de desarrollo de aplicaciones visual. Se define por su estado que se almacena en un conjunto de propiedades, las cuales pueden ser modificadas para adaptar el componente al programa en el que se inserte. También tiene un comportamiento que se define por los eventosEventoSuceso que ocurre en un sistema, como puede ser un clic, minimizar una ventana, etc. ante los que responde y los métodos que ejecuta ante dichos eventos.
Un subconjunto de los atributos y los métodos forman la interfaz del componente.
Para que pueda ser distribuida se empaqueta con todo lo necesario para su correcto funcionamiento, quedando independiente de otras bibliotecasBibliotecaConjunto de subprogramas usados para el desarrollo de software, no siendo ejecutables directamente. o componentes.
Citas para pensar
Un componente es una unidad de composición de 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 de otros componentes, de forma independiente en tiempo y en espacio.
Szypersky, 1998
Para que una clase sea considerada un componente debe cumplir ciertas normas:
- Debe poder modificarse para adaptarse a la aplicación en la que se integra.
- Debe tener persistenciaPersistenciaCaracterística que permite almacenar el estado de una clase para que perdure a través del tiempo., es decir, debe poder guardar el estado de sus propiedades cuando han sido modificadas.
- Debe tener introspecciónIntrospecciónPropiedad de un componente del diseño de interfaces, mediante la cual es posible visualizar el interior del mismo; esto es, sus propiedades, métodos y eventos disponibles., es decir, debe permitir a un IDE que pueda reconocer ciertos elementos de diseño como los nombres de las funciones miembros o métodos y definiciones de las clases, y devolver esa información.
- Debe poder gestionar eventos.
El desarrollo basado en componentes tiene, además, las siguientes ventajas:
- Es mucho más sencillo, se realiza en menos tiempo y con un coste inferior.
- Se disminuyen los errores en el software ya que los componentes se deben someter a un riguroso control de calidad antes de ser utilizados.
Reflexiona
Ya has creado algunas interfaces gráficas con diferentes herramientas como NetBeans o Designer de QT. En ambos casos, el procedimiento consiste en seleccionar los controles gráficos de la interfaz y posicionarlos en un lienzo que será la interfaz. Todos estos controles cumplen con los requisitos para ser componentes, de hecho lo son, son elementos reutilizables que pueden ser manejados por una herramienta de desarrollo visual. Por ejemplo, se puede modificar su tamaño o color para adaptarlo a la interfaz y estos cambios permanecen después de cerrarla, además tienen una interfaz formada por un conjunto de métodos y propiedades accesibles desde la paleta de propiedades y la capacidad de responder a eventos, por ejemplo el clic del ratón.