SOFTWARE

19
SOFTWARE SOFTWARE L’hardware è la parte che si può prendere a calci; il software quella contro cui si può solo imprecare”. SOFTWARE E’ l’insieme dei dati e dei programmi che rendono possibile l’inserimento dei dati e dei comandi da parte dell’utente, volti all’elaborazione 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) .

description

SOFTWARE. “ L’hardware è la parte che si può prendere a calci; il software quella contro cui si può solo imprecare ”. SOFTWARE - PowerPoint PPT Presentation

Transcript of SOFTWARE

Page 1: SOFTWARE

SOFTWARESOFTWARE

“L’hardware è la parte che si può prendere a calci; il software quella contro cui si può solo imprecare”.

SOFTWAREE’ l’insieme dei dati e dei programmi che rendono possibile l’inserimento dei dati e dei comandi da parte dell’utente, volti all’elaborazione 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) .

Page 2: SOFTWARE

SISTEMI OPERATIVI ESISTEMI OPERATIVI EPROGRAMMI APPLICATIVIPROGRAMMI APPLICATIVI

SISTEMI OPERATIVISono 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 APPLICATIVISono 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..

Page 3: SOFTWARE

Software: device driverSoftware: 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.

Page 4: SOFTWARE

Software: Programmi ApplicativiSoftware: Programmi Applicativi

Sono tutti quei programmi che svolgono funzioni specifiche, e che vengono “lanciati” dall’interno dei sistemi operativi:

1. fogli di calcolo

2. elaborazione testi

3. fotoritocco, disegno, grafica 3D

4. editing o riproduzione audio

5. editing o riproduzione video

6. “utilities” (compressione, antivirus, ecc.)

Page 5: SOFTWARE

Elaboratore testi (Word Processor)Elaboratore testi (Word Processor)

Page 6: SOFTWARE

Foglio elettronico (SpreadSheet)Foglio elettronico (SpreadSheet)

Page 7: SOFTWARE

Basi di dati (Database)Basi di dati (Database)

Page 8: SOFTWARE

PresentazioniPresentazioni

Page 9: SOFTWARE

Impaginazione (Desktop Publishing)Impaginazione (Desktop Publishing)

Page 10: SOFTWARE

Agenda, Posta, Calendario, RubricaAgenda, Posta, Calendario, Rubrica

Page 11: SOFTWARE

PROCEDURA DI AVVIO DI UN COMPUTERPROCEDURA 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 un’operazione 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 l’avvio del caricamento dell’intero 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.

Page 12: SOFTWARE

ALGORITMIALGORITMI

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 dell’ipotenusa 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

Page 13: SOFTWARE

NON AMBIGUITA’ DI UN ALGORITMONON 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…

L’algoritmo 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.

Page 14: SOFTWARE

RAPPRESENTAZIONE DI UN ALGORITMORAPPRESENTAZIONE 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.

1. Prendi i valori da tastiera VAL1 e VAL2

2. Se VAL1<VAL2 allora scambiali

3. Metti in RESTO il resto tra VAL1 e VAL2

4. Ripeti finchè RESTO<>0

5. Metti in VAL1 il contenuto di VAL2

6. Metti in VAL2 il contenuto di RESTO

7. Metti in RESTO il resto tra VAL1 e VAL2

8. Fine Ripeti

9. Mostra il MCD che è pari a VAL2

inizio

INPUT:VAL1, VAL2

RESTO:=VAL1 MOD VAL2

seVAL1 < VAL2

scambia VAL1 e VAL2

VeroVAL1:=VAL2VAL2:=RESTO

RESTO:=VAL1 MOD VAL2

finchèRESTO<>0

OUTPUT:“MCD:” VAL2

fine

Vero

Falso

Falso

Page 15: SOFTWARE

LINGUAGGI DI BASSO LIVELLOLINGUAGGI 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 l’uomo.

Page 16: SOFTWARE

LINGUAGGI DI ALTO LIVELLOLINGUAGGI DI ALTO LIVELLO

Fortunatamente, per facilitare l’implementazione 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 all’architettura dell’elaboratore 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.

Page 17: SOFTWARE

CALCOLO DEL MCD IN PASCALCALCOLO 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.

program CalcoloMCD(input,output);

var VAL1,VAL2,RESTO:long; function Scambia(var V1, V2:long); var VTMP: long; begin VTMP:=V1; V1:=V2; V2:=VTMP end;

begin (* main *) readln(V1);

readln(V2); if (V1<V2) then Scambia(V1,V2); RESTO:= V1 mod V2; while RESTO<>0 do begin V1:=V2; V2:=RESTO; RESTO:=V1 mod V2 end; writeln(‘Il MCD è ‘,V2)end.

Page 18: SOFTWARE

Filosofie di utilizzo del Software (1)Filosofie di utilizzo del Software (1)

Proprietario – È software messo a disposizione a pagamento. Al momento dell’acquisto 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 l’utilizzo. Una volta pagato e registrato, sono spesso rese disponibili funzionalità aggiuntive non incluse nella versione di valutazione.

Page 19: SOFTWARE

Filosofie di utilizzo del Software (2)Filosofie di utilizzo del Software (2)

Adware: È software che prevede delle sezioni pubblicitarie inamovibili. In tal modo è gratuito per l’utilizzatore, ma lo sviluppatore è pagato dallo sponsor.

Freeware - È software reso disponibile l’utilizzo 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 d’autore 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.