Il software indica l'insieme dei programmi. Il termine deriva dall'inglese (soft=morbido e ware=componente). Si chiama programma una serie di istruzioni che la macchina deve eseguire per produrre determinati risultati. Queste istruzioni sono codificate sotto forma di algoritmi ( sequenza ordinata e finita di istruzioni). gli algoritmi vengono scritti mediante linguaggi opportuni di programmazione ( Pascal, C++) e successivamente codificati in linguaggio macchina ( sequenze di bit) mediante programmi interpreti o compilatori.
Il software può essere suddiviso in due categorie:
in entrambi i casi il software viene aggiornato dai produttori che mettono sul mercato nuove versioni aggiornate dei programmi al fine di migliorare le prestazioni ed ampliarne la funzionalità. Le diverse versioni possono portare problemi di incompatibilità.
Rappresenta l'insieme dei programmi che permettono al computer di funzionare o di svolgere attività specifiche.
Il più importante software di sistema è il SISTEMA OPERATIVO: indispensabile per il funzionamento del computer . E' formato da un insieme di programmi che vengono memorizzati sul disco fisso e caricati nella RAM autonomamente quando si accende il computer. Gestisce le risorse e le attività fondamentali del pc, svolge una serie di compiti che restano per lo più invisibili all'utente, mediante i seguenti programmi:
programma di definizione della configurazione hardware.
programma di diagnosi controlla lo stato dei vari dispositivi.
programma di supervisione: controlla il flusso dei dati di input e output, garantisce che ogni programma abbia a disposizione le risorse necessarie ( RAM, processore, unità periferiche) e assicura che il processore svolga nel modo più rapido le istruzioni. inoltre garantisce la sicurezza dei dati per esempio negando l'accesso se non si conosce la password.
programma spool gestisce le operazione di stampa.
programma di gestione delle librerie: memorizza e trova i dati e i programmi su disco rigido, floppy, CD o DVD, secondo strutture organizzate.
Cronologia dei sitemi operativi
1981-MS-DOS- Acronimo di Disk Operating System (Sistema operativo su disco) sistema operativo con interfaccia utente a linea di comando, è stato il principale sistema operativo per PC fino alla fine degli anni '80. Fu sviluppato per la IBM con il nome di PC-DOS da Bill Gates, che conservò il diritto a commercializzare una versione Microsoft del sistema operativo con il nome MS-DOS.
1969: UNIX. Sviluppato nei laboratori della Bell , nato per i grandi Mainframe delle reti aziendali e istituzionali. Ora è un sistema importante per le reti e internet.
1984 : MacOS. La Apple è l'azienda che negli anni '70 rivoluzionò il rapporto fra macchina e utente, introducendo le finestre grafiche, le icone e il sistema di puntamento del mouse. Sotto la guida di Steve Jobs e Steve Wozniak la Apple divenne una delle aziende di computer più famose. Ad essa sono legate pietre miliari dell'informatica, come Macintosh e Apple II.
1985: Windows. Ispirato al Macintosh: È il sistema operativo GUI (Graphic User Interface) realizzato dalla Microsoft per i PC IBM compatibili. Ha sostituito il sistema operativo MS-DOS con diverse versioni che hanno ottenuto un enorme successo.
1991-Linux .È un sistema operativo multipiattaforma derivato da Unix. Scritto dal norvegese Linus Torvalds Ideato da Linus Torvalds , allora 22-enne studente presso l'università' di Helsinki e sviluppato in seguito da ricercatori e programmatori di tutto il pianeta, è gratuito ed è molto diffuso in ambito universitario e di ricerca. Utilizza un'interfaccia GUI (Graphic User Interface) e ne esistono diverse versioni, come ad esempio Red Hat.
Oltre al sistema operativo, il software di sistema comprende anche:
UTILITY : programmi di utilità che aggiungono funzioni di controllo a quelle del sistema operativo, consentendo in particolare all'utente di verificare l'impostazione e l'uso delle risorse hardware. Ad esempio utility per recuperare file cancellati o per operare velocemente il download o i programmi benchmark di test standard che consentono di valutare e confrontare le prestazioni di un computer o delle sue periferiche. Fra i più comuni benchmark utilizzati ci sono: Winstone, CPUMark, Winbench, Whetstone, ecc..
DRIVER : programmi che permettono al computer di gestire la comunicazione con le unità periferiche: stampante, scannen, tavoletta grafica..ecc. quando si installa una nuova periferica occorre installare anche il relativo driver: questo programma funzionerà come intermediario tra la nuova periferica e il computer.
SOFTWARE DI RETE: programmi che consentono l'utilizzo di una rete di computer.
Sono i programmi che fanno del computer uno strumento per le applicazioni più varie. E' suddiviso in diverse categorie:
Office Automation: applicazioni professionali per il lavoro d'ufficio . Sono i programmi per la videoscrittura , fogli di calcolo (spreadsheet ), i database o programmi per creare presentazioni e volantini. Questi programmi vengono commercializzati sempre più spesso sotto forma di suite o pacchetti integrati che raccolgono numerose applicazioni. ( Microsoft Office professional , Claris Works, Lotus Smart suite, Corel suite e Novell Perfect Office );
applicazioni per il lavoro in fabbrica: software di progettazione CAD ( Computer Aided Design) e software di supporto ai processi di produzione CAM ( Computer Aided Manufacturing);
applicazioni per il Desktop Publishing ( DPT) quali i programmi utilizzati nel campo dell'editoria per la creazione di giornali e riviste ( X-Press ), per l' impaginazione e per la grafica per la creazione di Cd-Rom.
applicazioni multimediali per la creazione di animazioni ( Flash) o elaborazione di filmati ( video editing ) e suoni.
Nella didattica per creazione di simulazioni o l'uso di software
applicazione nell'insegnamento a distanza come il CAT ( Computer-Aided Training ) o il CBT ( Computer Based Training) software usato nell'auto-istruzione.
applicazioni per la comunicazione come i programmi per navigare ( browser) o programmi di posta elettronica o quelli per la video conferenza.
I programmi per la creazione di siti web ( web publishing ).
divertimento il computer può anche trasformarsi in una consolle per videogiochi.
importante: prima di acquistare un nuovo software occorre verificare la compatibilità con il modello di computer e con il sistema operativo. Ad esempio i programmi Microsoft non sono compatibili con il sistema Macintosh e viceversa.
Per comunicare tutti i sistemi operativi fanno uso di una Interfaccia Grafica ( Graphic User Interface ), interfaccia utente, basata sull'uso di finestre e di icone. La GUI è stata progettata per rendere intuitivo l'uso del computer anche a chi non possiede conoscenze specifiche.
Vi sono anche degli aiuti nell'uso dell' 'interfaccia grafica: in Windows , quando il mouse passa sopra ai pulsanti, appaiono automaticamente i tooltip ( = suggerimenti , che descrivono sinteticamente la funzione del pulsante) oppure cliccando su un oggetto con il tasto destro del mouse si apre un menu contestuale ( o di scelta rapida) che consente di fare operazioni sull'oggetto scelto ( ad esempio rinominarlo o eliminarlo).
Come viene creato il software? Le fasi che caratterizzano lo sviluppo del software sono:
analisi, cioè la descrizione dettagliata del problema e degli obiettivi, dei dati a disposizione e dei vincoLI.
idesign, formalizzazione : cioè la progettazione del programma mediante diagrammi di flusso ( flow-chart ) con la descrizione simbolica delle fasi del lavoro.
programmazione vera e propria, in cui vengono scritte le sequenze delle istruzioni utilizzando un linguaggio di programmazione ( Pascal, Cobol, C++) e la traduzione o compilazione in linguaggio macchina ( successione di 0 e 1).
testing, cioè la verifica sperimentale dell'applicazione che viene fatta provare da diversi utenti e su diversi computer :sono le prove che permettono di evidenziare eventuali " bug" (= bachi) malfunzionamenti del programma , per permetterne la correzione. La versione di prova di un software distribuita a un gruppo limitato di utenti, in genere gratuitamente si chiama Beta test .Non si tratta mai della versione finale e corrisponde a un software ancora in fase di sviluppo: proprio l'utilizzo da parte degli utenti consente di individuare eventuali errori e difetti del programma e di correggerli prima della commercializzazione. I programmi, distribuiti gratuitamente dai produttori per correggere i bug del software si chiamano " PATCH" .
distribuzione, che consiste nel mettere il programma a disposizione degli utenti. Una volta distribuito il ciclo di vita del software non si esaurisce: esso può venire aggiornato, creando una nuova versione, aggiungendo nuove funzionalità e correggendo gli errori sfuggiti alla fase di testing.
Infine si chiama PLUG IN un programma software che può essere integrato in un'applicazione più grande per fornire ulteriori funzionalità. Ad esempio nei browser si possono inserire dei plug in per eseguire file (soprattutto di animazione) che altrimenti potrebbero non essere riconosciuti.