Che cos'è in realtà un modulo nell'ingegneria del software? [chiuso]

14

Secondo Stephen Schach, "Ingegneria del software classica e orientata agli oggetti", capitolo 6:

a module consists a single block of code that can be invoked in the way that a procedure, function, or method is invoked

Questo sembra molto vago e ampio. Quindi qualcuno potrebbe spiegarlo chiaramente e mostrare alcuni esempi reali di come rompere un requisito in moduli? Grazie.

    
posta Hoan 07.10.2012 - 10:52
fonte

3 risposte

13

Un modulo,

  • incapsula codice e dati per implementare una particolare funzionalità.
  • ha un'interfaccia che consente ai client di accedere alle sue funzionalità in modo uniforme.
  • è facilmente collegabile con un altro modulo che si aspetta la sua interfaccia.
  • di solito è confezionato in una singola unità in modo che possa essere facilmente implementato.

Ad esempio, dapper.net incapsula l'accesso al database. Ha un'API per accedere alle sue funzionalità. È un singolo file che può essere collegato a un albero di sorgenti da costruire.

Il concetto di modulo deriva dal paradigma di programmazione modulare che sostiene che il software dovrebbe essere composto da componenti separati e intercambiabili chiamati moduli abbattendo le funzioni del programma in moduli, ognuno dei quali svolge una funzione e contiene tutto il necessario per realizzare questo.

    
risposta data 07.10.2012 - 11:21
fonte
10

Il modulo potrebbe essere un termine sovraccarico, così tanto che Wikipedia lo descrive con il termine Programmazione modulare quando ne discute l'uso relativo al software. Lo discutono in termini di programmazione strutturata basata su un approccio di progettazione top-down. Caratteristiche chiave della modularità relative all'uso di accoppiamento e alto cohesion .

Il mio utilizzo è stato quello in un linguaggio come C o anche C ++, un modulo è correlato alla definizione di un'unità compilata separatamente da un file sorgente (.c o .cpp) e in genere un file di intestazione associato (.h). Altre lingue usano il modulo come descrizione, e il linguaggio Modula-2 mette la strutturazione attorno ai moduli in primo piano e al centro nel suo nome e nel suo approccio.

Storicamente, il modulo ha alcune altre implicazioni come sono state descritte nel D.L. Parnas paper "Sui criteri da utilizzare nella scomposizione del software nei moduli" . Si occupa principalmente della discussione dei vantaggi di sostituire la decomposizione funzionale con la decomposizione orientata ai dati che è stato un grande passo verso il nostro attuale stato dell'arte che è la decomposizione orientata agli oggetti.

I linguaggi orientati agli oggetti sono organizzati attorno alle classi, quindi forse il termine modulo è meno importante e meno preciso in quel contesto.

    
risposta data 07.10.2012 - 11:34
fonte
6

Non esiste una definizione formale di un modulo e ciò che un modulo è (o non è) nel contesto del progetto dipende in gran parte dalla natura e dalla progettazione del progetto.

In generale, un modulo è un pezzo autonomo di codice che fornisce funzionalità specifiche e strettamente accoppiate, i moduli definiscono e impongono limiti logici nel codice.

    
risposta data 07.10.2012 - 11:19
fonte

Leggi altre domande sui tag