Qual è la differenza tra il design del sistema e l’architettura del sistema, nell’ingegneria e nello sviluppo del software?

La differenza è delineata in un certo numero di documenti standard - ho più familiarità con il modo in cui l'IEEE e l'US FDA usano questi termini.

Un'architettura di sistema definisce i blocchi principali del vostro sistema, definisce la funzione di ogni blocco e le interfacce in modo abbastanza dettagliato da permettere a team separati di implementare quelle sezioni. L'architettura fornisce una struttura di sviluppo e di gestione del progetto e un quadro in cui esprimere i vostri requisiti di design.

Un design descrive l'implementazione di ogni parte del sistema.

L'architettura fornisce una descrizione delle funzioni, il design fornisce abbastanza dettagli per produrre il vostro widget.

Per esempio:

ISO/IEC 42010 definisce

  • architettura: concetti o proprietà fondamentali di un sistema nel suo ambiente incarnati nei suoi elementi, relazioni, e nei principi della sua progettazione ed evoluzione

L'EIEEE 1471 fornisce definizioni e un meta-modello per la descrizione dell'architettura

  • Afferma che un'architettura dovrebbe indirizzare un sistema'afferma che le descrizioni dell'architettura sono intrinsecamente multi vista, nessuna singola vista cattura adeguatamente tutte le preoccupazioni degli stakeholder
  • Specifica le nozioni di vista e punto di vista, dove un punto di vista identifica l'insieme delle preoccupazioni e le rappresentazioni/tecniche di modellazione, ecc. usato per descrivere l'architettura per affrontare tali preoccupazioni e una vista è il risultato dell'applicazione di un punto di vista ad un particolare sistema.
  • Stabilisce i requisiti di contenuto per le descrizioni dell'architettura e l'idea che una descrizione dell'architettura conforme ha una corrispondenza 1 a 1 tra i suoi punti di vista e le sue viste.
  • Fornisce una guida per catturare la logica dell'architettura e identificare incoerenze/questioni irrisolte tra le viste all'interno di una descrizione dell'architettura
  • Fornisce le descrizioni dei punti di test del sistema richiesti, per il test funzionale del sistema.