Programmazione modulare: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Impiego: fix wlink
fix
 
(18 versioni intermedie di 14 utenti non mostrate)
Riga 1:
{{SF|terminologia informatica|febbraio 2013}}
{{U|Modularità (informatica)|informatica|dicembre 2013}}
La '''programmazione modulare''' è un [[paradigma di programmazione]] che consiste nella realizzazione di programmi suddivisi in [[modulo|moduli]], ognuno dei quali svolge precise funzioni.
 
LaIn [[informatica]] la '''programmazione modulare''' è un [[paradigma di programmazione]] che consiste nella realizzazione di programmi suddivisi in [[modulo|moduli]], ognuno dei quali svolge precise funzioni.
L'obiettivo di questo paradigma di programmazione è semplificare lo sviluppo, il test e la manutenzione di programmi di grosse dimensioni, che vedono coinvolti più sviluppatori tramite il concetto della [[modularità]].
 
L'obiettivo di questo paradigma di programmazione è semplificare lo sviluppo, il test e la manutenzione di programmi di grosse dimensioni, che vedono coinvolti più sviluppatori tramite il concetto della [[Modularità (informatica)|modularità]].
== Punti cardine ==
I punti cardine della programmazione modulare sono
* Suddivisione del programma in singoli moduli
* Indipendenza dei moduli tra loro
* Interazione minima di ciascun modulo con il mondo esterno
* Facile testabilità dei moduli come entità isolate
* Dichiarazione esplicita e semplificazione delle interfacce mediante le quali i moduli comunicano tra loro
 
== Vantaggi ==
I principali vantaggi della programmazione modulare sono
* Riutilizzabilità dei moduli
* Sviluppo separato (minima interazione tra sviluppatori)
 
== Storia ==
Il concetto di programmazione modulare si è sviluppato naglinegli anni settanta nell'ambito dell'[[ingegneria del software]], a partire dalla più classica [[programmazione strutturata]] verso la più renceterecente [[OOP|programmazione orientata agli oggetti]].
 
== Caratteristiche ==
I punti cardine della programmazione modulare sono:
* Suddivisionesuddivisione del programma in singoli moduli,
* Indipendenzaindipendenza dei moduli tra loro,
* Interazioneinterazione minima di ciascun modulo con il mondo esterno,
* Facilefacile testabilità dei moduli come entità isolate,
* Dichiarazionedichiarazione esplicita e semplificazione delle interfacce mediante le quali i moduli comunicano tra loro.
 
I principali vantaggi della programmazione modulare sono:
* Riutilizzabilitàriutilizzabilità dei moduli,
* Svilupposviluppo separato (minima interazione tra sviluppatori).
 
== VantaggiModulo ==
Un '''modulo''' è generalmente un [[file]] o porzione di [[codice sorgente]] che contiene [[istruzione (informatica)|istruzioni]] scritte per essere riutilizzate più volte nello stesso [[programma (informatica)|programma]] o in più programmi diversi: la ''modularizzazione'' di un programma permette al [[programmatore]] di avere una visione completa del programma stesso.
 
In [[Visual Basic]] un modulo può contenere [[Funzione (informatica)|funzioni]], [[subroutine]], dichiarazioni [[Application programming interface|API]], variabili globali ed enumerazioni. È indicato dall'[[Estensione (file)|estensione]] .bas, in comune con i file [[BASIC]]. In [[linguaggio C]], e in molti altri linguaggi, il modulo è costituito da un file .c, possibilmente accompagnato da un [[header file]] (.h), che contiene solo le definizioni di funzioni e tipi utilizzabili da altri moduli.
 
Nella [[programmazione orientata agli oggetti]], l'unità di modularizzazione è la [[classe (informatica)|classe]]. Alcuni [[Linguaggio di programmazione|linguaggi]] supportano anche una struttura gerarchica dei moduli tramite il costrutto dei [[Package (Java)|package]]. In altri linguaggi un modulo può anche essere chiamato in un altro modo. Un modulo può essere distribuito anche sotto forma di [[codice eseguibile]], come [[libreria software]] o [[dynamic-link library]].
 
== Impiego ==
Linguaggi di programmazione espressamente orientati alla programmazione modulare sono [[Ada (linguaggio)|Ada]] e [[Modula-2]]; ciò non toglie che questo paradigma di programmazione sia applicabile anche utilizzando linguaggi più semplici come il [[C (linguaggio)|C]], o addirittura l'[[Assembly]].
 
== Voci correlate ==
* [[Programmazione strutturata]]
* [[Programmazione orientata agli oggetti]]
* [[Legge di Conway]]
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
 
{{Paradigmi di programmazione}}
{{Controllo di autorità}}
{{portale|informatica}}
 
[[Categoria:Terminologia informatica]]
[[Categoria:MetodologieMetodi di sviluppo software]]