Università degli Studi di Catania FACOLTA‘ DI MEDICINA E CHIRURGIA Elementi di Informatica Anno accademico: 2008/2009 Docente: Dr. Angelo Nicolosi [email protected] Software (tutto ciò che non e’ tangibile) Il calcolatore ed un software possono essere paragonati rispettivamente ad un attore e ad un copione: “Come l’attore recita ruoli diversi a seconda del copione che gli viene dato, il calcolatore svolge funzioni diverse a seconda del programma utilizzato”. Dr. Angelo Nicolosi [email protected] INFORMATICA Il software Il programma La creazione di programmi consente agli elaboratori di essere utilizzati per scopi differenti: dalla creazione di testi, alla gestione di immagini, dalla visione di filmati, all’uso di videogiochi, alla creazione di musica... Il software è particolarmente importante perché rende la macchina flessibile L’hardware la puoi prendere a calci Il software la puoi solo imprec Dr. Angelo Nicolosi [email protected] INFORMATICA Il software • È un insieme di istruzioni • È una procedura, o meglio un algoritmo, che, eseguito dalla macchina, le permette di portare a termine le operazioni che le abbiamo richiesto • Per essere comprensibile il programma deve dare istruzioni o fare dichiarazioni usando un linguaggio che la macchina possa capire Dr. Angelo Nicolosi [email protected] INFORMATICA Il programma Rappresenta un metodo per la soluzione di un problema adatto a essere implementato sotto forma di programma. È alla base della programmazione È una procedura per eseguire compiti Più rigorosamente: • È un insieme finito e ordinato di passi strutturati in modo non ambiguo • È un procedimento che serve a risolvere in tempo finito un problema o una classe di problemi • Utilizza dati iniziali e ottiene alla fine dei risultati Dr. Angelo Nicolosi [email protected] INFORMATICA L’algoritmo • finitezza; la procedura deve terminare dopo un intervallo finito di tempo • assenza di ambiguità; la procedura non deve contenere contraddizioni • generalità; è in grado di risolvere tutti i problemi dello stesso tipo Muhammad ibn Musaal Khwarizmi “padre” dell’algoritmo Dr. Angelo Nicolosi [email protected] INFORMATICA caratteristiche di un algoritmo I blocchi elementari blocco iniziale blocco finale blocco di lettura/scrittura blocco azione blocco di controllo Dr. Angelo Nicolosi [email protected] INFORMATICA Rappresentazione grafica di un algoritmo I blocchi elementari Una combinazione di blocchi elementari descrive un algoritmo se: • viene usato un numero finito di blocchi • lo schema inizia con un blocco iniziale e termina con un blocco finale • ogni blocco soddisfa delle condizioni di validità condizioni sui blocchi: • blocco azione e blocco lettura/scrittura: ogni blocco di questi due tipi ha una sola freccia entrante e una sola freccia uscente • blocco di controllo: ogni blocco di questo genere ha una sola freccia entrante e due frecce uscenti condizioni sulle frecce: • ogni freccia o entra in un blocco o confluisce in un'altra freccia condizioni sui percorsi: • dal via dev'essere possibile raggiungere ogni blocco • da ogni blocco dev'essere possibile raggiungere il blocco finale Dr. Angelo Nicolosi [email protected] INFORMATICA Rappresentazione grafica di un algoritmo torta di cioccolato Dr. Angelo Nicolosi [email protected] INFORMATICA algoritmo per la preparazione di una Un software, in definitiva, non e’ nient’altro che un insieme di comandi (istruzioni) da impartire al calcolatore al fine di fargli svolgere un particolare compito Le istruzioni che costituiscono il programma vengono dette istruzioni macchina Le istruzioni vengono lette dalla CPU ed eseguite in un ordine ben preciso Tutto ciò che si vuol far fare ad un computer deve essere espresso attraverso le istruzioni macchina Dr. Angelo Nicolosi [email protected] INFORMATICA Da cosa e’ costituto un software? Ogni istruzione macchina e’ costituita da una stringa di bit (proprio come i dati) Le istruzioni macchina sono caratteristiche delle CPU e sono in numero finito (poche centinaia): Si parla di set delle istruzioni (insieme di istruzioni eseguibili dalla CPU) Tutti i compiti che il calcolatore deve svolgere devono essere espressi utilizzando questo insieme di istruzioni Le istruzioni macchina devono essere pre-caricate in memoria centrale per poter essere eseguite (architettura di Von Neumann) Istruzione macchina 100010110101 Dr. Angelo Nicolosi [email protected] INFORMATICA Le istruzione macchina Alla base di ogni calcolatore si trova un semplice algoritmo: • Leggi un istruzione • Decodifica l’istruzione appena letta • Esegui l’istruzione • Torna all’inizio Tale algoritmo e’ intrinseco nell’UNITA’ DI CONTROLLO e viene detto ciclo della macchina Dr. Angelo Nicolosi [email protected] INFORMATICA Comportamento base di un calcolatore Una volta che un processore e’ in grado di eseguire alcune operazioni molto semplici (istruzioni macchina) l’aggiunta di altre funzioni non aumenta le sue capacità di calcolo teoriche L’aggiunta di funzioni complesse può semplificare l’utilizzo del calcolatore senza aggiungere nulla alla capacità base della macchina Dr. Angelo Nicolosi [email protected] INFORMATICA Scelta del set di istruzioni La CPU deve essere progettata per eseguire solo un insieme minimo di istruzioni macchina molto semplici RISC (Riduced Instruction Set computer) • CPU molto rapide • CPU dei telefoni • Microcontrollori La CPU deve essere in grado di eseguire molte istruzioni complesse anche se queste sono tecnicamente ridondanti CISC (Complex Instruction Set Computer) • CPU facili da programmare • Pentium • AMD Athlon Dr. Angelo Nicolosi [email protected] INFORMATICA Politiche di progettazione delle CPU Sono uno strumento per impartire istruzioni al calcolatore, facendogli eseguire determinati compiti E’ necessario che siano definiti la semantica e la sintassi es.: printf(“Ciao a tutti) (“Ciao a tutti”)printf --> Errore di sintassi stampa(“Ciao a tutti”) Errore sematico Dr. Angelo Nicolosi [email protected] INFORMATICA I Linguaggi di programmazione(1) Linguaggi di alto livello: più vicini al nostro modo di comprendere e impostare problemi, più facili da imparare e da trasferire e da ‘portare’ su un altro computer (esempio: HTML, Java, C++, Visualbasic ecc.) Linguaggi di basso livello: vicini al linguaggio macchina e all’architettura fisica del computer (esempio: Assembler) Linguaggio macchina: usa solo 0 e 1 ed è comprensibile direttamente dall’hardware, ma molto Dr. Angelo Nicolosi [email protected] INFORMATICA I Linguaggi di programmazione(2) Si avrà bisogno di una “traduzione” nel linguaggio comprensibile dalla CPU Esistono due forme di traduzione: • gli interpreti, che traducono il codice del programma, linea per linea,mentre viene eseguito • i compilatori, che, una volta realizzato il programma in un linguaggio di alto livello, lo compilano, trasformandolo una volta per tutte in linguaggio macchina o in linguaggio di più basso livello, controllando errori ed efficacia prima di eseguirlo Dr. Angelo Nicolosi [email protected] INFORMATICA I Linguaggi(3) Possiamo dividere il software in due grandi gruppi: • Software di base: Sistemi operativi: (Windows Linux, Mac OS). • Software applicativo: Access, Excel, Word, Explorer, Photoshop, ecc • Software di rete: condivisione di risorse e comunicazione tra computer Dr. Angelo Nicolosi [email protected] INFORMATICA Il software E’ un programma : • che si occupa della gestione di tutto il sistema permettendo l’interazione con l’utente e facilitandone l’utilizzo. • che controlla l'esecuzione di programmi applicativi • che agisce come interfaccia tra le applicazioni e l'hardware del calcolatore Dr. Angelo Nicolosi [email protected] INFORMATICA Il sistema operativo(1) Caratteristiche e Vantaggi principali Definire modalità standard di interfaccia con i dispositivi fisici, cosicché sia possibile: • sviluppare programmi in modo semplice, modulare ed indipendente dallo specifico calcolatore su cui viene fatto funzionare; • aggiornare il software di base e l'hardware in modo trasparente ai programmi applicativi e all'utente, ossia senza che vengano influenzati dall'operazione. Dr. Angelo Nicolosi [email protected] INFORMATICA Il sistema operativo(2) • Gestisce l’esecuzione dei programmi dell’utente • Gestisce la memoria principale • Gestisce i file memorizzati nella memoria di massa (file system) • Gestisce le periferiche di I/O • Fornisce un’interfaccia di comunicazione intuitiva attraverso la quale l’utente impartisce i comandi al calcolatore Dr. Angelo Nicolosi [email protected] INFORMATICA Il sistema operativo(3) SO vs applicazioni Programmi applicativi • hanno accesso a un insieme ridotto di risorse; • possono utilizzare solo un sottoinsieme delle istruzioni del processore (esecuzione in modalità utente); • non possono decidere autonomamente quando e come avere accesso alle risorse del sistema (richiedono al sistema operativo l’esecuzione di alcuni servizi); Dr. Angelo Nicolosi [email protected] Sistema operativo • ha accesso a tutte le risorse; • può utilizzare tutte le istruzioni del processore (esecuzione in modalità supervisore); • stabilisce in che ordine e come le richieste che riceve devono essere soddisfatte INFORMATICA Il sistema operativo(4) Evoluzione: Multiprogrammazione • multitasking permette di eseguire più programmi contemporaneamente • multithreading è una tecnica che permette di avere più flussi di esecuzione contemporanei di uno stesso programma, in esecuzione su CPU differenti o sulla stessa. Dr. Angelo Nicolosi [email protected] INFORMATICA Il sistema operativo(5) Multiprogrammazione: Vantaggi • il processore non viene lasciato inattivo (idle) durante operazioni di I/O molto lunghe • la memoria viene utilizzata al meglio, caricando il maggior numero di operazioni possibili Dr. Angelo Nicolosi [email protected] INFORMATICA Il sistema operativo(6) MS-DOS Windows Macintosh (Mac OS) Unix Linux Symbian Windows CE Dr. Angelo Nicolosi [email protected] INFORMATICA Sistema operativo: Esempi Dr. Angelo Nicolosi [email protected] INFORMATICA Componenti di un sistema operativo(1) Kernel = “nocciolo”: è il cuore del sistema operativo e gestisce le funzioni di base del calcolatore I/O driver = “conducenti”: unità software che si occupano di dialogare con i controller delle periferiche Memory manager = “gestore della memoria”: coordina l’utilizzo della memoria principale File Manager = “gestore file”: gestisce la memoria di massa (memorizzazione e lettura dei file) – File System Scheduler = “pianificatore”: gestisce l’ordine di esecuzione dei diversi programmi lanciati contemporaneamente Dispatcher = “smistatore”: controlla i programmi in esecuzione Dr. Angelo Nicolosi [email protected] INFORMATICA Componenti di un sistema operativo(2) Shell = “guscio”: interfaccia tra il sistema operativo e gli utenti (riga di comando) GUI (Graphical User Interface) = “Interfaccia grafica”: interfaccia intuitiva per la gestione del sistema Windows manager = “gestore delle finestre”: genera le finestre sullo schermo e le associa ai programmi Dr. Angelo Nicolosi [email protected] INFORMATICA Componenti di un sistema operativo(3) • Si occupa del caricamento (copia) dei programmi dalla memoria di massa alla memoria principale nel momento in cui l’utente ne richiede l’esecuzione • Assegna uno spazio nella memoria principale ad ogni programma che deve essere eseguito • Provvede ad indirizzare il contatore di programma alla zona di memoria che contiene il programma che si desidera eseguire Dr. Angelo Nicolosi [email protected] INFORMATICA Gestione dei programmi in esecuzione memory manager: Dr. Angelo Nicolosi [email protected] INFORMATICA Esecuzione di programmi Con il termine processo si identifica un programma in esecuzione, mentre per programma si intende un insieme di istruzioni macchina statiche e memorizzate su qualche supporto In un determinato istante lo stesso computer può seguire diversi processi (Word, Windows Media Player, stampa di file,ecc) Un processo porta informazioni di stato che individuano il punto di esecuzione e lo stato del calcolatore Dr. Angelo Nicolosi [email protected] INFORMATICA Il concetto di processo Dr. Angelo Nicolosi [email protected] INFORMATICA Distinzione tra programma e processo Com’è possibile eseguire “contemporaneamente” più processi se la CPU è una sola ? Il sistema operativo è progettato in modo tale da alternare l’esecuzione dei diversi processi mediante una tecnica chiamata time-sharing (condivisione di tempo) Il tempo viene diviso in time-slice = fette di tempo Ogni processo viene eseguito per una time-slice e poi si passa l’esecuzione all’altro processo Alternando rapidamente i processi si crea l’illusione che siano stato eseguiti più processi simultaneamente Una time-slice è fissata normalmente a non più di 50 millisecondi Dr. Angelo Nicolosi [email protected] INFORMATICA Gestione dei processi Lo scheduler è il componente del sistema operativo responsabile di mettere in atto le tecniche di time-sharing Per ogni processo attivo lo scheduler memorizza le informazioni di stato del processo in una tabella dei processi I vari processi vengono ordinati dallo scheduler in una struttura dati detta CODA Lo scheduler preleva un processo dalla coda e lo manda in esecuzione. Terminato il quanto di tempo il processo viene bloccato e inserito alla fine della coda e il nuovo processo che si trova in cima alla coda comincia ad essere eseguito In questo modo si ottiene la rotazione di tutti i processi Dr. Angelo Nicolosi [email protected] INFORMATICA Scheduler e time-sharing Il dispatcher è lo strumento che controlla che ogni processo faccia effettivamente il proprio dovere rispettando i quanti di tempo ha il compito di portare il processo dallo stato pronto a quello esecuzione. Dr. Angelo Nicolosi [email protected] INFORMATICA Dispatcher e time-sharing Stato di un processo Un processo in esecuzione passa ad un altro stato per i seguenti motivi: • il processo aspetta il completamento di un'operazione di I/O quindi viene portato in stato di attesa, al fine di sincronizzarsi con altri processi; • un processo viene rimosso d'autorità dalla CPU, passando dallo stato esecuzione a quello pronto, per lo scadere del quanto di tempo a disposizione di ogni processo oppure per la richiesta di un processo a priorità elevata; • il processo termina; Dr. Angelo Nicolosi [email protected] Un compito importante del sistema operativo è quello di assegnare le risorse (memoria, spazio su disco, CPU, periferiche, ecc) ai vari processi. In un sistema basato sulla tecnica time-sharing è importante gestire i possibili conflitti tra i diversi processi: • Due processi accedono alla stessa periferica • Due processi accedono allo stesso file Dr. Angelo Nicolosi [email protected] INFORMATICA Competizione tra processi La gestione dei conflitti avviene utilizzando dei SEMAFORI che indicano quando per un processo è possibile utilizzare o meno una risorsa Un semaforo è un segnale binario associato ad una risorsa che ne indica lo stato di LIBERA o OCCUPATA Un processo che intende usare una risorsa che si trova nello stato di OCCUPATO si mette in attesa per la risorsa Dr. Angelo Nicolosi [email protected] INFORMATICA I Semafori file system (o file manager) La memoria di massa viene gestita suddividendo le informazioni in essa contenute in file, directory e sottodirectory (cartelle) secondo una struttura ad albero Il file manager ha il compito di individuare all’interno della memoria di massa un particolare file e renderlo disponibile per la lettura e per la scrittura Il file manager memorizza le informazioni relative ai file in una struttura detta descrittore del file Il descrittore del file contiene informazioni quali dimensione del file e percorso di memorizzazione Dr. Angelo Nicolosi [email protected] INFORMATICA Gestione della memoria di massa: Dr. Angelo Nicolosi [email protected] INFORMATICA Organizzazione dei file file e directory Ciascun file o directory all’interno di una particolare directory e’ identificato da un nome univoco • Path = indica la sequenza di directory per identificare una directory o un file •“assoluto” se inizia dalla “radice” dell’albero • “relativo” se considera come punto di partenza la directory corrente • ”..” e’ un nome speciale che identifica “il contenitore padre”. • ”.” e’ un nome speciale che identifica “il contenitore corrente” Dr. Angelo Nicolosi [email protected] INFORMATICA File System In Windows • Ad ogni dispositivo di memorizzazione dati e’ associata una lettera (es. A per il floppy, C per l’HD) • Un path assoluto inizia sempre con l’identificatore del dispositivo, seguito da “:\” (es. A:\ per il floppy, C:\ per l’HD) • Il carattere “\” serve per separare i vari elementi che compongono un path. Es: – abc\efg\hil.txt e’ un path relativo composto da 3 elementi (le directory abc ed efg, e il file hil.txt) – .. e’ un path relativo che individua la directory padre – C:\abc\ e’ un path assoluto composto da 2 elementi (il dispositivo e la directory abc) Dr. Angelo Nicolosi [email protected] INFORMATICA File System • Path assoluto – C:\Testo.txt – C:\Libri\Informatica • Path relativo – Libri\Elenco.doc (dir. Corrente = c: ) – ..\Libri\Elenco.doc (dir. Corrente = Musica ) – .\Informatica (dir. Corrente = Libri ) Dr. Angelo Nicolosi [email protected] INFORMATICA File System Nome file Dà un’indicazione del “tipo” di informazione in esso contenuta. Questa si trova nell’ultima parte del nome (quella che segue il . ) e viene chiamata “estensione” del file. – Nome.txt file di testo – Nome.gif immagine – Nome.doc documento di MS Word – Nome.java file java – Nome.mp3 file audio Dr. Angelo Nicolosi [email protected] INFORMATICA File System l’interfaccia è un elemento determinante per l’interazione uomo - macchina La struttura dell’interfaccia non è un elemento neutro, ma influenza la fruizione dei contenuti Dr. Angelo Nicolosi [email protected] INFORMATICA L’interfaccia Carattere • La comunicazione tra uomo e computer avviene attraverso un LINGUAGGIO (set di comandi) • L’utente impartisce comandi scritti tramite la tastiera Grafica • Associa ad ogni funzione un simbolo o un’ICONA, ottenendo la stilizzazione grafica di un comando eseguibile • Uso intuitivo della macchina Dr. Angelo Nicolosi [email protected] INFORMATICA L’interfaccia Le interfacce basate sulle shell sono interfacce di prima generazione che mettono a disposizione una riga di comando per impartire ordini al calcolatore L’interazione tra uomo e calcolatore avviene inserendo comandi tramite tastiera (es. shell di DOS) Prompt dei comandi O Prompt di MS-DOS Dr. Angelo Nicolosi [email protected] INFORMATICA Interfaccia di comunicazione: shell Alcuni comandi • dir elenca il contenuto della directory • cd nome_directory permette di spostarsi nella directory selezionata. • mkdir nome_directory permette creare la cartella selezionata (si puo’ usare anche md) • rmdir nome_directory permette di eliminare la cartella selezionata • del nome_file rimuove il file selezionato • copy nome_file destinazione_file permette copiare il file scelto nella cartella/file di destinazione Dr. Angelo Nicolosi [email protected] INFORMATICA Prompt di MS-DOS Alcuni comandi • move nome_file destinazione_file permette spostare il file scelto nella cartella/file didestinazione • Per spostarsi da un dispositivo all’altro si deve usare il comando composto dalla lettera del dispositivo seguito dai 2 punti. a: c: e: • Per spostarsi da qualsiasi posto alla radice del dispositivo corrente, si puo’ usare cd \ Dr. Angelo Nicolosi [email protected] INFORMATICA Prompt di MS-DOS La Graphical User Interface è un’interfaccia intuitiva che consente all’utente di interagire con il calcolatore L’interfaccia è costituita da diverse finestre in cui i programmi ed i file vengono rappresentati in modo grafico attraverso delle icone Dr. Angelo Nicolosi [email protected] INFORMATICA Interfaccia di comunicazione: GUI Windows: Esplora risorse Windows permette di visualizzare e modificare il file system attraverso un’interfaccia grafica, richiamabile in vari modi:. • “Esplora risorse” all’interno del menu’ “start” • Doppio click su “Risorse del computer” • Tasto di windows + e (2 tasti da premere insieme) Dr. Angelo Nicolosi [email protected] INFORMATICA Interfaccia di comunicazione: GUI Windows: Esplora risorse Dr. Angelo Nicolosi [email protected] INFORMATICA Interfaccia di comunicazione: GUI Identificazione dei file L’estensione (insieme all’icona) identifica il tipo di file e l’applicazione associata: Dr. Angelo Nicolosi [email protected] INFORMATICA Windows: Esplora risorse Operazioni sui file taglia, copia e incolla Operazioni richiamabili attraverso • la barra dei menù dell’applicazione o di esplora risorse • il menù contestuale (tasto dx del mouse) • combinazioni rapide tastiera Modalità di comando Taglia Copia Incolla Barra dei menu Modifica> taglia Modifica>copia Modifica>incolla Click dx Taglia Copia incolla Tastiera Ctrl + x Ctrl + c Ctrl + v Dr. Angelo Nicolosi [email protected] INFORMATICA Windows: Esplora risorse Viene definito tutto il software che non sia il sistema operativo. E’ l'insieme dei programmi che non sono compresi nel S.O., ma che vengono invece installati dall'utente per svolgere compiti specifici. Fanno parte anche alcune utilità che si installano assieme al S.O. che non sono essenziali per il funzionamento della macchina ma offrono all'utente alcune semplici applicazioni di base. Dr. Angelo Nicolosi [email protected] INFORMATICA Il software applicativo(1) Si possono raggruppare in 5 categorie: - Utilità di Sistema: antivirus, oppure programmi per l'ottimizzazione delle risorse, per il controllo dello stato del sistema, la ripulitura dell'hard disk, ecc. Office Automation: programmi di ausilio nei normali lavori d'ufficio, quindi creazione e elaborazione di testi (word processor), gestione di basi di dati (database), fogli di calcolo, posta elettronica, navigazione in Internet, ecc. Applicazioni aziendali : programmi creati per le necessità specifiche delle aziende, come ad esempio i programmi per la fatturazione o per la gestione del personale, dei magazzini, dei macchinari industriali. Spesso si tratta di programmi creati ad hoc da aziende di produzione software. Strumenti di sviluppo : programmi per la creazione di oggetti multimediali (pagine Web, animazioni e CD interattivi), elaborazione audio/video/immagini, programmi che servono per la creazione di nuovi applicativi . Giochi e svago : giochi, emulatori, lettori audio e video. . Dr. Angelo Nicolosi [email protected] INFORMATICA Il software applicativo(2) • Elaboratori di testi (Microsoft Word) • Creazione di banche dati (Microsoft Access) • Stesura di bilanci (Microsoft Excel) • Creazione di slide (Microsoft Powerpoint) • Creazione pubblicazioni – Desktop Publishing(CorelDraw) • Elaborazioni immagini (Photoshop, Paint Shop Pro) • Invio posta elettronica (Microsoft Outlook) • Navigazione internet (Microsoft Explorer) Dr. Angelo Nicolosi [email protected] INFORMATICA Il software applicativo(3) Il BIOS (Basic Input Output System) e’ appunto un software di sistema che gestisce le operazioni fondamentali di input output E’ il primo programma che viene eseguito quando si accende il computer. Si trova all’interno di una memoria ROM e viene scritto al momento della produzione del calcolatore. Ha il compito di: • Interpretare i dati delle periferiche di I/O • Controllare l’integrità del sistema ogni volta che questo viene avviato • Fornisce un collegamento (interfaccia) tra ’hardware ed il software Dr. Angelo Nicolosi [email protected] INFORMATICA BIOS Si riferisce al modo in cui una metodologia di sviluppo scompongono l'attività di realizzazione di prodotti software in sottoattività fra loro coordinate, il cui risultato finale è il prodotto stesso e tutta la documentazione a esso associato. Si può far coincidere con la nascita dell‘ ingegneria del software, in quanto rappresenta un passaggio storico dallo sviluppo del software inteso come attività "artigianale" (ovvero affidata alla libera creatività dei singoli individui) a un approccio più industriale, in cui la creazione di programmi e sistemi software viene considerata come un processo complesso che richiede pianificazione, controllo, e documentazione appropriati Dr. Angelo Nicolosi [email protected] INFORMATICA Ciclo di vita del software(1) • analisi, ovvero l'indagine preliminare sul contesto in cui il prodotto software deve inserirsi, sulle caratteristiche che deve esibire, ed eventualmente su costi e aspetti logistici della sua realizzazione • progetto, in cui si definiscono le linee essenziali della struttura del sistema da realizzare, in funzione dei requisiti evidenziati dall'analisi e dal documento finale da essa creato • implementazione o codifica del sistema, ovvero la sua realizzazione concreta; • collaudo, volta a misurare in che modo il sistema realizzato soddisfa i requisiti stabiliti nella fase di analisi, ovvero a valutarne la correttezza rispetto alle specifiche • manutenzione, che comprende tutte le attività di modifica del software successive al suo rilascio presso il cliente o la sua immissione sul mercato. Queste attività possono essere volte a correggere errori del software adattarlo a nuovi ambienti operativi, o estenderne le funzionalità. Dr. Angelo Nicolosi [email protected] INFORMATICA Ciclo di vita del software(2)