Il diagramma dei componenti descrive le relazioni logiche tra i componenti.
Il diagramma di distribuzione va oltre, descrivendo la topologia fisica dell'hardware del sistema e il software eseguito su tale struttura.
Il diagramma dei componenti, noto anche come diagramma dei costrutti, è un diagramma modello utilizzato per rappresentare le relazioni tra i componenti all'interno di un sistema e tra i componenti e le interfacce. Il diagramma dei componenti è molto importante nella modellazione di sistemi basati su componenti e può aiutare gli utenti a comprendere la struttura del sistema.
Funzione del diagramma dei componenti:
1, consente ai tester e agli sviluppatori del sistema di comprendere tutti i componenti fisici del sistema in modo globale;
2, descrive le principali funzionalità di un sistema dal punto di vista dell'architettura software;
3, facilita ai membri del team di progetto la comprensione della struttura e delle funzionalità del sistema;
4, favorisce il riutilizzo del software.
Collaborazione in tempo reale multi-utente con link condivisibili per trasferimento istantaneo
Genera automaticamente grafici dal testo con miglioramenti di stile
Temi predefiniti con personalizzazione completa
Supporta icone, immagini, etichette, formule LaTeX, blocchi codice, link, allegati
Esporta: PNG, VISIO, PDF, SVG | Importa: VISIO, Mermaid
Archiviazione cloud in tempo reale, sincronizzazione multi-dispositivo, cronologia versioni e sicurezza dati
Il diagramma dei componenti descrive le relazioni logiche tra i componenti.
Il diagramma di distribuzione va oltre, descrivendo la topologia fisica dell'hardware del sistema e il software eseguito su tale struttura.
Componente: Un componente è un'unità fisica di implementazione sostituibile con un'interfaccia ben definita, generalmente rappresenta un oggetto fisico esistente e viene rappresentato da un rettangolo con due piccoli rettangoli sporgenti sul lato sinistro.
Interfaccia: L'interfaccia fornita, detta anche interfaccia esportata, è l'insieme dei servizi offerti dal componente, può essere rappresentata dalla relazione di implementazione tra l'interfaccia e il componente; l'interfaccia richiesta, detta anche interfaccia importata, è l'interfaccia che il componente segue quando richiede i servizi corrispondenti di altri componenti, rappresentata attraverso relazioni di dipendenza.
Relazione: Tra i componenti --> relazione di dipendenza, se esiste una relazione di generalizzazione o una relazione di utilizzo tra le classi di due componenti, è possibile aggiungere una dipendenza; tra componente e interfaccia --> dipendenza o implementazione.
Diagramma dei componenti semplice: Organizza le classi che collaborano tra loro in un componente.
Diagramma dei componenti annidato: Utilizza diagrammi di componenti annidati per rappresentare la struttura interna di un componente.
I componenti sono collegati tra loro tramite porte, mentre le porte sono collegate tramite connettori, ma generalmente non sono molto usati.
I connettori si dividono in tre tipi: connettori diretti, connettori di interfaccia e connettori di delega.
1, Sviluppo collaborativo tra più team
2, Architettura a microservizi o modulare
3, Sistemi con vincoli di interfaccia chiari
4, Componenti che richiedono un dispiegamento separato (come frontend, backend, database)
1, Concentrarsi sulla modularità e il disaccoppiamento, poiché il principale valore del diagramma dei componenti è mostrare la stratificazione e le dipendenze del sistema in modo chiaro;
2, Utilizzare simboli standard e annotazioni di interfaccia per migliorare la leggibilità e la coerenza del diagramma;
3, Usarlo insieme al diagramma delle classi/diagramma di distribuzione per fornire una vista completa della struttura, comportamento e distribuzione;
4, Evitare di trasformare il diagramma dei componenti in un diagramma delle classi, il diagramma dei componenti esprime la “struttura” del sistema e non i “dettagli di implementazione”.
Il diagramma dei componenti risponde a "chi fa cosa, chi dipende da chi", mentre il diagramma delle classi risponde a "come fare".
1. La classe rappresenta un'astrazione di un'entità, mentre il componente è un'astrazione di un componente fisico presente nel computer.
2. I componenti appartengono ai moduli software, non ai moduli logici, e rispetto alle classi si trovano a livelli di astrazione diversi.
3. Le classi possono avere operazioni e attributi direttamente, mentre i componenti hanno solo operazioni accessibili tramite la loro interfaccia.
I componenti sono classificati in base al loro ruolo nel sistema in 3 tipi:
1. Componenti di distribuzione: componenti necessari per formare un sistema eseguibile.
Ad esempio, macchina virtuale Java, sistema di gestione del database, file EXE, file DLL.
2. Componenti di prodotto di lavoro: prodotti intermedi del processo di sviluppo, non partecipano direttamente al sistema eseguibile.
Ad esempio, file di codice sorgente, file di dati.
3. Componenti di esecuzione: componenti creati durante l'esecuzione.
Ad esempio, Servlets istanziati, oggetti COM+, documenti XML.
Componenti e componenti: relazione di dipendenza
Componenti e interfacce: relazione di dipendenza o di implementazione
Per controllare la granularità dei componenti in modo appropriato, è possibile impostare i moduli funzionali come componenti, evitando di progettare un singolo classe come componente.
Trascina "interfaccia" dall'area dei simboli a sinistra all'area di lavoro a destra, quindi clicca su un'estremità del componente, tieni premuto il pulsante sinistro del mouse sull'interfaccia corrispondente e rilascia il mouse per assegnare l'interfaccia che il componente deve implementare.
No, i componenti semplici possono non avere un'interfaccia esplicita.
L'interfaccia fornita è rappresentata da un cerchio e indica le funzionalità esposte dal componente (invocabili).
L'interfaccia richiesta è rappresentata da un semicerchio e indica i servizi di cui il componente dipende da altri componenti.
Sì. Tra i componenti possono esistere dipendenze uno-a-molti, dipendenze bidirezionali o decoupling tramite un componente mediatore, utilizzando più linee tratteggiate per rappresentare più relazioni di dipendenza.