stringtranslate.com

Ingeniería de software basada en componentes

Un ejemplo de dos componentes expresados ​​en UML 2.0. El componente de pago, responsable de facilitar el pedido del cliente, requiere que el componente de procesamiento de tarjetas cargue la tarjeta de crédito/débito del cliente (funcionalidad que proporciona esta última ).

La ingeniería de software basada en componentes ( CBSE ), también llamada desarrollo basado en componentes ( CBD ), es un estilo de ingeniería de software que tiene como objetivo construir software a partir de componentes modulares débilmente acoplados . Enfatiza la separación de preocupaciones entre las diferentes partes de un sistema de software .

Definición y características de los componentes.

Un componente de software individual es un paquete de software , un servicio web , un recurso web o un módulo que encapsula un conjunto de funciones o datos relacionados.

Los componentes se comunican entre sí a través de interfaces . Cada componente proporciona una interfaz (llamada interfaz proporcionada ) a través de la cual otros componentes pueden usarlo. Cuando un componente utiliza la interfaz de otro componente, esa interfaz se denomina interfaz usada.

En las ilustraciones de UML de este artículo, las interfaces proporcionadas están representadas por símbolos de paleta, mientras que las interfaces utilizadas están representadas por símbolos de socket abierto.

Un ejemplo sencillo de varios componentes de software, representados dentro de un hipotético sistema de reserva de vacaciones representado en UML 2.0.

Los componentes deben ser sustituibles , lo que significa que un componente debe ser reemplazable por otro que tenga las mismas interfaces sin dañar el resto del sistema.

Los componentes deben ser reutilizables .

Se deben considerar las pruebas de usabilidad basadas en componentes cuando los componentes de software interactúan directamente con los usuarios.

Los componentes deben ser:

Historia

La idea de que el software debería ser componenteizado (construido a partir de componentes prefabricados ) se hizo prominente por primera vez con el discurso de Douglas McIlroy en la conferencia de la OTAN sobre ingeniería de software en Garmisch , Alemania , 1968, titulado Componentes de software producidos en masa . [1] La conferencia se propuso contrarrestar la llamada crisis del software . La posterior inclusión de tuberías y filtros por parte de McIlroy en el sistema operativo Unix fue la primera implementación de una infraestructura para esta idea.

Brad Cox de Stepstone definió en gran medida el concepto moderno de componente de software. [2] Los llamó Software IC y se propuso crear una infraestructura y un mercado para estos componentes inventando el lenguaje de programación Objective-C . (Resume este punto de vista en su libro Programación orientada a objetos: un enfoque evolutivo, 1986).

Los componentes de software se utilizan en dos contextos diferentes y de dos tipos: i) usar componentes como partes para construir un único ejecutable, o ii) cada ejecutable se trata como un componente en un entorno distribuido, donde los componentes colaboran entre sí mediante Internet o intranet. Protocolos de comunicación para IPC (Inter Process Communications). Lo de arriba pertenece al tipo anterior, mientras que lo de abajo pertenece al tipo posterior.

IBM abrió el camino con su Modelo de Objetos del Sistema (SOM) a principios de los años 1990. Como reacción, Microsoft allanó el camino para la implementación real de software de componentes con vinculación e incrustación de objetos (OLE) y Modelo de objetos componentes (COM). [3] A partir de 2010 existen muchos modelos exitosos de componentes de software.

Arquitectura

Una computadora que ejecuta varios componentes de software a menudo se denomina servidor de aplicaciones . Esta combinación de servidores de aplicaciones y componentes de software suele denominarse informática distribuida . Una aplicación típica de esto en el mundo real es, por ejemplo, aplicaciones financieras o software empresarial.

Modelos de componentes

Un modelo de componente es una especificación de las propiedades de los componentes. [4]

En [4] y se proporciona una clasificación de los modelos de componentes existentes . [5] Ejemplos de modelos de componentes son: modelo Enterprise JavaBeans (EJB), modelo de modelo de objetos componentes (COM), modelo .NET , modelo de componentes X-MAN, [6] y modelo de componentes de Common Object Request Broker Architecture (CORBA).

Tecnologías

Ver también

Referencias

  1. ^ 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. pag. 79.
  2. ^ Rainer Niekamp. "Arquitectura de componentes de software" (PDF) . Gestión de Congresos - CIMNE/Instituto de Computación Científica, TU Braunschweig. pag. 4 . Consultado el 29 de julio de 2011 . El concepto moderno de componente de software definido en gran medida por Brad Cox de Stepstone, => lenguaje de programación Objective-C
  3. ^ Raphael Gfeller (9 de diciembre de 2008). "Actualización de aplicación basada en componentes". HSR - Hochschule für Technik Rapperswill. pag. 4 . Consultado el 29 de julio de 2011 . 1990, IBM inventa su modelo de objetos del sistema. 1990, como reacción, Microsoft lanzó OLE 1.0 Controles personalizados OLE (OCX)[ enlace muerto permanente ]
  4. ^ ab Crnkovic, I.; Sentilles, S.; Vulgarakis, A.; Chaudron, MRV (2011). "Un marco de clasificación para modelos de componentes de software". Transacciones IEEE sobre ingeniería de software . 37 (5): 593–615. doi :10.1109/TSE.2010.83. S2CID  15449138.
  5. ^ 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.
  6. ^ Lau, Kung-Kiu; Velasco Elizondo, Perla; Wang, Zheng (2005). "Conectores exógenos para componentes de software". En Heineman, George T.; Crnkovic, Ivica; Schmidt, Heinz W.; Stafford, Judith A.; Szyperski, Clemens; Wallnau, Kurt (eds.). Ingeniería de software basada en componentes . Apuntes de conferencias sobre informática. vol. 3489. Springer Berlín Heidelberg. págs. 90-106. doi :10.1007/11424529_7. ISBN 9783540320494. S2CID  17971442.
  7. ^ MASH define activos como personas, propiedades e información y gestión como seguimiento, control y configuración. Presentado en la conferencia IEEE IoT de 2013 en Mountain View, MASH incluye un IDE completo, un cliente de Android y un tiempo de ejecución. "Canal MASH de YouTube"
  8. ^ Un enfoque orientado a componentes es una forma ideal de manejar la diversidad de software en la electrónica de consumo. El modelo Koala, utilizado para software integrado en televisores, permite la vinculación tardía de componentes reutilizables sin gastos adicionales. [1]
  9. ^ Modelo de componentes para dispositivos integrados como TV desarrollado por Philips basado en un artículo de van Ommering, R.: Koala, un modelo de componentes para software de productos de electrónica de consumo [2] Archivado el 9 de agosto de 2014 en Wayback Machine.
  10. ^ Larsen, John (2021). "React Hooks en acción con suspenso y modo concurrente ". Manning. ISBN 978-1720043997.
  11. ^ Arad, Cosmin (abril de 2013). Modelo de programación y protocolos para sistemas distribuidos reconfigurables (PDF) . Estocolmo, Suecia: KTH Royal Institute of Technology. ISBN 978-91-7501-694-8. {{cite book}}: |work=ignorado ( ayuda )
  12. ^ Arellanes, Damián; Lau, Kung-Kiu (2017). "Conectores exógenos para la composición jerárquica de servicios" (PDF) . 2017 Décima Conferencia del IEEE sobre Aplicaciones y Computación Orientada a Servicios (SOCA) . Kanazawa: IEEE. págs. 125-132. doi :10.1109/SOCA.2017.25. ISBN 9781538613269. S2CID  31211787.

Otras lecturas

enlaces externos