Componente de software
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.
Definiciones
Según el OMG
En la especificación UML, es una unidad modular con interfaces bien definidas, que es reemplazable dentro del contexto.[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.
Características
Un componente de software debe poseer las siguientes características:
- Ser reutilizable.
- Ser intercambiable.
- Poseer interfaces definidas.
- Ser cohesivos.
Implementaciones
Los componentes de software son la piedra angular de diferentes paradigmas de programación. Esto ha generado la aparición en el mercado de diferentes especificaciones que plantean la forma de construir, utilizar y distribuir componentes. Entre las más extendidas se encuentran:
Estándares
- CORBA (Common Object Request Broker Architecture) del Object Management Group (OMG).
- JavaBean, Servlets y Enterprise JavaBeans de Oracle.
- OSGi (Open Services Gateway Initiative) de OSGi Alliance.
- Component Object Model (COM), COM+ y Distributed Component Object Model (DCOM) de Microsoft.
Paradigmas
Los componentes de software son útiles en:
- Programación Orientada a Componentes (POC)
- Programación Orientada a Objetos (POO)
- Arquitectura Orientada a Servicios (SOA)[2]
Véase también
- Ingeniería de software basada en componentes
- Object Management Group
- Programación orientada a componentes
Referencias
- ↑ OMG (2011). OMG Unified Modeling Language (OMG UML), Superstructure, V2.4 Archivado el 14 de julio de 2011 en Wayback Machine. pág. 147.
- ↑ Components and SOA.
Enlaces externos