nikpez di nikpez
Ominide 738 punti

Programmazione modulare

La possibilità di collegare tra loro più file per produrre un unico eseguibile può essere sfruttata anche per rendere
più semplice la fase di sviluppo di un pgm molto articolato (applicazione).
Infatti, facendo riferimento ad un ipotetico gruppo di lavoro chiamato a produrre un pgm di una certa complessità, è possibile prevedere che:
- L’intero gruppo analizzi nel suo insieme il problema ed individui le funzioni e le caratteristiche dei moduli in cui può essere suddiviso il pgm.
- Ciascun componente si prenda carico di un modulo e lo sviluppi fino a costruire autonomamente il codice oggetto su un proprio file.
- I moduli prodotti vengono collegati tra loro tramite il linker per produrre il codice eseguibile, da sottoporre ad una verifica finale.

Modularizzazione
L'uso disciplinato di alcuni meccanismi del linguaggio C++ consente una corretta strutturazione di un programma in moduli.

Tra i principali meccanismi vi sono:
- la compilazione separata,
- l'inclusione testuale,
- le dichiarazioni extern,
- l'uso dei prototipi di funzioni.

Specifica e implementazione
È buona norma tenere separata la specifica di un modulo dalla sua implementazione.
Un programma utente di un modulo A deve conoscerne la specifica, ma disinteressarsi dei dettagli della sua implementazione.
Ciò può essere realizzato scrivendo un file di intestazione o header file (con l’estensione .h) contenente le dichiarazioni che costituiscono l’interfaccia di A, ed un file separato per l’implementazione di A.
L'header file deve essere incluso (mediante la direttiva al preprocessore #include) nella implementazione, ed in ogni modulo
utente, affinché il compilatore possa eseguire i necessari controlli.

Librerie di moduli software
Queste tecniche di sviluppo modulare consentono lo sviluppo su base professionale di librerie di moduli
software.
Il produttore di una libreria distribuisce:
- i file di intestazione (che devono essere inclusi dell’utilizzatore nel codice sorgente) dei moduli che
fanno parte della libreria;
- i moduli di libreria in formato oggetto (già compilati), che l’utilizzatore deve collegare assieme ai propri moduli
oggetto.
Tale scelta è tipicamente motivata da esigenze di tutela della proprietà, ed inoltre evita di dover ricompilare i moduli di libreria.

Perché dividere un programma in più file sorgenti

Ricapitolando, quali sono i vantaggi del dividere un programma in più moduli sorgente?
La struttura di un programma medio-grande è più chiara se il programma è suddiviso in più file sorgenti.
Più programmatori possono lavorare allo stesso tempo su file diversi. Non occorre ricompilare l’intero programma ogni volta
che si effettua una piccola modifica.
Si possono usare librerie senza dovere includere fisicamente il codice sorgente nel programma (in effetti, spesso il sorgente non è disponibile).

Registrati via email