Modularità (informatica): differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m fix link |
fix |
||
(5 versioni intermedie di 5 utenti non mostrate) | |||
Riga 1:
{{U|Programmazione modulare|informatica|dicembre 2013}}
La '''modularità''' è un concetto che trova applicazione nel contesto dell'[[informatica]], più precisamente nella [[programmazione (informatica)|programmazione]], così come le [[scienze cognitive]] nello scoprire la struttura della [[mente]]. Un '''[[Modulo (programmazione)|modulo]]''' può essere definito in molteplici modi, ma di solito si tratta di un componente di un più vasto sistema, che opera in quel sistema indipendentemente dalle operazioni di altri componenti.
I moduli forniscono una separazione tra le [[Interfaccia (informatica)|interfacce]] e la [[implementazione]]. Una interfaccia di un modulo esprime gli elementi che sono forniti e necessari al modulo. Gli elementi definiti in una interfaccia sono visibili agli altri moduli. L'implementazione contiene il codice operativo che corrisponde agli elementi dichiarati nell'interfaccia. I linguaggi che supportano esplicitamente il concetto di modulo includono [[Ada (linguaggio)|Ada]], [[D (linguaggio di programmazione)|D]], [[F (linguaggio di programmazione)|F]], [[Fortran]], [[Pascal (linguaggio)|Pascal]] (alcuni derivati), [[ML == Moduli e classi ==
La differenza tra le [[Classe (informatica)|classi]]
▲* Le Classi possono essere instanziate per creare [[Oggetto (informatica)|oggetti]],
* Le Classi possono [[Ereditarietà (informatica)|Ereditare]] il loro comportamento e dati da altre classi,
* Il [[Polimorfismo (informatica)|Polimorfismo]] permette la relazione tra istanze di classi di poter cambiare a run-time, mentre le relazioni tra i moduli sono statiche.
Le somiglianze con le classi sono:
* Entrambi possono essere usati per nascondere i dettagli dell'implementazione.
* Entrambi possono formare gerarchie di modules/classes.
== Linguaggi di interconnessione dei moduli (MILs) ==
I '''linguaggi di interconnessione dei moduli''' ('''MILs''') forniscono costrutti di grammatica formale per decidere le varie specifiche di
== La modularità nell'informatica ==
La '''modularità''' è una proprietà dei [[Programma (informatica)|programmi]] che misura la estensione di quanto sono composti in parti separate chiamate [[modulo (programmazione)|moduli]]. Un approccio modulare sta guadagnando popolarità nel campo della [[Integrazione sistemi intelligenza artificiale|integrazione di sistemi intelligenza artificiale]], dove un sistema A.I. generale in larga scala system è composto di moduli dei quali ognuno serve
I programmi che hanno molte correlazioni dirette tra qualsiasi parti del codice di programmazione sono meno '''modulari''' (più strettamente [[Accoppiamento (informatica)|accoppiati]]) dei programmi le cui relazioni avvengono solo tramite ben specificate interfacce di moduli.
Riga 26 ⟶ 25:
Le tecniche di '''programmazione modulare''' sono quelle che incrementano la modularità. (Vedi anche: [[programmazione modulare]], [[programmazione strutturata]], [[programmazione procedurale]], [[Programmazione orientata agli oggetti]] e [[Programmazione orientata agli aspetti]], [[Calcolo distribuito]].)
== Lavori citati ==
* Guimerá, R. & L.A. Nunes Amaral (2005).
* Yang, A.S. (2001). ''Modularity, Evolvability and Adaptive Radiations''.
== Voci correlate ==
Riga 37 ⟶ 36:
* [[Incapsulazione]]
* [[Libreria software]]
* [[Legge di Conway]]
* [[David Parnas]]
* [[Ilities]]
* [[Modularità della mente]]
* [[Filosofia della mente]]
== Collegamenti esterni ==
*{{cita web|http://modules.sourceforge.net/|Environment Modules}}
|