Architettura software vs Architettura di sistema e diagrammi di classe?

9

Sono abbastanza confuso sui seguenti termini:

Architettura software

Software application architecture is the process of defining a structured solution that meets all of the technical and operational requirements, while optimizing common quality attributes such as performance, security, and manageability. It involves a series of decisions based on a wide range of factors, and each of these decisions can have considerable impact on the quality, performance, maintainability, and overall success of the application. (microsoft)

Architettura di sistema

A system architecture is a conceptual model that defines the structure, behavior, and more views of a system.1 An architecture description is a formal description and representation of a system, organized in a way that supports reasoning about the structures and behaviors of the system (wiki)

Diagrammi delle classi

In software engineering, a class diagram in the Unified Modeling Language (UML) is a type of static structure diagram that describes the structure of a system by showing the system's classes, their attributes, operations (or methods), and the relationships among objects. (wiki)

Se leggo queste descrizioni, tutte queste descrizioni descrivono le interazioni tra i diversi moduli dell'applicazione. Tuttavia quali sono le differenze tra questi?
Cosa penso / ho provato a confrontare questi termini :

  • I diagrammi di classe non sono una forma di architettura di sistema, perché la descrizione precedente ( structure, behavior, and more views of a system ) implica che non sono presenti dettagli di implementazione in un'architettura mentre i diagrammi delle classi descrivono l'implementazione e sono probabilmente più orientati alla progettazione piuttosto che all'architettura?
  • Penso che l'architettura del sistema sia un'architettura che include anche le interazioni esterne (come il database) mentre l'architettura del software si concentra sull'applicazione stessa?
posta KingBoomie 07.03.2017 - 14:37
fonte

3 risposte

6

L'architettura di sistema descrive i componenti del sistema. Ad esempio potresti avere un sistema di registrazione degli ordini composto da:

Web Front End, Business Layer Service e Data Store.

Quindi, dovresti mostrare un diagramma di alto livello.

L'architettura dell'applicazione software descrive l'architettura di un particolare componente. Ad esempio, uno dei componenti del sistema di registrazione degli ordini è il front-end Web. L'architettura dell'applicazione mostrerà i vari livelli e le interazioni di quel componente. Interfaccia utente reattiva, Model View Controller, chiamate al servizio web, come verrà eseguita la registrazione, ecc. Fornisce un'idea di ciascun componente che verrà costruito e dei livelli in quel componente che fa parte del sistema più grande.

di solito un diagramma (s) più dettagliato mostra come verrà costruito quel componente.

Infine, Diagrammi delle classi approfondisci l'architettura dell'applicazione software. Ad esempio, qual è il contratto per l'interfaccia di registrazione? Come interagirà View con il Controller ... e così via. Questi forniranno ulteriori dettagli sull'architettura dell'applicazione software per un particolare componente del sistema.

Ci dovrebbero essere molti di questi se il particolare componente è grande e complesso.

    
risposta data 07.03.2017 - 16:46
fonte
2

Alcuni punti aggiuntivi:

  • Il sistema è il termine più ampio e in genere il livello più alto, il meno dettagliata.
  • Parte del sistema può essere classificata come software.
  • Una parte del software può essere descritta utilizzando diagrammi di classe.

Ultimo ma non meno importante: l'architettura riguarda le scelte una tantum che sono difficili o impossibili da recuperare in seguito senza ricostruire tutto. La migliore definizione di architettura, che la distingue dal design, è "tutto ciò che è davvero costoso da cambiare". Quindi in architettura troverete tipicamente la scelta per un linguaggio di programmazione, il sistema operativo, la marca di un database relazionale, qualunque cosa vi blocchi in un tipo di soluzione. Quindi, ciò che classifica come architettura dipende anche dal sistema stesso e da quanto (in) è flessibile rispetto all'aspetto.

    
risposta data 08.03.2017 - 07:32
fonte
0

I diagrammi delle classi sono molto diversi dal resto dei due termini: mostrano ciò che le classi offrono ad altre classi e il modo in cui interagiscono tra loro. Tuttavia, i termini "architettura di sistema" e "architettura software" creano confusione e richiedono ulteriori chiarimenti.

È importante rendersi conto che un "sistema" si riferisce non solo ai componenti software ma anche ad altri componenti come i componenti hardware. Se un sistema contiene solo un sistema software, non vi è alcuna differenza tra i due termini. Tuttavia, ovviamente, se un sistema contiene altri componenti non software, l'architettura software sarà significativamente diversa dall'architettura di sistema del sistema.

    
risposta data 07.03.2017 - 18:35
fonte

Leggi altre domande sui tag