|
||||
|
|
||||
|
1.3 - Software 1.3.1 Tipi di software |
||||
|
1.3.1.1 Ogni sistema di elaborazione non può funzionare solo con le componenti
hardware, ha necessità anche di un'altra componente "immateriale": il
software.
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. 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 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 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.1 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:
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. 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. - 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.
Nel 1984 Apple®, società americana produttrice dei computer
Macintosh®, dall'architettura diversa da quella degli IBM compatibili,
introdusse il proprio sistema operativo.
Microsoft® per rispondere al successo di Mac OS® decise di sviluppare
un ambiente grafico che potesse funzionare, con il sistema operativo DOS. Il sistema operativo UNIX, sviluppato nel 1969 dai laboratori
Bell, è nato per i grandi computer delle reti aziendali e istituzionali
(i cosiddetti mainframe). 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. |
|
1.3.3.1 Il software applicativo è costituito da programmi che
sono stati sviluppati per consentire all'utente di svolgere particolari
compiti utilizzando il computer.
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. 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. 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. |
|
1.3.4.1 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. 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à. 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.1 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 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 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. 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. 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. 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.
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. 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. |
|||||
|
||||||