Modularità (informatica): differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
fix |
||
(37 versioni intermedie di 23 utenti non mostrate) | |||
Riga 1:
{{U|Programmazione modulare|informatica|dicembre 2013}}
La '''Modularità''' è un concetto che trova applicazione nel contesto della [[computer science]], più precisamente nella [[programmazione]], così come la [[cognitive science]] nello scoprire la struttura della [[mente]]. Un '''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.▼
▲La '''
I moduli forniscono una separazione tra [[interface (computer science)|interface]] 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 programming language|Ada]], [[D programming language|D]], [[F programming language|F]], [[Fortran]], [[Pascal programming language|Pascal]] (alcuni derivati), [[ML programming language|ML]], [[Modula-2]], [[Python (programming language)|Python]] e [[Ruby programming language|Ruby]]. Il sistema IBM i (nominato come AS/400 e iSeries) utilizza i moduli nel suo RPG, COBOL e CL quando si programma nel suo ambiente ILE.▼
▲I moduli forniscono una separazione tra le [[
== Moduli e classi ==
La differenza tra le [[
* Le Classi possono essere
* Le Classi possono [[
* Il [[
▲*Le Classi possono essere instanziate per creare [[object (computer science)|oggetti]],
* Entrambi possono essere usati per nascondere i dettagli dell'implementazione.▼
▲*Le Classi possono [[inheritance (object-oriented programming)|inherit]] il loro comportamento e dati da altre classi,
* Entrambi possono formare gerarchie di modules/classes.▼
▲*Il [[Polymorphism (computer science)|Polimorfismo]] permette la relazione tra istanze di classi di poter cambiare a run-time, mentre le relazioni tra i moduli sono statiche.
== Linguaggi di interconnessione dei moduli (MILs) ==▼
▲Le simiglianze con le classi sono:
I '''linguaggi di interconnessione dei moduli''' ('''MILs''') forniscono costrutti di grammatica formale per decidere le varie specifiche di
▲*Entrambi possono essere usati per nascondere i dettagli dell'implementazione.
La '''modularità''' è una proprietà dei [[
▲*Entrambi possono formare gerarchie di modules/classes.
I programmi che hanno molte correlazioni dirette tra qualsiasi parti del codice di programmazione sono meno '''modulari''' (più strettamente [[
▲== Linguaggi di interconnessione dei moduli (MILs)==
▲I '''linguaggi di interconnessione dei moduli''' ('''MILs''') forniscono costrutti di grammatica formale per decidere le varie specifiche di interconnesione dei moduli necessarie ad assemblare un completo sistema software. I MILs permettono la separazione tra la '''programmazione in piccolo''' e la '''programmazione in grande'''. Scrivere un modulo rappresenta la programmazione in piccolo, mentre assemblare un sistema tramite l'aiuto del MIL rappresenta la programmazione in grande. Un esempio del MIL è il MIL-75.
Le tecniche di '''programmazione modulare''' sono quelle che incrementano la modularità. (Vedi anche: [[
▲==La modularità nella scienza del computer==
▲La '''modularità''' è una proprietà dei [[computer program]] che misura la estensione di quanto sono composti in parti separate chiamate [[module (programming)|modules]]. Un approccio modulare sta guadagnando popolarità nel campo della [[A.I. Systems Integration|artificial intelligence systems integration]], dove un sistema A.I. generale in larga scala system è composto di moduli dei quali ognuno serve ad uno specifico scopo e comunica con gli altri per produrre un comportamento generale desiderato.
== Lavori citati ==▼
▲I programmi che hanno molte correlazioni dirette tra qualsiasi parti del codice di programmazione sono meno '''modulari''' (più strettamente [[Coupling (computer science)|coupled]]) dei programmi le relazioni avvengono solo tramite ben specificate interfacce di moduli. between modules.
* Guimerá, R. & L.A. Nunes Amaral (2005).
* Yang, A.S. (2001). ''Modularity, Evolvability and Adaptive Radiations''.
== Voci correlate ==
▲Le tecniche di '''programmazione modulare''' sono quelle che incrementano la modularità. (Vedi anche: [[Modular Programming | modular programming]], [[structured programming]], [[procedural programming]], [[object-oriented programming]] e [[aspect-oriented programming]], [[distributed computing]].)
* [[Programmazione modulare]]
* [[Scienze cognitive]]
▲==Lavori citati==
* [[Coesione (Informatica)]]
▲*Guimerá, R. & L.A. Nunes Amaral (2005). ''Functional Cartography of Complex Metabolic Networks''. [[Nature (journal)|Nature]], '''433''': 895-900.
* [[Accoppiamento (Informatica)]]
▲*Yang, A.S. (2001). ''Modularity, Evolvability and Adaptive Radiations''. Evolution and Development, '''3''':2, 59-72.
* [[Incapsulazione]]
* [[Libreria software]]
* [[
* [[David Parnas]]
* [[Ilities]]
* [[
* [[
==Collegamenti esterni==▼
*[http://modules.sourceforge.net/ Environment Modules]▼
▲== Collegamenti esterni ==
[[Categoria:Concetti di programmazione]]
|