Cuál es la diferencia entre el diseño del sistema, y la arquitectura del sistema, en la ingeniería y desarrollo de software?

La diferencia se describe en una serie de documentos normativos - estoy más familiarizado con la forma en que el IEEE y la FDA de EE.UU. utilizan esos términos.

Una arquitectura del sistema define los principales bloques de su sistema, define la función de cada bloque y las interfaces con suficiente detalle para permitir que equipos separados implementen esas secciones. La arquitectura proporciona una estructura de desarrollo y gestión para el proyecto y un marco en el que expresar sus requisitos de diseño.

Un diseño describe la implementación de cada parte del sistema.

La arquitectura proporciona una descripción de la función, el diseño proporciona suficiente detalle para fabricar su widget.

Por ejemplo:

ISO/IEC 42010 define

  • arquitectura: los conceptos fundamentales o las propiedades de un sistema en su entorno plasmados en sus elementos, relaciones y en los principios de su diseño y evolución

La IEEE 1471 proporciona definiciones y un metamodelo para la descripción de la arquitectura

  • Establece que una arquitectura debe abordar las preocupaciones de un sistema'Afirma que las descripciones de arquitectura son intrínsecamente multivistas, y que no hay una sola visión que capture adecuadamente todas las preocupaciones de las partes interesadas
  • Especifica las nociones de visión y punto de vista, donde un punto de vista identifica el conjunto de preocupaciones y las representaciones/técnicas de modelado, etc. establece los requisitos de contenido para las descripciones de la arquitectura y la idea de que una descripción de la arquitectura conforme tiene una correspondencia de 1 a 1 entre sus puntos de vista y sus vistas.
  • Proporciona una guía para capturar la lógica de la arquitectura e identificar las incoherencias/problemas no resueltos entre los puntos de vista dentro de una descripción de la arquitectura
  • Proporciona las descripciones de los puntos de prueba del sistema requeridos, para la prueba funcional del sistema.

.