Software

insieme delle componenti immateriali di un sistema elettronico di elaborazione
Versione del 20 feb 2005 alle 16:32 di Hashar (discussione | contributi) (warnfile Adding:sl,lv,vi Modifying:zh,es,da)

Definizione

Il termine software (usato in ambito informatico) può indicare l'insieme dei programmi (o uno solo di questi) in grado di funzionare su un computer.

Classificazione

All'interno del software si possono distinguere alcune grandi categorie:

Origine

Il termine software prende origine durante la seconda guerra mondiale. Gli inglesi erano impegnati nella decrittazione dei codici di Enigma, di cui già conoscevano la meccanica interna (detta hardware, nel senso di ferraglia) grazie ai servizi segreti polacchi. La prima versione aveva tre rotori per mescolare le lettere. Dopo il 1941, all'Enigma della Marina tedesca 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. Poiché queste istruzioni erano scritte su pagine solubili nell'acqua, per poter essere più facilmente distrutte, da ciò, e per contrasto con hardware, furono chiamate software. Il senso moderno del termine deriva dalla traslazione del senso alle istruzioni date ai computer ed è stata utilizzata per la prima volta in questo senso nel 1957 da John W. Tukey, noto statistico della Princeton University.

Organizzazione interna

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, manutenuti più semplicemente e riusati in altri progetti.

La gestione del processo di sviluppo è caratterizzato da un ciclo di vita codificato nell'ambito dell'Ingegneria del Software (Software Engineering, nella dizione anglosassone) quali

Qualità del software

La realizzazione del software è un’attività complessa che richiede molte fasi. Per questo motivo può essere associato ad un prodotto ingegneristico ma se ne differenzia soprattutto per alcune caratteristiche:

  • è molto malleabile, tale caratteristica porta a pensare che modificare il software sia banale, ma non è proprio così;
  • è un prodotto human intensive, cioè, richiede un grosso sforzo in risorse umane perché si concentra soprattutto sulla progettazione e sull'implementazione.

Esistono molte qualità che si richiede al software che sono descritte più approfonditamente nella sezione corrispondente.

Voci correlate

Collegamenti esterni