Modularità (informatica)

concetto dell'informatica
Versione del 16 ago 2007 alle 17:45 di Francescobrisa (discussione | contributi) (Nuova pagina: La '''Modularità''' è un concetto che trova applicazione nel contesto della computer science, più precisamente nella programmazione, così come la cognitive science nell...)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

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.

I moduli forniscono una separazione tra 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, D, F, Fortran, Pascal (alcuni derivati), ML, Modula-2, Python e 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.

Moduli e classi

La differenza tra le classi ed i moduli sono:

  • Le Classi possono essere instanziate per creare oggetti,
  • Le Classi possono inherit il loro comportamento e dati da altre classi,
  • Il Polimorfismo permette la relazione tra istanze di classi di poter cambiare a run-time, mentre le relazioni tra i moduli sono statiche.

Le simiglianze 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 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.

Modularity in Computer Science

Modularity is the property of computer programs that measures the extent to which they have been composed out of separate parts called modules. A modular approach to programming is gaining popularity in fields of artificial intelligence systems integration, where a large-scale general A.I. system is composed of modules that each serve a specific purpose and communicate with each other to produce the system's overall behavior.

Programs that have many direct interrelationships between any two random parts of the program code are less modular (more tightly coupled) than programs where those relationships occur mainly at well-defined interfaces between modules.

Modular programming techniques are those which increase modularity. (See also: modular programming, structured programming, procedural programming, object-oriented programming and aspect-oriented programming, distributed computing.)

Works Cited

  • Guimerá, R. & L.A. Nunes Amaral (2005). Functional Cartography of Complex Metabolic Networks. Nature, 433: 895-900.
  • Yang, A.S. (2001). Modularity, Evolvability and Adaptive Radiations. Evolution and Development, 3:2, 59-72.

See also

Template:Wikibooks


Template:Soft-eng-stub