SOFTWARE

Il termine software sta ad indicare un programma o un insieme di programmi in grado di funzionare su un elaboratore. In alcune lingue romanze la parola con la radice latina programmatura è anche usata

I software possono essere classificati secondo diverse caratteristiche:
  • funzionalità (videoscrittura, foglio elettronico, database, browser ecc.),
  • grado di apertura (Software libero o Software proprietario),
  • tipo di sistema operativo (i software possono girare su Linux, Mac OS, Unix o Windows),
  • installabile o portabile,
  • tipo di interfaccia (testuale o grafica).

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:

  • Software di base, che a sua volta si divide in tre ulteriori categorie:
    • Sistemi operativi
    • Compilatori
    • Librerie
  • driver
  • firmware (cioè i software contenuti direttamente nell'hardware e che ne regolano le funzioni interne)
  • programmi applicativi (cioè tutti quei software che vengono utilizzati per il lavoro quotidiano: dai programmi per l'ufficio, ai videogiochi)
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 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 subito eseguite da 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:

  • Il modello classico, o a cascata (water-fall)
  • Il modello a spirale (object oriented)

      Testo pulsante