Tecnologie Informatiche n°5 IL SOFTWARE Col termine software (SW) si indicano i programmi in generale, ma di questi ne esistono differenti e diverse tipologie che potremmo raggruppare in queste due categorie: - il SW DI SISTEMA: cui è demandata la gestione dell’hardware e degli altri programmi, in pratica è il SW che fa funzionare il computer; - il SW APPLICATIVO: rappresentato dai programmi di scrittura, calcolo, grafica, la gestione di risorse in rete che abitualmente utilizziamo. Fanno parte dei software applicativo anche i linguaggi di programmazione. IL SOFTWARE DI SISTEMA Del SW di sistema fanno parte: il SISTEMA OPERATIVO, le UTILITY, il SW DRIVER, il SW DI RETE. Le utility sono programmi di utilità che aggiungono funzionalità al sistema operativo, ad esempio il programma che aiuta la ricerca dei file sul computer è una utility, come lo è il programma che permette di regolare data ed ora, o quello che consente di comprimere più file e così via. I driver, da non confondere con drive (periferica I/O che legge e scrive su CD e DVD ad esempio), sono i programmi che consentono al sistema operativo di “riconoscere” una nuova periferica e quindi di poter gestire il traffico dei dati da e per essa. Il SW di rete è quello che consente di gestire le risorse di computer collegati tra di loro in una rete. È il SW che ad esempio permette di leggere i dati sull’HD di un altro computer o che ci permette di condividere la stampante da più postazioni. IL SISTEMA OPERATIVO è il programma fondamentale di ciascun computer, senza di esso non sarebbe possibile far “girare” programmi o utilizzare le periferiche. All’accensione del computer avviene la fase di bootstrap durante la quale si effettua il controllo della configurazione del sistema e delle componenti hardware disponibili e il caricamento dei moduli fondamentali del sistema operativo dal disco fisso alla RAM (altri moduli del SO verranno caricati in seguito all’occorrenza). Allo spegnimento il sistema operativo deve eliminare tutti i file temporanei e chiudere le applicazioni attive (avvertendo l’utente di eventuali lavori non salvati). I moderni sistemi operativi hanno l’importante caratteristica di essere multi-tasking ovvero consentono di utilizzare più programmi contemporaneamente. Inoltre, i sistemi operativi sono multi-utente ovvero dopo il riconoscimento, il sistema operativo predispone l’ambiente di lavoro e le impostazioni predefinite per quell’utente che può così accedere soltanto ai propri dati, senza doverli condividere con altri utenti dello stesso computer. Questa fase si indica con il termine identificazione e avviene mediante il login, ovvero tramite password, al termine della fase di bootstrap. Il SO ha le seguenti funzioni: Page 1 of 6 Tecnologie Informatiche • n°5 organizza tutto il traffico dei dati sia in input sia in output gestendo il funzionamento delle periferiche; • gestisce le memorie di massa organizzando sia l’archiviazione che la ricerca ed il recupero dei dati; • durante la fase di elaborazione dei dati distribuisce ai vari programmi impegnati contemporaneamente (multitasking) le risorse del sistema, soprattutto RAM e accesso alla CPU; • gestisce l’interfaccia computer/utente, ovvero gestisce le modalità di comunicazione dell’uomo col computer • consente l’accesso di più persone allo stesso computer garantendone la privacy e la sicurezza dei documenti non condivisi • segnala guasti dell’hardware e malfunzionamenti del software. I primi SO come il PCOS (Personal Computer Operative System) utilizzato da Olivetti o il DOS (Disc Operating System) utilizzato da IBM nei primi personal computer degli anni ’80 erano sistemi operativi a LINEA DI COMANDO, ovvero per ogni operazione che si richiedeva al computer l’utente doveva scrivere una riga di testo contenente l’ordine relativo, il tutto con un adeguato lessico ed un’adeguata sintassi, (per comunicare con la macchina occorreva imparare una vera e propria lingua). Bastava dimenticare un segno di punteggiatura o digitare male una lettera ed era tutto da riscrivere. Oggi i SO che utiliziamo sui nostri computer sono tutti ad INTERFACCIA GRAFICA, molto più intuitivi e facili da usare, basati su disegni (ICONE) sui quali agire cliccando col mouse e che non richiedono particolari studi preventivi. MACINTOSH, più noto semplicemente come Mac è il sistema operativo dei computer Apple. Mac OS (Macintosh Operative System) è stato il primo SO ad utilizzare già nel 1984 un interfaccia grafico ed un mouse che ne consentisse la gestione, comandando un puntatore mobile sullo schermo in grado di selezionare, trascinare, ridimensionare oggetti grafici, ecc. MAC OS ha da sempre puntato sulla facilità ed intuitività d’uso, ma pur essendo il sistema operativo più semplice da utilizzare, soprattutto con la sua ultima versione, MAC OS X, è sicuramente il SO più efficiente ed affidabile per personal computer. La solidità e potenza dei computer Apple / Macintosh trova la sua massima applicazione nell’ambito dell’editoria, della grafica, dell’elaborazione dell’immagine e della progettazione. Nella sua storia ben due volte, prima della caduta del muro di Berlino e nei primi anni di questo secolo, Apple / Macintosh ha ricevuto dal Pentagono il divieto di esportazione di modelli d’avanguardia per la loro potenza di calcolo ritenuta eccessiva e pericolosa se in mano a paesi ostili. WINDOWS, adottato come sistema operativo sui computer IBM e divenuto di conseguenza il sistema operativo di tutti i computer costruiti su licenza IBM come: HP, Page 2 of 6 Tecnologie Informatiche n°5 Siemens, Acer, Compaq e decine e decine di altri marchi più o meno noti che formano la vasta galassia dei computer IBM COMPATIBILI, degli ASSEMBLATI e dei CLONI, è sicuramente il sistema operativo più conosciuto e diffuso al mondo. Dalla metà degli anni ’90 anche Windows utilizza una GUI (Grafical User Interface) interfaccia grafica. Essendo il sistema operativo più diffuso, Windows vanta anche la migliore compatibilità con periferiche e SW, poiché i suoi utenti costituiscono un vasto mercato. In quasi tutti gli ambienti di lavoro le workstation utilizzano Windows, in una delle sue varie versioni professionali, con applicativi sviluppati ad hoc. Si può sicuramente dare a Windows il merito della grande diffusione delle tecnologie che ricadono nel settore dell’OFFICE AUTOMATION e del TELELAVORO. LINUX e UNIX sono due altri SO molto diffusi. Entrambi di tipo OPEN SOURCE. LINUX diffuso soprattutto negli ambienti universitari, oltre ad essere gratuito, offre ottime prestazioni dal punto di vista della stabilità e della versatilità ed adattabilità a differenti esigenze. UNIX è nato nel lontano 1969, prodotto dal colosso americano delle telecomunicazioni AT&T/BELL (oggi non esiste più in quanto smembrato dall’antitrust), per la gestione dei mainframe delle grandi reti aziendali e pubbliche. Oggi è molto utilizzato per la gestione delle comunicazioni in internet. I SOFTWARE APPLICATIVI Un programma applicativo è un programma che mette a disposizione gli strumenti necessari alla realizzazione di documenti. In pratica un applicativo costruisce un ambiente di lavoro virtuale e specializzato. Un software applicativo viene venduto sotto forma di pacchetti (packages) contenenti i manuali e i CD per l’installazione. Vi sono infatti vari tipi di applicativi ciascuno con un proprio campo di applicazione: • OFFICE AUTOMATION (lavoro da ufficio) o Videoscrittura (word processor): Word e Adobe Acrobat permettono di usare il computer come una sofisticata macchina da scrivere o Foglio elettronico (spread sheet) Excel e Calc permettono di creare tabelle, inserire dati da cui ottenere grafici o Presentazione: Power Point e Impress permettono di realizzare diapositive visualizzabili a computer o proiettabili. o Impaginazione (desktop publishing): Publisher permettono di l’impostazione grafica di libri, riviste, locandine, pubblicità. o Archiviazione (database): Access permettono di archiviare grandi quantità di dati organizzati in tabelle. Page 3 of 6 Tecnologie Informatiche n°5 o Contabilità aziendale: permettono di gestire il magazzino, la contabilità generale, le vendite, gli ordini di una azienda. • GRAFICA o CAD (Computer Aided Design): Autocad programmi orientati alla progettazione e al disegno tecnico, alcuni permettono di ottenere rappresentazioni tridimensionali e vengono utilizzati anche a livello industriale. o Fotoritocco: Photoshop permettono di elaborare immagini fotografiche o Grafica: Corel Draw permettono di modificare o realizzare disegni • MULTIMEDIALITA’ o Audio/video player: Media Player permettono la riproduzione di brani musicali e video in diversi formati e la copia su supporti diversi o Masterizzazione: CloneCD e Nero Burning permettono di copiare CD e DVD (operazione illecita). • INTERNET o Software di navigazione (browser): Explorer e Mozzilla permettono di navigare su Internet o Software di posta elettronica: Outlook permettono di inviare e ricevere email. I programmi espressamente creati per risolvere i problemi di un cliente specifico si chiamano software ad hoc oppure on demand. Se il programmatore che ha creato il software richiede i diritti d’autore per poterlo vendere, il software prende il nome di software proprietario. Il software proprietario viene venduto con la licenza d’uso ovvero il permesso per l’uso del prodotto. In pratica viene fornito un numero di serie o l’identificativo del prodotto stampato sulla copertina del CD o del DVD che viene richiesto durante l’installazione del software. Se invece il software viene rilasciato a titolo gratuito prende il nome di freeware e per esso non è previsto nessun costo economico. Esistono anche software detti shareware ovvero distribuibili per essere condivisi. In questo caso gli autori possono prevedere due modalità di condivisione: • A tempo: viene concesso l’uso gratuito del programma ma solo per un tempo limitato passato il quale l’utente, se interessato, è costretto ad acquistare il software. • A versione limitata: viene concesso l’uso gratuito solo di una parte del programma privato di alcune funzionalità fondamentali (ad esempio salvare o stampare) in modo che l’utente possa valutare il prodotto ma non possa utilizzarlo nella sua totalità. I programmi freeware e i programmi shareware non includono il codice sorgente quindi non sono modificabili. Il software libero, conosciuto come Open Source (letteralmente sorgente aperto), indica il software che può essere liberamente eseguito, copiato, distribuito e modificato o migliorato: perciò di questo software è disponibile anche il codice sorgente. Page 4 of 6 Tecnologie Informatiche n°5 Il software libero è frutto di un intenso lavoro operato, spesso a titolo gratuito, da migliaia di programmatori in tutto il mondo i quali, mettono a disposizione le proprie specifiche competenze, oltre che idee e tempo, contribuiscono alla diffusione e alla crescita di programmi affidabili e ricchi di funzionalità. Nel corso del tempo un sistema operativo o un applicativo software necessitano spesso di revisioni per correggere errori, migliorare le prestazioni, aggiungere nuove funzionalità, adattarsi alle nuove richieste fisiche dell'hardware, fornire modalità di interazione più facili per l'utente. Questa attività di revisione produce versioni successive di un prodotto indicate con il termine di release. Ad esempio un programma può avere una versione iniziale 1.0 e le successive 1.2, 1.3, o 2.0, 2,1 : dove la variazione del numero decimale corrisponde a modifiche non sostanziali rispetto alla versione precedente mentre la modifica del numero intero corrisponde all'aggiunta di nuove funzionalità importanti e migliorative. Con il termine file (dall’inglese archivio) si indicano una serie di informazioni organizzate e memorizzate su un supporto di memoria. Un file è identificato con un nome che ne identifica il contenuto e con l’estensione che dipende dal programma con cui è stato creato: .txt testi creati con notepad .doc e .rtf testi creati con word .xls fogli elettronici create con excel .mdb database di access .ppt presentazioni di powerpoint .gif e .jpg immagini .pdf documenti di adobe .wav e .mp3 file audio e musicali .avi e .mov filmati .zip e .rar file compressi .tmp file temporanei .exe file eseguibili Page 5 of 6 Tecnologie Informatiche n°5 I LINGUAGGI DI PROGRAMMAZIONE Per realizzare un pacchetto applicativo occorre scrivere un programma anche molto complesso. Fanno parte del software anche i linguaggi di programmazione. Essi sono gli ambienti che vengono utilizzati per scrivere un programma ovvero per tradurre le procedure di risoluzione di un problema in una forma comprensibile all’elaboratore. I moderni linguaggi di programmazione sono di tipo “ad alto livello” ovvero usano termini vicini al linguaggio naturale (molto diversi dal codice binario comprensibile ai dispositivi elettronici di cui è costituito il computer). Per poter essere immesso sul mercato un pacchetto software attraversa le seguenti fasi che ne costituiscono il processo di sviluppo: • la fase di analisi, ovvero l'indagine preliminare sul contesto in cui il prodotto software deve inserirsi, sulle caratteristiche che deve esibire, ed eventualmente su costi e aspetti logistici della sua realizzazione. Si può dire che l'analisi ha lo scopo di definire il problema da risolvere. Questa fase è costituita anche da raccolta dei dati tramite colloqui tra cliente/committente e relativi sviluppatori. • la fase di progetto, in cui si definiscono le linee essenziali della struttura del sistema da realizzare, in funzione dei requisiti evidenziati dall'analisi. Si può dire che il progetto ha lo scopo di definire la soluzione del problema. • la fase di codifica del sistema, ovvero la sua realizzazione concreta; questa tipicamente consiste nella realizzazione di uno o più programmi in un determinato linguaggio di programmazione. La codifica ha lo scopo di realizzare la soluzione. • la fase di collaudo, volta a misurare in che modo il sistema realizzato soddisfa i requisiti stabiliti nella fase di analisi, ovvero a valutarne la correttezza rispetto alle specifiche tramite test. • la fase di manutenzione, che comprende tutte le attività di modifica del software successive al suo rilascio presso il cliente o la sua immissione sul mercato. Queste attività possono essere volte a correggere errori del software del software, adattarlo a nuovi ambienti operativi o estenderne le funzionalità. I programmi vengono scritti con linguaggi di programmazione diverso a seconda del contesto operativo: • GENERICO: Visual Basic facile da imparare e adatto a scrivere programmi di diverso tipo. • SCIENTIFICO: Pascal e C adatti a risolvere problemi di tipo matematico- scientifico. • AD OGGETTI: Java, C++, Delphi più recenti e di grande successo usati anche per produrre il software dei cellulari di ultima generazione. • INTERNET WEB: PHP, Javascript, HTML utilizzati per creare pagine di siti web. Il programmatore scrive il programma sorgente che per diventare operativo deve essere tradotto in linguaggio macchina. Questa operazione di traduzione prende il nome di interpretazione o compilazione e da essa si ottiene il programma eseguibile. Le software house mettono in vendita solo quest’ultimo e mantengono il più stretto riserbo sul codice sorgente. Page 6 of 6