Una arquitectura de sistema puede constar de componentes del sistema y de los subsistemas desarrollados, que trabajarán juntos para implementar el sistema general. Se han hecho esfuerzos para formalizar lenguajes para describir la arquitectura del sistema; colectivamente, se los denomina lenguajes de descripción de la arquitectura (ADL). [2] [3] [4]
Descripción general
Distintas organizaciones pueden definir la arquitectura de sistemas de diferentes maneras, entre ellas:
La organización fundamental de un sistema, encarnada en sus componentes, sus relaciones entre sí y con el entorno, y los principios que rigen su diseño y evolución. [5]
Una disposición asignada de elementos físicos que proporciona la solución de diseño para un producto de consumo o un proceso de ciclo de vida destinado a satisfacer los requisitos de la arquitectura funcional y la línea base de requisitos. [7]
Una arquitectura se compone de las invenciones y decisiones estratégicas más importantes, omnipresentes y de alto nivel, y sus fundamentos asociados sobre la estructura general (es decir, los elementos esenciales y sus relaciones) y las características y el comportamiento asociados. [8]
Descripción del diseño y el contenido de un sistema informático . Si está documentada, puede incluir información como un inventario detallado de las capacidades actuales de hardware, software y redes; una descripción de los planes a largo plazo y las prioridades para futuras compras, y un plan para actualizar o reemplazar equipos y software obsoletos. [9]
Una descripción formal de un sistema o un plan detallado del sistema a nivel de componente para guiar su implementación. [10]
El conjunto de las arquitecturas de diseño de productos y sus procesos de ciclo de vida. [11]
La estructura de los componentes, sus interrelaciones y los principios y directrices que rigen su diseño y evolución a lo largo del tiempo. [12]
Se puede pensar en la arquitectura de sistemas como un conjunto de representaciones de un sistema existente (o futuro). Estas representaciones describen inicialmente una organización funcional general de alto nivel y se van perfeccionando progresivamente hasta convertirse en descripciones más detalladas y concretas.
La arquitectura del sistema transmite el contenido informativo de los elementos que componen un sistema, las relaciones entre esos elementos y las reglas que rigen esas relaciones. Los componentes arquitectónicos y el conjunto de relaciones entre estos componentes que componen una descripción de la arquitectura pueden incluir hardware, software , documentación, instalaciones, procedimientos manuales o funciones desempeñadas por organizaciones o personas. [ Aclaración necesaria ]
Una arquitectura de sistema se concentra principalmente en las interfaces internas entre los componentes o subsistemas del sistema , y en las interfaces entre el sistema y su entorno externo, especialmente el usuario . (En el caso específico de los sistemas informáticos, esta última interfaz especial se conoce como interfaz hombre-máquina , también conocida como interfaz hombre-máquina o HCI ).
Se puede contrastar una arquitectura de sistema con la ingeniería de arquitectura de sistema (SAE), el método y la disciplina para implementar eficazmente la arquitectura de un sistema: [13]
SAE es un método porque se prescribe [ ¿quién? ] una secuencia de pasos para producir o cambiar la arquitectura de un sistema dentro de un conjunto de restricciones .
SAE es una disciplina porque se utiliza un conjunto de conocimientos para informar a los profesionales sobre la forma más eficaz de diseñar el sistema dentro de un conjunto de restricciones.
Historia
La arquitectura de sistemas depende en gran medida de prácticas y técnicas que se desarrollaron durante miles de años en muchos otros campos, quizás el más importante de los cuales es la arquitectura civil.
Antes de la llegada de las computadoras digitales, la electrónica y otras disciplinas de ingeniería utilizaban el término "sistema" tal como se usa comúnmente todavía hoy. Sin embargo, con la llegada de las computadoras digitales y el desarrollo de la ingeniería de software como una disciplina separada, a menudo era necesario distinguir entre artefactos de hardware diseñados, artefactos de software y artefactos combinados. Un artefacto de hardware programable , o máquina de computación , que carece de su programa de computadora es impotente; así como un artefacto de software, o programa, es igualmente impotente a menos que pueda usarse para alterar los estados secuenciales de una máquina (hardware) adecuada. Sin embargo, una máquina de hardware y su programación pueden diseñarse para realizar un número casi ilimitado de tareas abstractas y físicas. Dentro de las disciplinas de ingeniería de software y computación (y, a menudo, otras disciplinas de ingeniería, como las comunicaciones), entonces, el término sistema llegó a definirse como que contiene todos los elementos necesarios (que generalmente incluyen tanto hardware como software) para realizar una función útil.
En consecuencia, dentro de estas disciplinas de ingeniería, un sistema generalmente se refiere a una máquina de hardware programable y su programa incluido. Y un ingeniero de sistemas se define como alguien que se ocupa del dispositivo completo, tanto el hardware como el software y, más particularmente, de todas las interfaces del dispositivo, incluida la que existe entre el hardware y el software, y especialmente entre el dispositivo completo y su usuario (el CHI). El ingeniero de hardware se ocupa (más o menos) exclusivamente del dispositivo de hardware; el ingeniero de software se ocupa (más o menos) exclusivamente del programa informático; y el ingeniero de sistemas es responsable de ver que el programa sea capaz de ejecutarse correctamente dentro del dispositivo de hardware, y que el sistema compuesto por las dos entidades sea capaz de interactuar adecuadamente con su entorno externo, especialmente el usuario, y realizar su función prevista.
Una arquitectura de sistemas hace uso de elementos tanto de software como de hardware y se utiliza para permitir el diseño de un sistema compuesto de este tipo. Una buena arquitectura puede considerarse como un " esquema de partición " o algoritmo que divide todos los requisitos presentes y previsibles del sistema en un conjunto funcional de subsistemas claramente delimitados sin dejar nada sobrante. Es decir, es un esquema de partición que es exclusivo, inclusivo y exhaustivo . Un objetivo principal de la partición es organizar los elementos de los subsistemas de modo que haya un mínimo de interdependencias necesarias entre ellos. Tanto en el software como en el hardware, un buen subsistema tiende a verse como un "objeto" significativo. Además, una buena arquitectura permite una fácil correlación con los requisitos del usuario y las pruebas de validación de los requisitos del usuario. Idealmente, también existe una correlación de cada elemento menor con cada requisito y prueba.
Tipos
Se han identificado varios tipos de arquitecturas de sistemas (basadas en los mismos principios fundamentales [14] ) como se detalla a continuación: [15]
^ Hannu Jaakkoррмшлинla y Bernhard Thalheim. (2011) "Metodologías de modelado basadas en arquitectura". En: Actas de la conferencia de 2011 sobre modelado de información y bases de conocimiento XXII . Anneli Heimbürger et al. (eds.). IOS Press. pág. 98
^ Paul C. Clements (1996) "Un estudio de los lenguajes de descripción de arquitectura". Actas del octavo taller internacional sobre diseño y especificación de software. IEEE Computer Society, 1996.
^ Nenad Medvidovic y Richard N. Taylor (2000). "Un marco de comparación y clasificación para lenguajes de descripción de arquitectura de software". Ingeniería de software, IEEE Transactions on 26.1 (2000): 70-93.
^ Nejad, Bobby (2023), Nejad, Bobby (ed.), "La arquitectura física", Introducción a la ingeniería de sistemas de segmento terrestre de satélites: principios y aspectos operativos , Biblioteca de tecnología espacial, vol. 41, Cham: Springer International Publishing, págs. 187-197, doi :10.1007/978-3-031-15900-8_13, ISBN 978-3-031-15900-8, consultado el 7 de diciembre de 2022
^ Michaels, Paul (2022). Arquitectura de software por ejemplo. doi :10.1007/978-1-4842-7990-8. ISBN978-1-4842-7989-2.S2CID248408249 .
^ Zeng, Ruiqi; Niu, Yiru; Zhao, Yue; Peng, Haiyang (2022). "Evolución de la arquitectura de software e investigación tecnológica". En Liu, Shuai; Ma, Xuefei (eds.). Procesamiento avanzado de información híbrida . Notas de clase del Instituto de Ciencias de la Computación, Informática Social e Ingeniería de Telecomunicaciones. Vol. 416. Cham: Springer International Publishing. págs. 708–720. doi :10.1007/978-3-030-94551-0_54. ISBN978-3-030-94551-0. Número de identificación del sujeto 246051702.
^ Ziemann, Jörg (2022), Ziemann, Jörg (ed.), "Arquitectura empresarial en pocas palabras", Fundamentos de la gestión de la arquitectura empresarial: bases para dirigir el sistema digital de toda la empresa , The Enterprise Engineering Series, Cham: Springer International Publishing, págs. 23–60, doi :10.1007/978-3-030-96734-5_2, ISBN978-3-030-96734-5, consultado el 7 de diciembre de 2022
^ Musukutwa, Sheunopa Chalmers (2022), Musukutwa, Sheunopa Chalmers (ed.), "Desarrollo de una arquitectura empresarial", SAP Enterprise Architecture: un plan para ejecutar la transformación digital , Berkeley, CA: Apress, págs. 51–92, doi :10.1007/978-1-4842-8575-6_3, ISBN978-1-4842-8575-6, consultado el 7 de diciembre de 2022
^ Markusheska, Nastasija; Srinivasan, Venkatachalam; Walther, Jan-Niclas; Gindorf, Alex; Biedermann, Jörn; Meller, Frank; Nagel, Björn (1 de julio de 2022). "Implementación de un modelo de arquitectura de sistemas para procesos automatizados de ensamblaje de cabinas de aeronaves". Revista Aeronáutica CEAS . 13 (3): 689–703. doi : 10.1007/s13272-022-00582-6 . ISSN 1869-5590. S2CID 248972956.
^ Cómo elegir una arquitectura de sistemas estratégica, por Brad Day
Enlaces externos
Wikimedia Commons tiene medios relacionados con Arquitectura de sistemas .
Principios de la arquitectura de sistemas
¿Qué es la arquitectura de sistemas?
Grupo de trabajo de arquitectura de sistemas de INCOSE