Modularità (informatica): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 1:
La '''Modularità''' è un concetto che trova applicazione nel contesto dell' [[Informatica]], più precisamente nella [[programmazione]], così come la [[cognitivehScienze sciencecognitive]] 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 le [[interfaceInterfaccia (computer scienceinformatica)|interfaceinterfacce]] 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(linguaggio languagedi programmazione)|D]], [[F programming language|F]], [[Fortran]], [[Pascal programming language(linguaggio)|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.
 
== Moduli e classi ==
La differenza tra le [[classClasse (computer scienceinformatica)|classi]] ed i moduli sono:
 
*Le Classi possono essere instanziate per creare [[objectOggetto (computer scienceinformatica)|oggetti]],
*Le Classi possono [[inheritanceEreditarietà (object-oriented programminginformatica)|inheritereditarietà]] il loro comportamento e dati da altre classi,
*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.
 
Le simiglianze con le classi sono:
Riga 19:
 
==La modularità nella scienza del computer==
La '''modularità''' è una proprietà dei [[computerProgramma program(informatica)|programmi]] che misura la estensione di quanto sono composti in parti separate chiamate [[module (programming)Modulo|modulesmoduli]]. 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.
 
I programmi che hanno molte correlazioni dirette tra qualsiasi parti del codice di programmazione sono meno '''modulari''' (più strettamente [[CouplingAccoppiamento (computer scienceinformatica)|coupledaccoppiati]]) dei programmi le cui relazioni avvengono solo tramite ben specificate interfacce di moduli. between modules.
 
Le tecniche di '''programmazione modulare''' sono quelle che incrementano la modularità. (Vedi anche: [[Modular Programming | modular programming]], [[structured programming]], [[procedural programming]], [[object-orientedProgrammazione programmingorientata agli oggetti]] e [[aspect-orientedProgrammazione orientata agli programmingaspetti]], [[distributedCalcolo computingdistribuito]].)
 
==Lavori citati==
Riga 31:
==Vedi anche==
* [[Modular programming]]
* [[CognitiveScienze Sciencecognitive]]
* [[Cohesion (computer science)|Cohesion]]
* [[Coupling (computer science)|Coupling]]
* [[Encapsulation]]
* [[LibraryLibreria (computing)software]]
* [[David Parnas]]
* [[Ilities]]
* [[Modularity of mind]]
* [[PhilosophyFilosofia ofdella mindmente]]
* [[Constructionist design methodology]]. A methodology for creating modular, broad A.I. systems.