Title: SOFTWARE
1SOFTWARE
- Lhardware è la parte che si può prendere a
calci il software quella contro cui si può solo
imprecare. - SOFTWARE
- E linsieme dei dati e dei programmi che rendono
possibile linserimento dei dati e dei comandi da
parte dellutente, volti allelaborazione da lui
desiderata e perseguita. - I programmi si dividono in sistemi operativi (che
svolgono le funzioni di base) e programmi
applicativi (nati per funzioni specifiche) .
2SISTEMI OPERATIVI EPROGRAMMI APPLICATIVI
- SISTEMI OPERATIVI
- Sono quei programmi, quali MacOs, WINDOWS (95,
98, 2000, XP, Vista), BeOs, OS2, AmigaOS, NetBSD,
Linux, Unix, MS DOS, i quali contengono i
principali comandi che permettono di rendere
operativo il personal computer, coordinandone il
funzionamento dei componenti e gestendo le
funzioni di base. - PROGRAMMI APPLICATIVI
- Sono tutti quei programmi che svolgono funzioni
specifiche in base alla natura per cui sono nati,
quali fogli di calcolo, editori di testo,
programmi di disegno, ecc..
3Software device driver
- I driver di periferica (device driver) sono
programmi specializzati nella gestione di un
particolare componente hardware. - E il sistema operativo a caricarli in memoria
durante la procedura di avvio di un computer. - Quando si aggiungono nuove periferiche è
necessario fornire al sistema operativo i
corrispondenti drivers (di solito presenti sul CD
in dotazione con la periferica) in modo che la
periferica divenga utilizzabile dal S.O. e
conseguentemente anche dai programmi applicativi
che intendono gestirla.
4Software Programmi Applicativi
- Sono tutti quei programmi che svolgono funzioni
specifiche, e che vengono lanciati dallinterno
dei sistemi operativi - fogli di calcolo
- elaborazione testi
- fotoritocco, disegno, grafica 3D
- editing o riproduzione audio
- editing o riproduzione video
- utilities (compressione, antivirus, ecc.)
5Elaboratore testi (Word Processor)
6Foglio elettronico (SpreadSheet)
7Basi di dati (Database)
8Presentazioni
9Impaginazione (Desktop Publishing)
10Agenda, Posta, Calendario, Rubrica
11PROCEDURA DI AVVIO DI UN COMPUTER
- Quando si accede un computer la memoria RAM è
vuota. - La memoria ROM contiene il BIOS che permette alla
macchina di compiere le prime operazioni di
verifica ed enumerazione dei componenti
installati (memoria, video, dischi,
tastiera,ecc) e di comunicazione tra gli stessi. - In questa fase viene compiuta unoperazione di
diagnosi del sistema (conteggio memoria,
controllo periferiche, assegnazione irq, ecc..)
ed avviata la procedura di BOOTSTRAP da disco. In
una particolare traccia del disco fisso (o, se
presenti, dal floppy o dal cd-rom) è contenuto il
codice di avvio del sistema operativo installato. - Il bootstrap termina con lavvio del caricamento
dellintero sistema operativo. - Una volta terminato il caricamento del sistema
operativo, il computer è pronto ad essere
utilizzato, e possono essere avviati i programmi
applicativi per elaborare i documenti.
12ALGORITMI
- Un algoritmo è una sequenza finita, non ambigua,
di passi eseguibili e ripetibili un numero finito
di volte per portare alla soluzione di un dato
problema. - Un algoritmo, a partire da informazioni in
ingresso, produrrà un risultato in uscita. - Esempi di algoritmi ricette di cucina,
istruzioni di montaggio di un oggetto, calcolo
dellipotenusa dai cateti, calcolo del Massimo
Comun Divisore, procedura per cambiare una ruota
forata, ordinamento di una rubrica, pagamento di
un bollettino postale, ecc... - Il metodo più naturale per esprimere un algoritmo
è descriverne i passi da seguire nel linguaggio
naturale. - Vediamo un esempio di espressione della procedura
per pagare un bollettino postale - recarsi ad un ufficio postale
- compilare il bollettino di conto corrente postale
- effettuare il pagamento
13NON AMBIGUITA DI UN ALGORITMO
- La sequenza precedentemente vista non rappresenta
un algoritmo in maniera corretta in quanto non è
priva di ambiguità. Infatti non indica quale
ufficio postale, che cifra indicare, non verifica
che si disponga di tale contante, ecc - Lalgoritmo andrebbe riscritto come
- recarsi al più vicino ufficio postale
- consultare la tabella degli importi da pagare
- compilare il bollettino di ccp
- assicurarsi di avere la cifra necessaria al
pagamento - effettuare il pagamento
- Tale descrizione è più dettagliata, ma non è
ancora del tutto priva di ambiguità. Ciò è dovuto
alla natura stessa del linguaggio naturale. Sono
stati pertanto definiti dei linguaggi specifici
per la definizione degli algoritmi, chiamati
linguaggi di programmazione.
14RAPPRESENTAZIONE DI UN ALGORITMO
- Per rappresentare il flusso di esecuzione di un
algoritmo può essere utile ricorrere ai diagrammi
a blocchi che indicano graficamente la sequenza
di operazioni da eseguire. Vediamo due modi
equivalenti di esprimere lo stesso algoritmo (di
Euclide) per il calcolo del M.C.D.
- Prendi i valori da tastiera VAL1 e VAL2
- Se VAL1ltVAL2 allora scambiali
- Metti in RESTO il resto tra VAL1 e VAL2
- Ripeti finchè RESTOltgt0
- Metti in VAL1 il contenuto di VAL2
- Metti in VAL2 il contenuto di RESTO
- Metti in RESTO il resto tra VAL1 e VAL2
- Fine Ripeti
- Mostra il MCD che è pari a VAL2
15LINGUAGGI DI BASSO LIVELLO
- Come esprimere un algoritmo affinché un computer
possa interpretarlo ed eseguirlo? - In realtà la CPU è in grado di eseguire un numero
molto ristretto di operazioni estremamente
semplici. E tali istruzioni sono espresse in
termini numerici, cioè ad ogni istruzione
corrisponde un numero. - Il linguaggio di programmazione le cui istruzioni
hanno una corrispondenza biunivoca con le
operazioni svolte dal microprocessore si chiama
LINGUAGGIO MACCHINA. - Questo linguaggio si dice di BASSO LIVELLO in
quanto è strettamente legati alle istruzioni
della CPU, quindi poco naturale per luomo.
16LINGUAGGI DI ALTO LIVELLO
- Fortunatamente, per facilitare limplementazione
degli algoritmi, a partire dalla metà degli anni
50, sono stati creati anche dei linguaggi di
programmazione più evoluti, più simili al
linguaggio umano, e non legati allarchitettura
dellelaboratore sul quale vengono utilizzati.
Tali linguaggi si dicono di alto livello. - Tali linguaggi devono essere convertiti in
linguaggio macchina affinché la cpu possa
eseguirli. Tuttavia, essendo le istruzioni di
questi linguaggi molto potenti e simili al
linguaggio umano, a ognuna corrispondono molte
istruzioni in linguaggio macchina.
17CALCOLO DEL MCD IN PASCAL
- Questo programma, scritto nel linguaggio ad alto
livello Pascal viene trasformato, grazie al
COMPILATORE, in linguaggio macchina. - Si ottiene così un FILE ESEGUIBILE (estensione
.EXE nei sistemi windows) formato da migliaia di
istruzioni direttamente comprensibili per la CPU.
18Filosofie di utilizzo del Software (1)
- Proprietario È software messo a disposizione a
pagamento. Al momento dellacquisto NON si
dispone della proprietà software acquistato, ma
solo della licenza ad usarlo, sotto le condizioni
indicate dal produttore. La licenza più diffusa
per questo tipo di sofware è la EULA (End User
License Agreement) - Demoware È una versione dimostrativa del
software a pagamento permette di valutare il
software ma non di usarlo in modo proficuo e
continuativo, infatti normalmente prevede la
disabilitazione delle funzioni di stampa e
salvataggio, un numero massimo di utilizzi, o un
tempo massimo di utilizzo giornaliero (es. 10
minuti). - Shareware - È software reso disponibile
gratuitamente per un breve periodo (per
consentire delle valutazioni). A conclusione di
tale lasso temporale, sarà necessario
corrispondere una somma in denaro per proseguirne
lutilizzo. Una volta pagato e registrato, sono
spesso rese disponibili funzionalità aggiuntive
non incluse nella versione di valutazione.
19Filosofie di utilizzo del Software (2)
- Adware È software che prevede delle sezioni
pubblicitarie inamovibili. In tal modo è gratuito
per lutilizzatore, ma lo sviluppatore è pagato
dallo sponsor. - Freeware - È software reso disponibile lutilizzo
gratuitamente dal produttore, ma non è
liberamente riutilizzabile, e non sono resi
disponibili i codici sorgenti. - Pubblico Dominio È un software gratuito che non
prevede alcun tipo di licenza, pertanto, mancando
chi può difenderlo, chiunque può riuscire ad
accamparvi dei diritti, e qualsiasi copia o
variante potrebbe non essere più gratuita. - CopyLeft È software gratutito, ma protetto da
una licenza che difende il diritto dautore e la
sua volontà di mantenere libera la sua opera. Il
copyleft impedisce che chi ridistribuisce il
software (originale o modificato) possa
aggiungere delle restrizioni ulteriori. Un
esempio di questo tipo di licenza è GNU-GPL.