Arquitectura de referencia

De Wikipedia, la enciclopedia libre


Una arquitectura de referencia en el campo de la arquitectura de software o la arquitectura empresarial proporciona una plantilla de solución para una arquitectura de un dominio particular. También proporciona un vocabulario común con el que discutir las implementaciones, a menudo con el objetivo de enfatizar la similitud. Una arquitectura de referencia de software es una arquitectura de software[1]​ donde las estructuras y los elementos y relaciones respectivos proporcionan plantillas para arquitecturas concretas en un dominio particular o en una familia de sistemas de software.

Una arquitectura de referencia a menudo consiste en una lista de funciones y alguna indicación de sus interfaces (o API) e interacciones entre sí y con funciones ubicadas fuera del alcance de la arquitectura de referencia.

Las arquitecturas de referencia se pueden definir en diferentes niveles de abstracción. Una muy abstracta puede mostrar diferentes equipos en una red de comunicaciones, y cada uno proporciona diferentes funciones. Un nivel inferior podría demostrar las interacciones de los procedimientos (o métodos ) dentro de un programa de computadora definido para realizar una tarea muy específica.

Una arquitectura de referencia proporciona una plantilla, a menudo basada en la generalización de un conjunto de soluciones. Estas soluciones pueden haber sido generalizadas y estructuradas para la representación de una o más estructuras de arquitectura basadas en la recolección de un conjunto de patrones que se han observado en varias implementaciones exitosas. Además, muestra cómo componer estas partes juntas en una solución. Las arquitecturas de referencia serán instanciadas para un dominio particular o para proyectos específicos.

La adopción de una arquitectura de referencia dentro de una organización acelera la entrega mediante la reutilización de una solución efectiva y proporciona una base para la gobernanza para garantizar la coherencia y la aplicabilidad del uso de la tecnología dentro de una organización. En el campo de la arquitectura de software, muchos estudios empíricos han demostrado los siguientes beneficios e inconvenientes comunes de adoptar una arquitectura de referencia de software dentro de las organizaciones:

  1. Mejora de la interoperabilidad de los sistemas de software mediante el establecimiento de una solución estándar y mecanismos comunes para el intercambio de información
  2. Reducción de los costos de desarrollo de proyectos de software mediante la reutilización de activos comunes
  3. Mejora de la comunicación dentro de la organización porque las partes interesadas comparten la misma mentalidad arquitectónica
  4. Influir en la curva de aprendizaje de los desarrolladores debido a la necesidad de aprender sus características.[2]

Ejemplos[editar]

  • La arquitectura Java Platform, Enterprise Edition (Java EE) es una arquitectura de referencia en capas que proporciona una solución de plantilla para muchos sistemas empresariales desarrollados en Java.
  • La arquitectura de aplicaciones de seguros de IBM[3]​ es una arquitectura de referencia para el dominio de seguros.
  • AUTOSAR es una arquitectura de referencia basada en componentes para arquitecturas de software automotriz.
  • Eulynx es una arquitectura de referencia para los sistemas de señalización ferroviaria.

Véase también[editar]

Referencias[editar]

  1. Clements, Paul; Felix Bachmann; Len Bass; David Garlan; James Ivers; Reed Little; Paulo Merson; Robert Nord et al. (2010). Documenting Software Architectures: Views and Beyond, Second Edition. Boston: Addison-Wesley. ISBN 978-0-321-55268-6. 
  2. Martinez-Fernandez, Silverio; Medeiros Dos Santos, Paulo Sergio; Ayala, Claudia P.; Franch, Xavier; Travassos, Guilherme H. (2015). «Aggregating Empirical Evidence about the Benefits and Drawbacks of Software Reference Architectures». 2015 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM). pp. 1-10. ISBN 978-1-4673-7899-4. doi:10.1109/ESEM.2015.7321184. 
  3. The IBM Insurance Application Architecture