Software: differenze tra le versioni

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
Contenuto cancellato Contenuto aggiunto
m Annullate le modifiche di 93.34.186.124 (discussione), riportata alla versione precedente di Neperiano
Riga 3: Riga 3:


Il termine è un [[vocabolo]] della [[lingua inglese]] costituito dall’unione di due parole, ''soft'' (morbido) e ''ware'' (manufatto, componente, oggetto, cosa). Il termine si contrappone tradizionalmente a [[hardware]] (la componente fisica di un sistema di calcolo). Nel tempo sono entrati nell'uso altri termini che descrivono elementi di un computer, come il [[firmware]]. Il suffisso ''-ware'' viene usato anche in altri termini che indicano particolari tipi di programmi: in funzione del ruolo che hanno in un sistema di calcolo (per esempio [[middleware]]); del tipo di [[licenza]] con cui sono distribuiti ([[freeware]], [[shareware]]); e altro.
Il termine è un [[vocabolo]] della [[lingua inglese]] costituito dall’unione di due parole, ''soft'' (morbido) e ''ware'' (manufatto, componente, oggetto, cosa). Il termine si contrappone tradizionalmente a [[hardware]] (la componente fisica di un sistema di calcolo). Nel tempo sono entrati nell'uso altri termini che descrivono elementi di un computer, come il [[firmware]]. Il suffisso ''-ware'' viene usato anche in altri termini che indicano particolari tipi di programmi: in funzione del ruolo che hanno in un sistema di calcolo (per esempio [[middleware]]); del tipo di [[licenza]] con cui sono distribuiti ([[freeware]], [[shareware]]); e altro.

== Storia del software ==
Il termine ''software'' ha origine durante la [[seconda guerra mondiale]]. I tecnici dell'esercito [[inghilterra|inglese]] erano impegnati nella [[Crittoanalisi|decrittazione]] dei codici tedeschi di [[Enigma (crittografia)|''Enigma'']], di cui già conoscevano la meccanica interna (detta ''[[hardware]]'', ''componente dura'', nel senso di ferraglia) grazie ai [[servizi segreti]] polacchi. La prima versione di Enigma sfruttava tre [[Rotore (matematica)|rotori]] per mescolare le lettere.

Dopo il [[1941]], ad ''Enigma'' venne aggiunto un rotore, e il team di [[Crittoanalisi#Crittanalisti storici|criptanalisti]] inglesi, capitanati da [[Alan Turing]], si dovette interessare non più alla sua struttura fisica, ma alle posizioni in cui venivano utilizzati i rotori della nuova [[Enigma (crittografia)|Enigma]].

Dato che queste istruzioni erano scritte su pagine [[solubilità|solubili]] nell'[[acqua]] (per poter essere più facilmente distrutte, evitando in tal modo che cadessero nelle mani del nemico) furono chiamate ''software'' (''componente tenera''), in contrapposizione all'''hardware''.

Il senso moderno del termine deriva dalle istruzioni date ai [[computer]], ed è stato utilizzato per la prima volta nel [[1957]] da [[John Wilder Tukey]], [[Lista di statistici celebri|noto statistico]] [[Stati Uniti d'America|statunitense]].

Dal [[1950]] l'analogia tra l'''hardware'' ed il [[corpo umano]] e quella tra il ''software'' e la [[mente umana]] si è fatta molto forte, dal momento che Turing ha sostenuto che il [[progresso tecnologico]] sarebbe riuscito a creare, entro il [[2000]], delle [[macchina intelligente|macchine intelligenti]] (in grado cioè di "pensare" autonomamente) atte alla [[risoluzione del problema|risoluzione dei problemi]].


== Aumento del codice e potenziamento dell'hardware ==
== Aumento del codice e potenziamento dell'hardware ==

Versione delle 00:06, 6 dic 2010

OpenOffice.org Writer, un software di videoscrittura, sul sistema operativo Ubuntu.

Il software è un programma o un insieme di programmi in grado di funzionare su un computer o qualsiasi altro apparato con capacità di elaborazione (smartphone, console, navigatori satellitari e così via).

Il termine è un vocabolo della lingua inglese costituito dall’unione di due parole, soft (morbido) e ware (manufatto, componente, oggetto, cosa). Il termine si contrappone tradizionalmente a hardware (la componente fisica di un sistema di calcolo). Nel tempo sono entrati nell'uso altri termini che descrivono elementi di un computer, come il firmware. Il suffisso -ware viene usato anche in altri termini che indicano particolari tipi di programmi: in funzione del ruolo che hanno in un sistema di calcolo (per esempio middleware); del tipo di licenza con cui sono distribuiti (freeware, shareware); e altro.

Storia del software

Il termine software ha origine durante la seconda guerra mondiale. I tecnici dell'esercito inglese erano impegnati nella decrittazione dei codici tedeschi di Enigma, di cui già conoscevano la meccanica interna (detta hardware, componente dura, nel senso di ferraglia) grazie ai servizi segreti polacchi. La prima versione di Enigma sfruttava tre rotori per mescolare le lettere.

Dopo il 1941, ad Enigma venne aggiunto un rotore, e il team di criptanalisti inglesi, capitanati da Alan Turing, si dovette interessare non più alla sua struttura fisica, ma alle posizioni in cui venivano utilizzati i rotori della nuova Enigma.

Dato che queste istruzioni erano scritte su pagine solubili nell'acqua (per poter essere più facilmente distrutte, evitando in tal modo che cadessero nelle mani del nemico) furono chiamate software (componente tenera), in contrapposizione all'hardware.

Il senso moderno del termine deriva dalle istruzioni date ai computer, ed è stato utilizzato per la prima volta nel 1957 da John Wilder Tukey, noto statistico statunitense.

Dal 1950 l'analogia tra l'hardware ed il corpo umano e quella tra il software e la mente umana si è fatta molto forte, dal momento che Turing ha sostenuto che il progresso tecnologico sarebbe riuscito a creare, entro il 2000, delle macchine intelligenti (in grado cioè di "pensare" autonomamente) atte alla risoluzione dei problemi.

Aumento del codice e potenziamento dell'hardware

Alla storia dell'evoluzione del software è legato lo sviluppo dell'hardware. Come evidenziato dalla seconda legge di Moore, una minaccia alla velocità di elaborazione, oltre ai costi, proviene dal software. Infatti ciò che conta per un utente non è tanto la velocità di elaborazione del processore, quanto la velocità effettiva di elaborazione del codice, calcolata in base al tempo che occorre alla CPU per eseguire un'operazione (come la scrittura di un testo, la creazione di una cartella, ecc.).

Nathan Myhrvold, direttore dell'Advanced Technology Group della Microsoft, ha effettuato uno studio sui prodotti Microsoft calcolando le linee di codifica per le successive release dello stesso software:

  • Basic: da 4.000 linee di codice nel 1975 a 500.000 nel 1995
  • Word: da 27.000 linee di codice nel 1982 a 2.000.000 nel 2002

La continua aggiunta di nuove funzionalità al software esistente giustifica la costante richiesta di processori più veloci, memorie sempre più grandi e più ampie capacità di I/O (Input/Output).

Infatti, anche le altre tecnologie si sono evolute di pari passo:

Myhrvold traccia un parallelismo con la legge di Moore: "abbiamo aumentato la dimensione e la complessità del software ancora più rapidamente di quanto non prevedeva la legge di Moore", "gli utenti del software hanno sempre consumato le maggiori capacità di elaborazione ad una velocità uguale o superiore a quella con cui i produttori di chip le mettevano a disposizione" (Stewart Brand, 1995).

Classificazione

I software possono essere classificati secondo diverse caratteristiche:

Per fare un esempio, un software del tipo sistema operativo - basato su Linux - può essere a riga di comando o a interfaccia grafica e può essere una distro live o installabile.

I software possono essere divisi in quattro categorie principali:

Realizzazione del software

Lo stesso argomento in dettaglio: Processo software.

Un software viene normalmente realizzato utilizzando uno o più linguaggi di programmazione. Se il progetto diventa complesso, è opportuno dividere il programma in uno o più moduli, che possono essere così affidati a diversi programmatori, modificati più semplicemente e riutilizzati in altri progetti.

La fase detta di compilazione, traduce ogni file del codice sorgente, scritto nel o nei linguaggi di programmazione, in un file oggetto contenente il programma in linguaggio macchina adeguato all'architettura hardware di destinazione. In seguito tutti i file oggetto attraversano una fase di linking per giungere al prodotto finale: il file eseguibile.

Alcuni software non vengono compilati in quanto le istruzioni contenute nel codice sorgente vengono eseguite utilizzando un software detto interprete.

La gestione del processo di sviluppo è caratterizzato dalla scelta di un modello di sviluppo del software codificato nell'ambito dell'Ingegneria del Software (Software Engineering), esistono:

La realizzazione del software è un'attività complessa articolata in più fasi, per questo motivo spesso il software è associato ad un prodotto ingegneristico, ma se ne differenzia soprattutto per alcune caratteristiche:

Licenze d'utilizzo e distribuzione

Lo stesso argomento in dettaglio: Licenza (informatica).
Le differenti categorie del software

La licenza d'uso è un documento che accompagna il software e specifica i diritti e i doveri di chi lo riceve e di chi lo diffonde.

Tutte le licenze d'uso traggono il loro valore legale dalle norme sul diritto d'autore (il copyright).

Esistono licenze libere, le licenze Open Source e licenze proprietarie. Nasce in seguito anche l'Open content che ha come scopo quello di trasferire le licenze su opere diverse dal software.

Le licenze di utilizzo e distribuzione del software libere ed Open Source sono numerose, ma quelle effettivamente diffuse sono poche. Per l'89% si tratta di GPL, LGPL e BSD (licenza storica di Unix, tornata in uso dall'avvento di Linux).

Alcune licenze libere:

Ogni tipo di licenza differisce dagli altri per vari aspetti

Brevettabilità del software

Nell'Unione europea, i software non possono essere oggetto di brevetto. Il 6 luglio 2005, il Parlamento Europeo ha respinto la proposta di direttiva per la "Brevettabilità delle invenzioni attuate per mezzo di elaboratori elettronici", sostenuta dalla Commissione[1][2].

La proposta è stata rigettata alla prima votazione con 648 voti contrari, 32 favorevoli, rispetto a 680 schede scrutinate.

Il giorno prima della votazione, la Commissione Europea ha confermato che, in caso di bocciatura, non sarebbe stato presentato un nuovo testo sull'argomento.

Note

Bibliografia

  • G. Guglielmetti, L'invenzione di software. Brevetto e diritto d'autore, 2ª ed., Milano, Giuffrè, 1997.

Voci correlate

Sviluppo del software

Strumenti

Tipi di software in relazione alla licenza d'uso

Tipi di software

Professioni correlate

Fondazioni e aziende

Altri progetti

Collegamenti esterni

  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica