Un componente de software es una unidad modular de software que encapsula una funcionalidad específica. [ 1 ] Las características deseadas de un componente son la reutilización y la mantenibilidad . [ 1 ]
Valor
Los componentes permiten a los desarrolladores de software ensamblar programas con piezas fiables, en lugar de escribir código para cada aspecto. Esto hace que la implementación se asemeje más al ensamblaje en fábrica que a la construcción a medida.
Atributos
Entre los atributos deseables de un componente se incluyen, entre otros:
- Cohesivo : engloba funcionalidades relacionadas .
- Sustituible : puede ser reemplazado por otro componente con la misma interfaz.
Tercero
Algunos componentes son desarrollados internamente por la misma organización o equipo que crea el sistema de software . Otros son de terceros , desarrollados en otro lugar y ensamblados en el sistema de software. [ 2 ]
Ingeniería de software basada en componentes
Para sistemas a gran escala, el desarrollo basado en componentes fomenta un proceso disciplinado para gestionar la complejidad . [ 3 ]
Estructura
Algunos componentes se ajustan a una tecnología de marco que permite utilizarlos de una manera conocida. Algunos ejemplos son: CORBA , COM , Enterprise JavaBeans y .NET Framework . [ 4 ] [ 5 ]
Modelado

El diseño de componentes a menudo se modela visualmente. En el Lenguaje Unificado de Modelado (UML) 2.0, un componente se muestra como un rectángulo, y una interfaz se muestra como una piruleta para indicar una interfaz proporcionada y como un conector para indicar el consumo de una interfaz.
Historia
La idea de componentes de software reutilizables fue promovida por Douglas McIlroy en su presentación en la Conferencia de Ingeniería de Software de la OTAN de 1968. [ 6 ] (Uno de los objetivos de esa conferencia era resolver la llamada crisis del software de la época). En la década de 1970, McIlroy puso en práctica esta idea con la adición de la función de tubería al sistema operativo Unix .
Brad Cox perfeccionó el concepto de componente de software en la década de 1980. [ 7 ] Intentó crear una infraestructura y un mercado para componentes reutilizables de terceros inventando el lenguaje de programación Objective-C . [ 8 ]
IBM introdujo el Modelo de Objetos del Sistema (SOM) a principios de la década de 1990. [ 9 ]
Microsoft introdujo el Modelo de Objetos Componentes (COM) a principios de la década de 1990. Microsoft desarrolló muchas tecnologías de componentes específicas de dominio sobre COM, incluyendo el Modelo de Objetos Componentes Distribuidos (DCOM), la Vinculación e Incrustaciones de Objetos (OLE) y ActiveX.
Referencias
- 1 2 Pandey, Pankaj (11 de julio de 2023). "Notas del tutorial: Componentes y conectores de software" . medium.com . Recuperado el 14 de mayo de 2024 .
- ↑ Yadav, Sunny (16 de abril de 2024). "Tipos de componentes de software: con ejemplos" . LinkedIn . Consultado el 14 de mayo de 2024 .
- ↑ Douglas C. Schmidt . "Por qué la reutilización de software ha fracasado y cómo hacer que funcione para usted" . Consultado el 14 de mayo de 2024 .
- ↑ Crnkovic, I.; Sentilles, S.; Vulgarakis, A.; Chaudron, MRV (2011). "Un marco de clasificación para modelos de componentes de software". IEEE Transactions on Software Engineering . 37 (5): 593– 615. doi : 10.1109/TSE.2010.83 . S2CID 15449138 .
- ^ Lau, Kung-Kiu; Wang, Zheng (2007). "Modelos de componentes de software". Transacciones IEEE sobre ingeniería de software . 33 (10): 709– 724. doi : 10.1109/TSE.2007.70726 . ISSN 0098-5589 .
- ↑ McIlroy, Malcolm Douglas (enero de 1969). "Componentes de software producidos en masa" (PDF) . Ingeniería de software: Informe de una conferencia patrocinada por el Comité Científico de la OTAN, Garmisch, Alemania, 7-11 de octubre de 1968. División de Asuntos Científicos, OTAN. pág. 79.
- ↑ Rainer Niekamp. "Arquitectura de componentes de software" (PDF) . Gestión de Congresos - CIMNE/Instituto de Computación Científica, TU Braunschweig. pág. 4. Archivado del original (PDF) el 28 de marzo de 2012. Consultado el 29 de julio de 2011.
El concepto moderno de componente de software fue definido en gran medida por Brad Cox de Stepstone, => lenguaje de programación Objective-C.
- ↑ Brad Cox (1991). Programación orientada a objetos: un enfoque evolutivo . Addison Wesley. ISBN 0-201-54834-8.
- ↑ Raphael Gfeller (9 de diciembre de 2008). "Actualización de aplicaciones basadas en componentes" . HSR - Hochschule für Technik Rapperswill. pág. 4. Consultado el 29 de julio de 2011. En
1990, IBM inventó su Modelo de Objetos del Sistema. En 1990, como reacción, Microsoft lanzó OLE 1.0. Controles personalizados OLE (OCX).
- Arquitectura de software
- Desarrollo de software
- Ingeniería de software