Componentes
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]