Un componente de software es una unidad modular de un programa software con interfaces y dependencias bien definidas que permiten ofertar o solicitar un conjunto de servicios o funcionales. La «programación orientada a componentes» (que también es llamada basada en componentes) es una rama de la ingeniería del software, con énfasis en la descomposición de sistemas ya conformados en componentes funcionales o lógicos con interfaces bien definidas usadas para la comunicación entre componentes.

Se considera que el nivel de abstracción de los componentes es más alto que el de los objetos y por lo tanto no comparten un estado y se comunican intercambiando mensajes que contienen datos.

Definiciones

Un componente de software es un elemento de un sistema que ofrece un servicio predefinido, y es capaz de comunicarse con otros componentes, un objeto escrito de acuerdo a unas especificaciones. No importa qué especificación sea ésta, siempre y cuando el objeto se adhiera a la especificación. Solo cumpliendo correctamente con esa especificación es que el objeto se convierte en componente y adquiere características como reusabilidad.


Según el OMG

En la especificación `[[ ]]`, es una unidad modular con interfaces bien definidas, que es reemplazable dentro del cont(2011).[1]​ Así, un componente define su comportamiento en términos de interfaces proveídas y requeridas; y dicho componente será totalmente reemplazable por otro que cumpla con las interfaces declaradas.

UML no coloca ninguna restricción respecto a la granularidad del componente, de esta forma un componente podrá ser tan simple como un convertidor de moneda o tan complejo como un sistema de ayuda semántico.

Según el WCOP

Fruto del primer Workshop Component Oriented Programming (WCOP) o "Taller sobre Programación Orientada a Componentes" realizado en 1996, se acuñó la definición: unidad de composición con interfaces especificadas contractualmente, con dependencias explícitas de acuerdo al contexto antes dicho. Un componente de software puede ser desplegado de forma independiente y puede participar en composiciones de terceras partes.[1]

Referencias

  1. https://es.m.wikipedia.org/wiki/Componente_de_software