• Non ci sono risultati.

Capitolo 2 Il software

N/A
N/A
Protected

Academic year: 2022

Condividi "Capitolo 2 Il software"

Copied!
15
0
0

Testo completo

(1)

Capitolo 2 Il software

Mauro Cadei

(2)

Capitolo 2 - Il software

• ricetta

• cuoco

• ingredienti

• piatto

• algoritmo (programma)

• computer

• input

• output

Metafora: ricette e algoritmi

(3)

Capitolo 2 - Il software

• deve esistere qualcuno (cuoco) che esegua la ricetta

• le istruzioni devono essere eseguite in ordine per partire dagli ingredienti ed ottenere il piatto

• il cuoco deve conoscere la lingua italiana altrimenti serve un traduttore

• il cuoco non può preparare “cotolette di arigusta” se non sa preparare la

“balsamella”

• la ricetta per “balsamella” è riportata nel capitolo “salse”

• cuoco in difficoltà con istruzioni ambigue (“abbiate l’avvertenza di cuocerli poco, in molta acqua”)

• l’ordine di esecuzione è importante (“condite gli spaghetti” dopo “cuocerli”)

• istruzioni e tempo non infiniti

• eseguendo più volte la stessa ricetta si ottiene lo stesso piatto

• se una ricetta è per 4 persone, raddoppiando le dosi degli ingredienti vale per 8 persone

Metafora: ricette

(4)

Capitolo 2 - Il software

• deve esistere un esecutore (calcolatore) che esegua l’algoritmo

• le istruzioni devono essere eseguite in ordine per partire dai dati di input ed ottenere i dati di output

• il calcolatore deve conoscere il linguaggio dell’algoritmo altrimenti serve un traduttore

• l’algoritmo deve prevedere solo istruzioni elementari per il calcolatore

• specificato un algoritmo, può essere richiamato per l’esecuzione di algoritmi più complessi

• il linguaggio dell’algoritmo non può essere ambiguo

• l’ordine di esecuzione è importante

• Istruzioni e tempo non infinitil’algoritmo deve essere deterministico: eseguito più volte sugli stessi dati di input genera sempre lo stesso output

• algoritmo parametrico: risolve una classe di problemi (al variare dei dati di input)

Metafora: algoritmi

(5)

Capitolo 2 - Il software

• traduzione da linguaggio di programmazione di alto livello (Pascal, Basic, C …) in linguaggio macchina

• macchina astratta = calcolatore + traduttore

- compilatore: accetta in ingresso l’intero programma (programma

sorgente) e produce in uscita la rappresentazione dell’intero programma in linguaggio macchina (programma oggetto)

- interprete: accetta in ingresso l’intero programma, traduce e fa eseguire direttamente ciascuna istruzione del programma sorgente

Traduttori

(6)

Capitolo 2 - Il software

• formalismo che descrive un sistema automatico per l’elaborazione dell’informazione

• proposto da Alan Mathison Turing (1912-1954)

• Turing + Alonzo Church:

tesi di Church-Turing:

se una funzione è intuitivamente considerata calcolabile allora esiste una macchina di Turing in grado di calcolarla

La macchina di Turing

(7)

Capitolo 2 - Il software

• branca dell’ingegneria che si occupa di sviluppare approcci

sistematici e disciplinati allo sviluppo, alla messa in opera e alla manutenzione del software a livello industriale

• ciclo di vita del software:

- analisi, progettazione, implementazione, collaudo, rilascio, manutenzione

• CASE (Computer-Aided Software Engineering)

Ingegneria del software

(8)

Capitolo 2 - Il software

• SW proprietario

- può essere usato acquistandolo oppure ottenendo l’autorizzazione all’uso (licenza)

• SW shareware

- distribuito gratuitamente, può essere usato gratuitamente per un periodo di prova

- dopo, pagando la registrazione, si può utilizzarlo e ricevere aggiornamenti

• SW freeware

- può essere liberamente usato, copiato e distribuito

• SW libero e SW open source

- può essere usato, copiato e distribuito gratis ma rispettando alcune regole

Ingegneria del software

(9)

Capitolo 2 - Il software

• videoscrittura (word processor)

• fogli elettronici (spreadsheet)

• presentazioni multimediali

• desktop publishing

• gestione di basi di dati

• web editor

• grafica e fotoritocco

• diagrammi

• gestione delle finanze individuali

• organizer

• project management

• OCR

• CAD

• videogiochi

• audio/video player

• mobile app

• …

Software applicativo

(10)

Capitolo 2 - Il software

• Sistema Operativo (OS, Operating System):

insieme di programmi che forniscono all’utente

- intermediazione nell’utilizzo della macchina HW

- visione astratta dell’HW (macchina virtuale, macchina astratta) - un ambiente per l’esecuzione del SW applicativo

Software di base

(11)

Capitolo 2 - Il software

• nucleo (kernel)

– controlla la CPU (programmi…)

• gestore della memoria

– allocazione della memoria ai programmi in esecuzione

• gestore dei dispositivi di I/O

– garantisce l’accesso ai dispositivi di I/O

– maschera i dettagli di basso livello e gli eventuali conflitti

• file system

– archiviazione e reperimento dei dati sulla memoria di massa

• gestore della rete

– interfaccia con risorse collegate via rete

– comunicazione con processi su altri calcolatori

• interprete comandi

– interfaccia diretta, semplice ed intuitiva con gli utenti

Software di base

(12)

Capitolo 2 - Il software

• realtà virtuale

• piazze virtuali

• negozi virtuali

• virtualizzazione dell’hardware:

– host machine – hypervisor – macchine virtuali

– snapshot

• iperconvergenza (HCI)

Virtualizzazione

(13)

Capitolo 2 - Il software

• computer virus

• worm (verme)

• trojan horse (cavallo di troia)

• hacker (o cracker)

• ransomware

• spyware

• adware (advertising- supported software)

• crimeware

• hoax (bufala)

Malware

(14)

Capitolo 2 - Il software

• diffidenza verso:

– materiale scaricato da siti web dubbi

– e-mail con contenuto e/o mittente strano – documenti con macro

– PC usati da molte persone

• antivirus:

– aggiornamento

– scansione avviata manualmente ed automaticamente – controlli automatici costanti

– controllo e-mail

• firewall (muro tagliafuoco)

Protezione dal malware

(15)

Capitolo 2 - Il software

• navigatori GPS

• trading algoritmicoa

• ranking nei motori di ricerca

• algoritmi di profilazione

La società degli algoritmi

Riferimenti

Documenti correlati

Occorre precisare che, poiché per ogni macrostrato sono state presi in esami due inviluppi delle velocità e due inviluppi del decadimento del modulo di taglio, le regressioni

[r]

whose name is distinct from all other existing files, and opens the file for binary writing and reading (as if the mode string "wb+" were used in an fopen() call). If

La prima formulazione ricalca la definizione del problema adottata dalla maggior parte di voi (turni in termini di singole farmacie), la seconda (turni in termini di centroidi) `

Per determinare quale sia il sistema di separazione più opportuno, occorre considerare la fase della corrente in uscita dal reattore6. ¾ Se LIQUIDA occorre un sistema di

• Un programma, chiamato interprete, prende in ingresso il programma PL1 e lo esegue “al volo” man mano che le istruzioni di PL1 sono lette, ovvero per ogni istruzione di PL1

• FileOutputStream implementa questi metodi nel caso parti- colare in cui l’output è un file, il cui nome è passato al costrut- tore di FileOutputStream ; in alternativa si

o implementare una funzione virtuale nella classe base implementata nelle classi derivate (con output). o implementare una funzione virtuale nella classe base non implementata