Accoppiamento dei moduli
Nell’ingegneria del software, l’accoppiamento è il grado di interdipendenza tra moduli software. Due moduli che sono strettamente accoppiati sono fortemente dipendenti l’uno dall’altro. Tuttavia, due moduli che sono debolmente accoppiati non dipendono l’uno dall’altro. I moduli non accoppiati non hanno alcuna interdipendenza al loro interno.
I vari tipi di tecniche di accoppiamento sono mostrati in figura:
Un buon design è quello che ha un basso accoppiamento. L’accoppiamento è misurato dal numero di relazioni tra i moduli. Cioè, l’accoppiamento aumenta quando il numero di chiamate tra i moduli aumenta o la quantità di dati condivisi è grande. Quindi, si può dire che un progetto con un alto accoppiamento avrà più errori.
Tipi di accoppiamento dei moduli
1. Nessun accoppiamento diretto: Non c’è accoppiamento diretto tra M1 e M2.
In questo caso, i moduli sono subordinati a moduli diversi. Pertanto, nessun accoppiamento diretto.
2. Accoppiamento dati: Quando i dati di un modulo vengono passati ad un altro modulo, questo è chiamato accoppiamento dati.
3. Accoppiamento timbro: Due moduli sono stamp coupled se comunicano usando dati compositi come struttura, oggetti, ecc. Quando il modulo passa una struttura di dati non globale o un’intera struttura ad un altro modulo, si dice che sono accoppiati a timbro. Per esempio, passando una variabile struttura in C o un oggetto in linguaggio C++ a un modulo.
4. Accoppiamento di controllo: Control Coupling esiste tra due moduli se i dati di un modulo sono usati per dirigere la struttura dell’esecuzione delle istruzioni in un altro modulo.
5. Accoppiamento esterno: L’accoppiamento esterno si verifica quando due moduli condividono un formato dati, protocolli di comunicazione o un’interfaccia del dispositivo imposti dall’esterno. Questo è legato alla comunicazione con strumenti e dispositivi esterni.
6. Accoppiamento comune: Due moduli sono accoppiati in comune se condividono informazioni attraverso alcuni elementi di dati globali.
7. Content Coupling: Content Coupling esiste tra due moduli se condividono codice, ad esempio, un ramo da un modulo in un altro modulo.
Coesione del modulo
Nella programmazione dei computer, la coesione definisce il grado di appartenenza degli elementi di un modulo. Così, la coesione misura la forza delle relazioni tra pezzi di funzionalità all’interno di un dato modulo. Per esempio, in sistemi altamente coesivi, la funzionalità è fortemente correlata.
La coesione è un tipo ordinale di misurazione ed è generalmente descritta come “alta coesione” o “bassa coesione”
Tipi di coesione dei moduli
- Coesione funzionale: Si dice che esiste una coesione funzionale se i diversi elementi di un modulo cooperano per raggiungere un’unica funzione.
- Coesione sequenziale: Si dice che un modulo possiede una coesione sequenziale se gli elementi di un modulo formano i componenti della sequenza, dove l’output di un componente della sequenza è un input per il successivo.
- Coesione comunicazionale: Un modulo si dice che ha coesione comunicazionale, se tutti i compiti del modulo fanno riferimento o aggiornano la stessa struttura di dati, per esempio, l’insieme delle funzioni definite su un array o uno stack.
- Coesione procedurale: Un modulo si dice di coesione procedurale se l’insieme degli scopi del modulo sono tutte parti di una procedura in cui una particolare sequenza di passi deve essere eseguita per raggiungere un obiettivo, ad esempio, l’algoritmo per la decodifica di un messaggio.
- Coesione temporale: Quando un modulo include funzioni che sono associate dal fatto che tutti i metodi devono essere eseguiti nello stesso tempo, si dice che il modulo presenta una coesione temporale.
- Coesione logica: Un modulo si dice logicamente coeso se tutti gli elementi del modulo eseguono un’operazione simile. Per esempio la gestione degli errori, l’input e l’output dei dati, ecc.
- Coesione coincidente: Si dice che un modulo ha una coesione coincidente se esegue un insieme di compiti che sono associati l’uno con l’altro in modo molto lasco, se non del tutto.
Differenzia tra Accoppiamento e Coesione
Accoppiamento | Coesione |
---|---|
L’accoppiamento è chiamato anche Inter-Module Binding. | La coesione è chiamata anche Intra-Module Binding. |
L’accoppiamento mostra le relazioni tra i moduli. | La coesione mostra le relazioni all’interno del modulo. |
L’accoppiamento mostra l’indipendenza relativa tra i moduli. | La coesione mostra la forza funzionale relativa del modulo. |
Nella creazione, si dovrebbe mirare a un basso accoppiamento, cioè, la dipendenza tra i moduli dovrebbe essere minore. | Mentre si crea si dovrebbe mirare a un’alta coesione, cioè un componente/modulo coeso si concentra su una singola funzione (cioè, pensiero unico) con poca interazione con altri moduli del sistema. |
Nell’accoppiamento, i moduli sono collegati agli altri moduli. | Nella coesione, il modulo si concentra su una singola cosa. |