Torna al Menu

 


1.3 - Software


 1.3.1 Tipi di software



1.3.1.1
Saper distinguere tra software di sistema e software applicativo. Comprendere i motivi delle diverse versioni di software.

Ogni sistema di elaborazione non può funzionare solo con le componenti hardware, ha necessità anche di un'altra componente "immateriale": il software.
Il software è costituito dai programmi che forniscono le istruzioni necessarie per il funzionamento dell'hardware e permettono di svolgere tutte le varie operazioni che si possono eseguire con il computer.
Il software può essere diviso in due categorie principali: il software di sistema e il software applicativo.

Il software di sistema (o software di base), è costituito da una serie di programmi, la maggior parte dei quali nell'insieme costituiscono il sistema operativo dell'elaboratore.

Esempi di sistemi operativi sono Microsoft® Windows®, Mac OS® o Linux. Si tratta dei programmi che controllano il funzionamento del computer e che devono garantire l'esecuzione delle funzioni base.

I software applicativi, si riferiscono a ciò che comunemente chiamiamo programmi.
Si tratta di applicazioni che svolgono la gran quantità di compiti per cui si impiegano i computer e che hanno lo scopo di soddisfare specifiche esigenze dell'utente, come scrivere, gestire dei dati, preparare una presentazione, studiare una lingua straniera, inviare un messaggio di posta elettronica, comporre una musica.

Altre due categorie non rientrano né nel software di sistema, né in quello applicativo pur contenendo elementi tipici di entrambi: si tratta del software di rete, che permette a gruppi di computer di comunicare tra loro e del software di linguaggio, che fornisce ai programmatori gli strumenti necessari per scrivere e sviluppare i programmi.

Oltre alla classificazione basata sui compiti svolti, i software possono essere definiti sulla base del metodo di distribuzione.
I programmi pacchettizzati sono i pacchetti software sviluppati e venduti al dettaglio.

I software freeware (o software di dominio pubblico) sono resi disponibili gratuitamente dagli sviluppatori;

I software shareware, sono simili ai freeware ma in genere richiedono una modesta spesa per gli utenti che trovano il programma soddisfacente.

In genere durante le fasi di sviluppo software, una volta completato un nuovo programma occorre effettuare una fase di test per verificarne l'efficacia e la funzionalità. Sulla base dei risultati che emergono dalla valutazione di una prima versione del software, i programmatori effettuano correzioni e implementazioni al fine di rilasciare una nuova release di aggiornamento.

I continui progressi della tecnologia, e l'esigenza di disporre sempre di nuove funzionalità portano a un continuo aggiornamento dei software già disponibili sia di sistema sia applicativi, per arricchirli di nuove possibilità. E' questo il motivo per cui vengono realizzate successive versioni di uno stesso software. Un esempio è fornito dalle versioni del sistema operativo Windows® e dei programmi applicativi Office® di Microsoft®.

I sistemi operativi Windows® ad esempio hanno subito grandi trasformazioni nel corso di oltre dieci anni passando da Windows® 3.11 a Windows® 95, poi Windows® 98 fino ad arrivare a Windows® XP. Ogni versione rappresenta un'evoluzione della precedente con l'implementazione di nuove funzioni e la risoluzione di problemi.

Tuttavia esistono anche versioni di uno stesso programma rilasciate contemporaneamente. Si tratta di programmi che si differenziamo tra loro per il contesto applicativo nel quale sono impiegati. Per questo motivo uno stesso programma può essere installato ad esempio nella versione progettata per un uso domestico del prodotto (home edition), oppure in quella indicata per un uso professionale (professional edition).


1.3.2 Software di sistema                                                                                                                                            



1.3.2.1
Saper descrivere le principali funzioni di un sistema operativo ed essere in grado di citare alcuni comuni sistemi operativi.

Un sistema operativo è un insieme di programmi che gestiscono e controllano le risorse e le attività del computer interagendo con le unità hardware da un lato e con l'utente dall'altro.

Le funzioni principali svolte dal Sistema Operativo sono:

- fornire e gestire l'interfaccia tra il computer e l'uomo;
- gestire le risorse del sistema e organizzare tutte le comunicazioni tra l'hardware e le applicazioni.

Essendo composto da programmi, il sistema operativo, per poter funzionare deve essere presente nella memoria centrale. Tuttavia i programmi non vengono caricati tutti contemporaneamente in memoria.
Al momento dell'accensione del computer dall'hard-disk, viene caricato sulla RAM solo una parte del sistema operativo, detta nucleo, che svolge le funzioni principali, mentre gli altri programmi vengono caricati solo all'occorrenza. La fase di caricamento iniziale del sistema operativo è chiamata in gergo bootstrap.

L'unità centrale di elaborazione opera su dati espressi in forma binaria, l'utente tuttavia può interagire direttamente con il sistema operativo ed è quest'ultimo che traduce al computer le richieste effettuate richiamando i programmi relativi a ciascun comando, facendo così svolgere le operazioni necessarie.

Citiamo alcuni dei principali programmi che costituiscono il sistema operativo.

- I programmi di supervisione garantiscono la corretta gestione dei componenti hardware del sistema (la memoria, il processore, le unità periferiche). Inoltre interpretano ed eseguono i comandi dell'utente e controllano il caricamento e l'esecuzione degli altri programmi;

- il programma di spool consente di gestire le operazioni di stampa in sovrapposizione all'esecuzione di altri programmi;

- i programmi di gestione delle librerie assicurano di poter memorizzare programmi e dati sulle memorie di massa, secondo strutture organizzate per facilitarne la successiva ricerca;

- i programmi di diagnosi dei malfunzionamenti e di correzione degli errori;

- i programmi di definizione della configurazione hardware del sistema.


Analizziamo ora alcuni dei sistemi operativi maggiormente utilizzati.

Il sistema operativo dei primi personal computer, costruiti da IBM® nel 1981, si chiamava MS-DOS acronimo di MicroSoft Disk Operating System, ed è stato creato da Microsoft®. E' caratterizzato da un'interfaccia testuale, detta anche interfaccia a caratteri o interfaccia a linea di comando. Con questo sistema operativo ogni comando deve essere impartito digitando un testo su una riga dello schermo e scrivendo occorre rispettare la sintassi corretta.
MS-DOS si è evoluto nel tempo arrivando alla sesta versione, finché Microsoft® non ha proposto il nuovo sistema operativo Windows®.

Nel 1984 Apple®, società americana produttrice dei computer Macintosh®, dall'architettura diversa da quella degli IBM compatibili, introdusse il proprio sistema operativo.
Nacque così Mac OS®, il primo sistema a interfaccia grafica basata su icone e finestre, che facilita enormemente l'uso del computer.Con questo sistema operativo ogni operazione (avvio e utilizzo dei programmi, utilizzo e gestione dei file) è mediata da una rappresentazione grafica. Anche questo sistema operativo ha subito nel tempo un'evoluzione fino ad arrivare alle ultime versioni Mac OS X®.

Microsoft® per rispondere al successo di Mac OS® decise di sviluppare un ambiente grafico che potesse funzionare, con il sistema operativo DOS.
Nacque così Microsoft® Windows®. Windows® è oggi il software di sistema più utilizzato.

Nato con la denominazione Windows® 3.0, si è evoluto in Windows® 95, Windows® 98, Windows ME® (Millennium Edition) per approdare all'ultimo nato Windows XP®.
Microsoft® ha contemporaneamente sviluppato anche un sistema operativo per soddisfare le esigenze di utenti professionali. Il primo prodotto è stato Windows® NT poi, passando attraverso Windows® 2000, si è assistito alla convergenza verso un'unica piattaforma con l'apparizione di Windows XP®.

Il sistema operativo UNIX, sviluppato nel 1969 dai laboratori Bell, è nato per i grandi computer delle reti aziendali e istituzionali (i cosiddetti mainframe).
UNIX comprende funzionalità molto potenti per garantire una gestione stabile ed efficiente e soddisfare le esigenze di un elevato numero di utenti che contemporaneamente attingono alle risorse di un unico computer. Nato con un'interfaccia a comandi, oggi dispone di un elevato numero di mediazioni grafiche ed è diventato una tecnologia importante per le reti di computer e per Internet.

Nel 1991 è stato introdotto il sistema operativo Linux per opera del suo inventore Linus Torwalds che lo ha distribuito gratuitamente in tutto il mondo facendo in modo che chiunque potesse leggerne il codice sorgente e quindi implementarlo.
Linux rappresenta uno degli esempi più efficaci di software libero e di progetto open source (che significa codice aperto, cioè liberamente disponibile e modificabile). Grazie a queste caratteristiche in breve tempo Linux ha potuto svilupparsi fino a diventare un sistema operativo molto valido per funzionalità e logica. Si differenzia da UNIX per la maggiore semplicità di installazione e configurazione. La presenza della componente grafica lo rende più semplice e più intuitivo, tuttavia possiede tutti i pregi di UNIX per quanto riguarda la sicurezza, stabilità e affidabilità.
Attualmente esistono diverse distribuzioni Linux, tra cui la più famosa è Red Hat.


1.3.3 Software applicativo                                                                                                                                          



1.3.3.1
Saper elencare alcuni programmi applicativi più comuni ed il loro uso, quali: elaboratore testi, foglio elettronico, database, browser Web, desktop publishing, contabilità.

Il software applicativo è costituito da programmi che sono stati sviluppati per consentire all'utente di svolgere particolari compiti utilizzando il computer.
La gamma dei programmi applicativi è molto vasta e copre esigenze molto diverse tra loro.

Indichiamo alcune tipologie di software applicativi di uso comune.

Gli elaboratori di testi, detti anche programmi di videoscrittura o word processor, sono i software applicativi più utilizzati in assoluto e consentono di scrivere, impaginare e stampare documenti di testo di qualsiasi tipo. I software più diffusi sono Word® di Microsoft®, WordPerfect® di Corel® e WordPro® di Lotus®.

I fogli elettronici consentono, in modo rapido e accurato, di eseguire calcoli ed elaborazioni matematiche su tabelle e di rappresentare graficamente i risultati.

I programmi per creare presentazioni sono utilizzati soprattutto da chi si occupa di formazione o di marketing che hanno necessità di effettuare presentazioni multimediali da mostrare in pubblico.

Gli applicativi per la gestione di database permettono un'efficace archiviazione e gestione di grandi quantità di dati. Consentono di memorizzare, aggiornare, organizzare, cercare e stampare i dati contenuti negli archivi elettronici.
Esempi di questo tipo di programmi sono File Maker Pro® e Microsoft Access®.

I programmi per la navigazione Internet, detti browser, sono applicativi specifici per la visualizzazione delle pagine web e la navigazione in Internet.

Gli applicativi per la gestione della posta elettronica, sono tra gli applicativi più utilizzati e consentono una gestione completa delle proprie caselle e-mail per la ricezione e l'invio di messaggi di posta tramite Internet.

Gli applicativi di grafica (o di desktop publishing) sono software che si utilizzano per elaborare le immagini, o compiere operazioni di fotoritocco o di impaginazione.

Accanto a questi applicativi negli ultimi anni si sono sempre più sviluppati programmi per la gestione di  applicazioni multimediali. Si tratta di programmi come Macromedia® Director® o Macromedia® Flash® che consentono di creare prodotti multimediali che integrano tanti media differenti quali testi, immagini, animazioni, filmati, suoni, realizzazioni in computer grafica 3d.
I campi di applicazione di questi programmi sono sempre più ampi e riguardano l'insegnamento, l'autoistruzione, l'editoria elettronica multimediale, il supporto alle attività di vendita e di marketing.

Esistono inoltre, tantissimi applicativi sviluppati per risolvere problemi specifici. Rientrano in questa categoria programmi per la contabilità, la gestione delle vendite e del magazzino, la gestione del personale, la prenotazione alberghiera, la gestione dei conti correnti bancari e tantissimi altri.

Citiamo infine alcuni software applicativi sviluppati con tecnologia internet che vengono "erogati" mediante le Rete.
Viene infatti sempre più spesso utilizzata la sigla ASP, come acronimo di Application Service Provider. Questa sigla indica le aziende che erogano sul Web applicazioni di vario tipo sulla base di un contratto che prevede pagamenti periodici fissi o indicizzati secondo il tipo di utilizzo.


1.3.4 Graphical User Interface                                                                                                                                   



1.3.4.1
Comprendere il significato di Graphical User Interface (GUI).

Nei sistemi operativi moderni, e anche in gran parte dei più diffusi software applicativi, l'interfaccia tra il sistema di elaborazione e l'utente, è di tipo grafico, e viene definita GUI (Graphical User Interface). Questo rappresenta il risultato dell'evoluzione che ha subito l'interfaccia utente dalla nascita dei primi sistemi di elaborazione.

Nei primi elaboratori la comunicazione tra l'uomo e la macchina avveniva attraverso schede perforate. In seguito furono introdotti la tastiera e i primi terminali video che portarono l'avvento della semplice interfaccia a carattere, inizialmente monocromatica, priva di help in linea ed esclusivamente  in lingua inglese. L'utente doveva conoscere i comandi per interagire con il computer.

Nei primi anni '80, dopo la creazione dei primi personal computer, si diffusero i primi monitor a colori e fece la sua comparsa la prima interfaccia grafica introdotta da Apple® con i suoi computer Macintosh®.
Successivamente, per rispondere al grande successo riscosso dalla semplicità d'uso dei computer Macintosh®, anche Microsoft® progettò una propria Graphical User Interface per il suo sistema operativo che chiamò Windows®.

L'introduzione dell'interfaccia grafica ha causato una rivoluzione nel modo di utilizzare i computer e nel numero di persone che possono sfruttarne le potenzialità.
Alla tastiera si affianca il mouse e le scelte avvengono "cliccando" su icone. E' possibile aprire contemporaneamente più applicazioni e passare velocemente dall'una all'altra con la semplice pressione di un tasto. Le informazioni sono raggiungibili con semplicità aprendo finestre e menù a discesa. Gli oggetti mostrati sullo schermo ricordano quelli della vita quotidiana, e ognuno corrisponde a un comando, a un programma oppure a un documento.
Grazie all'interfaccia grafica, molte persone hanno potuto avvicinarsi al mondo dell'informatica per la semplicità con cui è diventato possibile dialogare con il computer, senza dove acquisire conoscenze specifiche e approfondite.

I componenti base di una GUI (Graphical User Interface) sono:

- il puntatore, simbolo grafico presente sullo schermo, che muovendosi permette di selezionare gli oggetti e i comandi;

- un dispositivo di puntamento (o mouse) che consente il controllo del puntatore;

- le icone, immagini che simboleggiamo comandi, file e finestre presenti nel computer e che trasformano il video in una scrivania di lavoro (o desktop);

- le finestre, ossia le aree di lavoro che vengono aperte sullo schermo per poter interagire con il computer.


1.3.5 Sviluppo di sistemi                                                                                                                                             



1.3.5.1
Comprendere come avviene lo sviluppo dei sistemi basati su computer e conoscere le diverse fasi di sviluppo del software: analisi, progettazione, programmazione e test.

Per realizzare una nuova applicazione software, dalla più semplice al sistema più complesso, per prima cosa bisogna selezionare il miglior linguaggio di sviluppo in base alle esigenze da soddisfare, occorre poi impostare un'attività coordinata suddivisa in varie fasi e infine valutare passo dopo passo tutto ciò che viene realizzato.

Le principali fasi di sviluppo di un software sono:

- l'analisi;
- la progettazione;
- la realizzazione;
- il testing finale.

La fase di analisi è probabilmente il momento più determinante ai fini del successo di un nuovo applicativo. In questa fase si identificano gli obiettivi dell'applicazione, cioè le attività che il computer dovrà svolgere con il nuovo software, e si analizza in che modo è possibile raggiungere tali obiettivi.
Per questo occorre analizzare tutti gli aspetti e le possibili condizioni della realtà in cui dovrà operare il software, determinando il flusso di dati di input e output.

Per stabilire l'opportunità o meno di procedere nel lavoro di progettazione viene eseguito un accurato studio di fattibilità per analizzare se esistono tutte le condizioni per iniziare e completare lo sviluppo.
Si passa alla fase di progettazione dell'applicazione, una volta stabilita la fattibilità, definendo il diagramma di flusso (o flow-chart) dei dati e delle istruzioni da elaborare, e l'interfaccia per la comunicazione con l'utente.

La soluzione viene esplicitata mediante una sua rappresentazione grafica facendo uso di simboli per rappresentare la sequenza delle operazioni matematiche, logiche, di input e di output che l'elaboratore dovrà eseguire mediante il nuovo software. In questo modo può essere delineata l'architettura di tutto il sistema software e può essere tracciato il disegno generale della procedura e delle sue componenti.

La fase di realizzazione o programmazione del software rappresenta il momento in cui avviene la trasformazione del progetto in applicativo. In questa fase si esegue la scrittura del programma mediante una sequenza di istruzioni, descritte secondo la sintassi e le regole di un linguaggio di programmazione.
In altre parole si scrive il codice sorgente dell'applicazione, cioè si scrive il software in una forma comprensibile agli esseri umani, non direttamente leggibile dagli elaboratori.

La velocità e l'accuratezza della programmazione dipendono dalla qualità con cui sono state portate a termine le fasi precedenti. Un errore fatto nella fase di analisi ad esempio, può condizionare completamente la realizzazione.
Il codice sorgente dell'applicazione una volta definito, deve essere sottoposto al programma di traduzione che prevede due distinte fasi.

La fase di interpretazione, ogni volta che il programma viene eseguito, permette di tradurre e di passare al processore tutte le istruzioni una ad una, al fine di rilevare eventuali errori di sintassi.

La fase di compilazione consente di convertire tutto il programma da un linguaggio di alto livello in codice macchina, cioè istruzioni numeriche che l'elaboratore è in grado di comprendere ed eseguire.
Con la compilazione il programma si trasforma in programma oggetto o codice eseguibile, che può essere memorizzato su un supporto magnetico (ad esempio un disco), dal quale viene prelevato tutte le volte che deve essere eseguito.

La fase di testing è una delle più delicate e serve a verificare la validità del software con dei dati di prova, che dovranno sperimentare tutte le possibilità previste nella fase di analisi. Questi test non possono essere esaustivi per confermare l'assoluta correttezza del software, ma sono fondamentali per ridurre gli errori dell'applicativo sviluppato prima della sua distribuzione.
I migliori risultati si ottengono facendo sperimentare il nuovo software a molti utenti e su computer con caratteristiche diverse per identificare il maggior numero possibile di eventuali malfunzionamenti, detti bug.

Quando vengono trovati errori, il tester deve annotare accuratamente tutte le operazioni compiute che hanno causato il malfunzionamento. Lo scopo è di fornire al programmatore un report dettagliato sugli errori riscontrati, in modo da apportare le opportune correzioni per poi sottoporre nuovamente il software alla fase di compilazione.

Si distinguono due tipi di test: l'alfa test e il beta test.

L'alfa test riguarda le prove che avvengono all'interno della software house realizzate direttamente dalle risorse interne al team di sviluppo. Si ottiene così un collaudo reale del software e non una semplice simulazione, evitando il rischio un rilascio prematuro.

Il beta test, invece, è un rilascio controllato che avviene verso un gruppo selezionato di utenti. Si valuta il comportamento della procedura in un ambiente esterno, lasciando aperta la possibilità di ulteriori modifiche prima del  rilascio definitivo.

Terminata la fase di testing il nuovo software entra nella fase operativa, quando viene rilasciato o commercializzato. Il suo successo dipende da tanti fattori come l'aderenza alle esigenze iniziali, la facilità d'uso, la chiarezza della documentazione che lo accompagna.

La fase di manutenzione inizia subito dopo il rilascio di una versione funzionante.
Un software spesso può necessitare di interventi di miglioramento o di adattamento a nuove esigenze, e di correzione di errori sfuggiti alla fase di testing e scoperti durante l'uso da parte degli utenti.

La manutenzione è un parametro con il quale è possibile giudicare la qualità di un software non tanto per il numero di interventi necessari, quanto per la facilità e la velocità con la quale questi aggiornamenti possono essere realizzati. La qualità di un prodotto software tuttavia è sempre in diretta relazione al grado di soddisfazione dell'utente che lo utilizza.

                                                                                                                                                                   


© Copyright 1997-2005 Maxisoft® - Nativedreams.com® - Tutti i diritti sono riservati.
AICA, Licenziataria esclusiva per l’Italia del programma ECDL (European Computer Driving Licence), attesta che il presente materiale didattico copre puntualmente e integralmente gli argomenti previsti nel Syllabus ECDL e necessari per il conseguimento della patente europea del computer. Di conseguenza AICA autorizza sul presente materiale didattico, l’uso del marchio ECDL, registrato dalla Fondazione ECDL di Dublino e protetto dalle leggi vigenti.