Saltar la navegación

1.- Concepto de componente. Características.

Caso práctico

María continúa explicando la tecnología de componentes hardware a Juan:

—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, en la creación de sistemas hardware es muy habitual basarse en componentes pequeños con funciones específicas, como la BIOS, las tarjetas de memoria, los microprocesadores, etc. Los fabricantes de estos componentes están muy especializados, lo que les permite ser muy competitivos porque pueden trabajar sobre sus piezas día a día sin modificar demasiado cómo se insertan en el sistema general (su interfaz), lo que redunda en el aumento de la calidad.

Imagen que muestra un dibujo formado por un cuadrado de borde grueso azul. En cada uno de sus cuatro lados aparecen siete líneas cortas y gruesas de color naranja. En su interior, de fondo blanco, podemos observar dos figuras redondas de borde zigzagueante que simbolizan el entramado de un engranaje. Debajo de ellas hay un rectángulo de fondo beige con dos líneas marrones en su interior que se cruzan.

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 eventos ante los que responde y los métodos que ejecuta ante dichos eventos.

Citas para pensar

Un JavaBean es un componente software reusable que puede ser manipulado visualmente mediante una herramienta gráfica. )(Especificación de JavaBeans, Sun 1997

Los componentes tienen una interfaz bien definida formada por sus propiedades y métodos, y se distribuyen mediante un paquete instalable que contiene todo lo necesario para su funcionamiento. Además, deben ser independientes de otras bibliotecas o componentes.

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 persistencia, es decir, debe poder guardar el estado de sus propiedades cuando han sido modificadas.
  • Debe tener introspección, 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 y 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.

Conjunto de implementaciones funcionales, codificadas en un lenguaje de programación, que ofrece una interfaz bien definida para la funcionalidad que se invoca.

Propiedad de los datos para que estos sobrevivan de alguna manera.

Es la capacidad de algunos lenguaje de programación orientado a objetos de determinar el tipo de un objeto en tiempo de ejecución.

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.

Autoevaluación

Pregunta

El uso de componentes software implica disminuir del coste de producción de software.

Respuestas

Verdadero.

Falso.

Retroalimentación