
























Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
nozioni principali su software,hardware e open source
Tipologia: Slide
1 / 32
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!

























“Istruzioni che eseguite da un computer svolgono una funzione prestabilita con prestazioni prestabilite - (programma di alto livello ed eseguibile)
strutture dati mediante le quali i programmi trattano adeguatamente le informazioni - (schemi logici e fisici dei dati)
documenti che descrivono le operazioni e l’uso dei programmi - (documentazione tecnica e manuale utente)” (R.S. Pressman,Principi di Ingegneria del software, McGraw-Hill 2000)
Creazione di un software: dal problema ai risultati (1/2)
problema
ANALISI
algoritmo
FORMALIZZAZIONE
specificazioni
PROGRAMMAZIONE
programma
Creazione di un software: dal problema ai risultati (2/2)
programma
TRADUZIONE
eseguibile
ESECUZIONE
risultati
MANUTENZIONE 7. Manutenere il software
Un esecutore particolare: il calcolatore
Se per un esecutore umano le fasi di formalizzazione, programmazione, traduzione in azioni (fasi n.3,4,5) avvengono con una elaborazione cognitiva Per il calcolatore occorrono tre fasi intermedie poiché non è dotato di cognizione autonoma: Formalizzazione dell’algoritmo secondo un metodo non ambiguo Programmazione ad alto livello comprensibile al calcolatore Traduzione in linguaggio comprensibile al calcolatore ossia in linguaggio macchina
I precursori dei calcolatore
Calcolatore di Rodi o di Andikithira 65 a.C. Blaise Pascale – pascalina XVII secolo Gottfried Leibniz Joseph Jacquard XVIII secolo Charles Babbage XIX secolo Alan Turing XX secolo - Colossus John Von Neumann – macchina programmabile universale - ENIAC
Software: definizione per livelli
A=hxb/
var A int var h, b int A= hxb/ print A
1000101 0010011 111100 100011
Software: la definizione
Hardware e firmware: definizioni
Tipologie di software
software real-time - software dedicato alla sorveglianza, all’analisi e all’elaborazione di eventi esterni (rilevamento di temperature di una piastra di acciaio durante la lavorazione, pilota automatico, sala operatoria) software gestionale - elaborazione dei dati e dei processi aziendali - 70%-80% software scientifico - astronomia, calcolo parallelo, etc. software di Intelligenza Artificiale - sistemi esperti, reti neurali, dimostratori di teoremi, alcuni sono dotati di autonomia, reattività e pro-attività (es. agenti intelligenti) software embedded - programmi residenti in prodotti industriali (lavatrici, forno, termostati ambientali, etc.) software per PC - applicativi di office-automation (fogli elettronici, elaboratori di testi, etc.) software basato su Internet - B2B, B2C, portali, etc. spesso erogato mediante servizi e non prodotti
Categorie di software
Software Generici prodotti software standardizzati venduti sul mercato le specifiche vengono dettate dal mercato e dal produttore stesso Software Dedicati o ad hoc progetti ad hoc creati per un determinato cliente le specifiche vengono dettate dal cliente Modello di business diverso Prodotto (generici) vs. Progetto (ad hoc) Licenza (generici) vs. Contratto ad oggetto informatico (ad hoc) Metafora del prodotto industriale vs. quello artigianale
Origini dell’algoritmo
Il concetto di algoritmo è antico e non è strettamente legato al calcolatore: l’esecutore può essere diverso
Sono stati ritrovati algoritmi in tavolette antiche in Mesopotamia risalenti al 1800-1600 a.c.
Il termine algoritmo è la latinizzazione dal nome di un matematico persiano – Al-Khuwarizmi – vissuto nel nono secolo d.c. ( Algoritmi de numero Indorum – versione latina, trattato sull’algebra dei numeri arabo-indiani)
Esempio – prelevo contanti dal bancomat, macro operazioni
Algoritmo - definizione rigorosa
dati algoritmo risultati
Soluzione ad una classe di problemi
Proprietà di un algoritmo
Istruzioni = azioni+dati oggettivi
Le istruzioni sono composte da due parti: azione - descrizione delle operazioni dati - descrizione degli oggetti manipolati dalle operazioni (dati oggettivi) esempio Inserisci [azione] la tessera [dato] digitare [azione] codice segreto [dato] selezionare [azione] importo [dato] vi sono istruzioni zerarie, unarie, binarie, ternarie start inizializza A metti A in B somma A e B in C
Rappresentazione logica degli algoritmi:
due tecniche
verbi di ”esecuzione” (effetto osservabile) condizioni iterazioni
indica un flusso di istruzioni ovvero la sequenza dei passi da eseguire basato su simboli grafici ogni simbolo corrisponde a un costrutto
Pseudocodifica
Pseudocodifica - esempio
I diagrammi a blocchi – (3/6)
inizio fine
Rappresenta il flusso (l'ordine) del diagramma
I diagrammi a blocchi – (4/6)
Rappresenta una elaborazione
Esempi:
calcola (^) archivia
I diagrammi a blocchi – (5/6)
condizione
I diagrammi a blocchi – (6/6)
istruzione di input/output
Rappresenta un'operazione di input/output. Esempi:
scrivi leggi