Le applicazioni dell`informatica
Transcript
Le applicazioni dell`informatica
LEZIONE 4 Le applicazioni dell’informatica In questa lezione impareremo... ◗◗ i campi di utilizzo dell’informatica ◗◗ le tipologie del software ◗◗ la filiera produttiva informatica ■■ Le mille facce dell’informatica L’informatica è una disciplina molto giovane, dato che i primi calcolatori elettronici sono stati realizzati alla metà del secolo scorso e il termine è stato coniato solo negli anni ’60: da allora con il termine informatica si indicano genericamente tutte le attività connesse al mondo degli elaboratori elettronici. Queste attività nel corso di poche decine di anni hanno però generato vere e proprie sottodiscipline talmente complesse che sono diventate vere e proprie “discipline autonome” (un esempio per tutti è la telematica) che tuttavia noi consideriamo sottoparti dell’informatica, dato che hanno un’unica origine in comune: l’informazione digitale. Riportiamo un possibile elenco delle sottodiscipline nelle quali si possono classificare le attività connesse all’informatica; i criteri adottati per la loro definizione però sono spesso di natura soggettiva e quindi anche la loro catalogazione risulta essere spesso arbitraria: ◗◗ algoritmi e strutture dati: progettazione e studio di algoritmi; ◗◗ programmazione: studio e codifica dei programmi, ossia stesura degli algoritmi espressi in un linguaggio comprensibile dal calcolatore; ◗◗ linguaggi e compilatori: progetto e realizzazione dei linguaggi di programmazione e degli strumenti per rendere tali linguaggi comprensibili all’hardware; ◗◗ architettura dei calcolatori: progetto e realizzazione di calcolatori più potenti con nuove tecnologie; ◗◗ reti di calcolatori: studio delle tecniche di connessione e realizzazione di sistemi con più calcolatori cooperanti tra loro; ◗◗ sistemi operativi: studio dei programmi che consentono di utilizzare i calcolatori; ◗◗ ingegneria del software: sviluppo di tecniche opportune per la creazione di programmi di grandi dimensioni e per migliorare la qualità del software; P. Camagni, R. Nikolassy Corso di informatica Linguaggio C e C++, Vol. 1, Nuova Edizione OPENSCHOOL, © Ulrico Hoepli Editore S.p.A. 2015 1 UdA 6 AL • Il software: dal linguaggio alla applicazione ◗◗ basi di dati e sistemi per il reperimento delle informazioni: sistemi e programmi in grado di gestire grandi quantità di dati su memorie permanenti; ◗◗ intelligenza artificiale: programmi in grado di imitare il comportamento intelligente degli esseri umani; ◗◗ visione e robotica: programmi in grado di “vedere” e programmi per la gestione di sistemi automatizzati; ◗◗ teoria dell’informazione: studio teorico delle modalità di rappresentazione efficace dell’informazione, dai dati alfanumerici al multimediale (audio e video). La dinamicità di tali discipline si può vedere in un solo esempio: Internet. Negli ultimi anni la crescita esponenziale di questo fenomeno (ormai si registrano più di 100 milioni di utenti in tutto il mondo) ha determinato quella che prende il nome di rivoluzione informazionale, che assume un’importanza paragonabile alla rivoluzione industriale dei secoli scorsi. Il fenomeno Internet, impensabile negli anni ’60, ha di fatto creato nuovi settori di attività talmente specializzati e complessi che poco hanno a che vedere con l’informatica tradizionale. Nessuno, inoltre, potrà prevedere gli sviluppi o le nuove discipline che ci attendono nei prossimi anni, sempre però “originate” da una base comune: l’informazione automatica. ■■ Software: programmi e applicazioni Una macchina programmata deve eseguire un programma che, come si è detto, è composto da una sequenza di istruzioni scritte dapprima con un linguaggio di programmazione ad alto livello e successivamente “convertite” in linguaggio macchina, o a basso livello; le istruzioni devono essere tradotte in una sequenza di operazioni opportunamente scritte, in modo tale che la macchina programmata (esecutore) possa eseguirle: il programma dovrà quindi essere scritto necessariamente in formato elettronico e comunicato al calcolatore, che lo memorizzerà nei suoi dispositivi (memorie) e successivamente lo analizzerà istruzione per istruzione, riga per riga, in modo da decodificare ed eseguire ogni singola istruzione. Quindi, per poter eseguire un programma è necessario che il calcolatore effettui un insieme di altre operazioni che, a loro volta, devono essere scritte e codificate in un ulteriore programma: il programma che permette di eseguire gli altri programmi. In un calcolatore sono presenti quindi diverse tipologie di programmi ◀ Il termine ”virtuale“ definisce che in una prima analisi possiamo catalogare in: qualcosa di simulato, cioè non reale, ma che sembra esistere ◗◗ programmi di sistema, che permettono il funzionamene apparire come se fosse reale: to del calcolatore; una macchina virtuale si com◗◗ programmi di base, applicativi che facilitano l’uso del porta come se fosse fisicamente calcolatore; reale ma viene invece emulata ◗ ◗ programmi utente, applicativi sviluppati o acquistati da componenti software. Oggi la virtualizzazione consente dall’utente. di ospitare più macchine virtuali su un server fisico, condividendo le risorse del server attraverso differenti ambienti: i server virtuali e i desktop virtuali consentono di ospitare differenti sistemi operativi e applicazioni localmente e in remoto, annullando tutti i problemi delle infrastrutture fisiche e superando i limiti geografici. ▶ 2 Questa classificazione ricalca la struttura organizzata a strati cara all’informatica: la “stratificazione a buccia di cipolla” (onion skin) è alla base dell’organizzazione dei sistemi operativi e introduce il concetto di livello di astrazione che cerca di svincolare sempre di più il software dall’hardware, introducendo livelli di astrazione che permettano di isolare le caratteristiche fisiche da quelle logiche (livelli di ◀ macchina virtuale ▶). P. Camagni, R. Nikolassy Corso di informatica Linguaggio C e C++, Vol. 1, Nuova Edizione OPENSCHOOL, © Ulrico Hoepli Editore S.p.A. 2015 Le applicazioni dell’informatica • AL Lezione 4 Il programma applicativo è vicino all’utente in quanto risolve il suo problema, ma per essere eseguito necessita di un insieme di altre componenti software che interagiscano con il calcolatore, a partire dal sistema operativo fino ai driver dei singoli dispositivi fisici. Nello schema che segue possiamo individuare quattro livelli di astrazione che equivalgono anche a diversi livelli di applicazione del software, dal più “alto livello”, che corrisponde al punto di vista dell’utente, fino al più basso livello, che consiste nelle istruzioni elementari che l’hardware può eseguire. ma utente Program Software di base D ema operativo Sist ispositivi er d HW riv CPU Vediamo brevemente ogni categoria. Programmi di sistema Sono comunemente chiamati sistemi operativi e sono costituiti dall’insieme dei programmi che permettono la gestione delle risorse del calcolatore, eseguendo le seguenti funzionalità: ◗■ gestione dei dispositivi (astrazione dei dispositivi fisici); ◗■ gestione delle risorse e in particolare: – gestione del processore; – gestione della memoria centrale (RAM); – gestione della memoria di massa (hard disk); ◗■ esecuzione dei programmi. Zoom su... SCRIVERE UN SISTEMA OPERATIVO La scrittura di un sistema operativo è un’operazione molto complessa è viene fatta utilizzando linguaggi quanto più vicini alla macchina. Una parte del sistema operativo prende il nome di kernel ed è come il cuore del sistema operativo stesso che molto spesso viene scritto in linguaggio C (con delle piccole parti direttamente scritte in assembly) dato che i linguaggi a basso livello sono molto più performanti di quelli ad alto livello. Man mano che ci si alza di livello e ci si avvicina all’interfaccia di comunicazione con l’utente si utilizzano linguaggi visuali, tra i più diversi: le applicazioni per Linux sono scritte generalmente in C++ mentre per la “famiglia Windows” si usano linguaggi nativi di Microsoft, come Visual Basic, .NET o C# ecc. P. Camagni, R. Nikolassy Corso di informatica Linguaggio C e C++, Vol. 1, Nuova Edizione OPENSCHOOL, © Ulrico Hoepli Editore S.p.A. 2015 3 UdA 6 AL • Il software: dal linguaggio alla applicazione Programmi di base Sono quei programmi comunemente chiamati software di base, forniti “a corredo” del sistema operativo e/o del calcolatore per agevolare l’interazione tra l’utente e la macchina. Possono essere classificati in due famiglie: ◗■ programmi di utilità: – interfaccia utente (UI); – editor; – compilatori/interpreti del linguaggio di programmazione; – comandi file system; – rete; ◗■ librerie: – matematiche; – grafiche. Zoom su... L’INTERFACCIA CON L’UTENTE Con interfaccia utente (o shell) si intende ciò che si frappone tra la macchina e l’utente, ciò che fa dialogare l’uomo con la macchina: è qualsiasi cosa che permette a un utente di poter gestire (più o meno) semplicemente le funzionalità di un sistema (anche non informatico). L’interfaccia utente può essere di tipo CUI (Command User Interface) o GUI (Graphical User Interface). Le interfacce grafiche di tipo CUI sono tipiche dei sistemi operativi a linea di comando, come per esempio MS-DOS o Unix. Le interfacce grafiche di tipo GUI sono tipiche dei sistemi operativi friendly user, come per esempio Windows, MacOS e Linux (nelle distribuzioni più recenti). Interfaccia a linea di comando (Linux Red Hat) Interfaccia grafica (Windows 7) Programmi utente In questa categoria rientra tutto il software applicativo che utilizza l’utente. È difficile effettuare una completa classificazione dei possibili programmi che possono essere eseguiti con un calcolatore: la classificazione che segue è puramente indicativa e serve esclusivamente 4 P. Camagni, R. Nikolassy Corso di informatica Linguaggio C e C++, Vol. 1, Nuova Edizione OPENSCHOOL, © Ulrico Hoepli Editore S.p.A. 2015 Le applicazioni dell’informatica • AL Lezione 4 per offrire una panoramica di come l’informatica sia una disciplina trasversale a ogni tipologia di problema (quindi con una visione e un utilizzo a 360°). Possiamo analizzare le tipologie di software esistenti partendo da una prima classificazione: ◗■ software dedicato o ad hoc; ◗■ software pacchettizzato. Con software dedicato si intende il prodotto software che una società di sviluppo (software house) progetta e realizza per un singolo cliente. Rientrano in questa categoria soprattutto i siti web oppure le applicazioni studiate appositamente per le medie e grandi aziende. Con software pacchettizzato si intende il prodotto software che una software house progetta e realizza per risolvere un problema comune a una categoria di clienti e che viene diffuso commercialmente su scala sia nazionale sia internazionale (rientrano in questa categoria soprattutto i programmi di contabilità e paghe). Zoom su... SOFTWARE HOUSE È un‘azienda che produce e mette in commercio prodotti software e applicazioni informatiche, cioè una “casa di edizione di software”. Le software house generalmente hanno per oggetto sociale: ◗ la realizzazione di programmi applicativi per elaboratori; ◗ la realizzazione di progetti informatici personalizzati in funzione delle esigenze dei clienti; ◗ i contratti di assistenza tecnica e manutenzione relativa ai servizi forniti; ◗ la commercializzazione di hardware contenenti programmi applicativi. I prodotti delle software house sono coperti dal diritto d’autore e pertanto ogni nuovo applicativo va registrato presso la Società Italiana degli Autori ed Editori (SIAE), più precisamente nel registro pubblico speciale per i programmi per elaboratore. Il software dedicato deve soddisfare le esigenze del cliente (committente), è pertanto indispensabile una stretta collaborazione preliminare tra la software house e il cliente per stabilire gli obiettivi del programma. Successivamente vengono stabiliti i costi di sviluppo e di realizzazione e viene individuato un accordo commerciale. Spesso il software dedicato è assai costoso in quanto richiede una progettazione molto complessa. Il software pacchettizzato deve soddisfare le esigenze di un numero elevato di ipotetici clienti, ed è spesso il risultato di complesse indagini di mercato. La software house stabiliP. Camagni, R. Nikolassy Corso di informatica Linguaggio C e C++, Vol. 1, Nuova Edizione OPENSCHOOL, © Ulrico Hoepli Editore S.p.A. 2015 5 UdA 6 AL • Il software: dal linguaggio alla applicazione ◀ In termini generici, un pacchetto software (o suite software) è una serie di programmi che si distribuiscono congiuntamente. Per esempio, un pacchetto di contabilità comprende tutti i programmi che servono per la gestione contabile, dalla fatturazione alla prima nota, dal magazzino alla formulazione del bilancio. Un pacchetto noto a tutti noi è Microsoft Office, che include un insieme di programmi utilizzati per l’office automation, come Microsoft Excel, Microsoft Word e Microsoft Access. ▶ sce il budget per lo sviluppo del ◀ pacchetto software ▶, confidando nel successo della proposta commerciale. Una seconda classificazione del software viene fatta in base alla categoria dell’applicazione. Le categorie di software più note sono quelle riportate di seguito. ◗◗ Business: comprende le applicazioni aziendali e anche le seguenti sottocategorie: Finanziarie, ERP, Project management, E-Commerce ecc. La categoria ERP (Enterprise Resource Planning, letteralmente “pianificazione delle risorse d’impresa”) rappresenta tutte le applicazioni di un sistema informativo aziendale (contabilità, controllo di gestione e la gestione del personale, degli acquisti, dei magazzini, della produzione, dei progetti, delle vendite, della distribuzione, della manutenzione impianti e degli asset). ◗◗ Desktop: è anche definito software di produttività personale. In questa categoria rientrano i pacchetti per l’elaborazione di testi, i fogli di calcolo, presentazioni, grafica tecnica, grafica artistica, fotoritocco, musica, agenda ecc. ◗◗ Games: il settore dei giochi ricopre un’importante quota di mercato informatico: si va dai giochi per PC, alle console, ai giochi per cellulari e palmari, ai browser games di Internet ecc. ◗◗ Education: rientrano in questa categoria le applicazioni utili alle scuole di tutti i gradi, ai corsi di formazione per l’autoapprendimento, sia distribuiti su CD sia on line. ◗◗ Science: con questo termine si indicano le applicazioni utili nei vari campi della scienza applicata, quali, per esempio, intelligenza artificiale, astronomia, biologia, chimica ecc.; qualsiasi disciplina scientifica dispone di applicazioni dedicate. ◗◗ Industrial software: la progettazione industriale è assistita da programmi specifici come il CAD (Computer Assisted Design) e i processi industriali automatizzati e controllati da specifico software, come il CAM (Computer Assisted Manufactoring) per il controllo macchine utensili, il CIM (Computer Integrated Manufactoring), la robotica ecc. ◗◗ Embedded: i sistemi embedded sono sistemi elettronici a microprocessore dove il programma generalmente viene integrato nell’hardware per la gestione del controllo di processo e l’utente non ne percepisce direttamente la presenza, come per esempio nelle automobili (ABS, controllo iniezione elettronica), negli elettrodomestici, nei sistemi di assistenza alla navigazione aerea. ◗◗ Software development: con questo termine si indica sia lo sviluppo di applicazioni dedicate sia il software di base: occorre però tener presente che ogni applicazione sviluppata rientra come classificazione in un settore di attività o di interesse tra quelli prima elencati. 6 P. Camagni, R. Nikolassy Corso di informatica Linguaggio C e C++, Vol. 1, Nuova Edizione OPENSCHOOL, © Ulrico Hoepli Editore S.p.A. 2015 Le applicazioni dell’informatica • AL Lezione 4 ■■ La filiera produttiva informatica Anche per l’informatica, come per la maggior parte dei prodotti industriali, la filiera produttiva è costituita da un insieme di attori: ◗◗ produzione-manutenzione; ◗◗ distribuzione; ◗◗ vendita; ◗◗ installazione e postvendita. ◀ La versione di un programma è molto spesso individuata da un numero che ne accompagna il nome per identificare l’eventuale aggiornamento. Il numero può essere da 1 a 10, oppure l’anno di uscita del programma. Windows, per esempio, è stato prodotto nelle seguenti versioni: Windows 95 (1990); Windows 98 (1998); Windows 2000 (2000); Windows XP (2003); Windows Vista (2006); Windows 7 (2010), Windows 8 (2012). ▶ Con la consegna di un prodotto software non si esaurisce il lavoro dell’informatico, anzi, generalmente inizia proprio da un “primo pacchetto” la relazione che lega il fornitore informatico al cliente, anche perché spesso il cliente richiede al fornitore un servizio completo di fornitura di sistemi “chiavi in mano”, cioè di software installato su sistemi informatici e di assistenza operativa di avviamento e di consulenza tecnica continuativa. Inoltre, i prodotti software richiedono un aggiornamento continuo, sia per essere conformi alle normative e alle specifiche di legge che mutano continuamente (si pensi alla dichiarazione dei redditi che ogni anno richiede il rifacimento di buona parte dei programmi specifici) sia per adeguarsi alla tecnologia che è in continua evoluzione, sia per essere sempre più “accattivanti” e spingere il cliente a passare a ◀ versioni ▶ di prodotto sempre più aggiornate. Software e hardware sono sempre strettamente legati e quindi è doveroso aprire una parentesi anche sulla produzione dell’hardware. La produzione dell’hardware La produzione dell’hardware è un’attività specifica del settore elettronico che si svolge in genere nei paesi dell’Estremo Oriente (Far East). Ogni computer è costituito da diversi componenti che vengono solitamente prodotti da aziende diverse (CPU, scheda madre, scheda video, monitor ecc.) e che richiedono un assemblaggio. Le aziende produttrici di software possiedono molto spesso al loro interno un laboratorio attrezzato per l’assemblaggio dei computer, dove tecnici informatici si occupano del montaggio, della configurazione delle diverse schede e dispositivi, dell’installazione dei sistemi operativi e dell’installazione delle macchine direttamente presso il cliente. L’installazione si rende necessaria soprattutto quando i PC devono essere connessi con altri PC, cioè collegati in rete locale o remota. In questo caso la figura professionale informatica che esegue questo compito prende il nome di sistemista di rete, che deve essere in P. Camagni, R. Nikolassy Corso di informatica Linguaggio C e C++, Vol. 1, Nuova Edizione OPENSCHOOL, © Ulrico Hoepli Editore S.p.A. 2015 7 UdA 6 AL • Il software: dal linguaggio alla applicazione grado di progettare, realizzare e integrare la rete aziendale, installando e configurando l’apposito sistema operativo di rete, i computer e i diversi dispositivi necessari per permettere la comunicazione (router, modem ecc.). Il sistemista di rete si occupa anche della sicurezza, garantendo l’accesso alle risorse e ai dati solo a chi ne possiede le autorizzazioni (gestione degli account, delle password, dei diritti d’accesso ecc.). Il mercato informatico è in costante progresso: i prodotti informatici si evolvono a ritmi vertiginosi e le aziende sono costantemente obbligate ad aggiornare hardware e software. L’assistenza post vendita (customer care) e la manutenzione sono indispensabili e richiedono tecnici specializzati e sempre aggiornati. Abbiamo visto che la manutenzione è una fase del ciclo di vita del software e riguarda gli aspetti correttivo, adattativo e migliorativo: per quanto riguarda l’hardware è da considerarsi prevalentemente di tipo migliorativo, dato che questo “invecchia” molto più velocemente del software. Moore, cofondatore di Intel, nel 1965 osservava che il numero di transistor che compongono un circuito integrato raddoppiava ogni anno e da questa osservazione ne fu dedotta la legge che prende il suo nome. La capacità di calcolo di un elaboratore elettronico raddoppia ogni anno. La validità di questa legge fu verificata anche negli anni successivi, seppure con un “tempo di raddoppiamento” che si è andato assestando sui 18 mesi: la crescita delle prestazioni è comunque di tipo esponenziale. Le aziende seguono per quanto possibile l’evoluzione dell’hardware aggiornando periodicamente il proprio parco macchine in modo da avere elaboratori che garantiscono la massima performance anche per soddisfare le sempre maggiori necessità di potenza di calcolo e di memoria richieste da software grafico ad alta definizione. ABBIAMO IMPARATO CHE... • Le attività connesse all’informatica possono essere così catalogate: algoritmi e strutture dati, programmazione, linguaggi e compilatori, architettura dei calcolatori, reti di calcolatori, sistemi operativi, ingegneria del software, basi di dati, intelligenza artificiale, visione e robotica, teoria dell’informazione. • In un calcolatore possiamo, in prima analisi, catalogare i programmi in: programmi di sistema, programmi di base, programmi utente. • La filiera produttiva informatica è costituita da un insieme di attori: produzione-manutenzione, distribuzione, vendita, installazione e postvendita. 8 P. Camagni, R. Nikolassy Corso di informatica Linguaggio C e C++, Vol. 1, Nuova Edizione OPENSCHOOL, © Ulrico Hoepli Editore S.p.A. 2015 Le applicazioni dell’informatica Lezione 4 Verifichiamo le conoscenze 1. Risposta multipla 1 Un programma software può essere catalogato in: a. programma di sistema b. programma di base c. programma utente d. programma software 2 Quale tra queste affermazioni relative alla macchina virtuale è falsa? a. svincola il software dall’hardware b. isola le caratteristiche fisiche da quelle logiche c. riduce i costi di un sistema d. nessuna delle precedenti 3 Quale tra le seguenti non è una funzionalità del sistema operativo? a. gestione dei dispositivi b. gestione del processore c. gestione della memoria centrale d. compilazione dei programmi e. gestione della memoria di massa f. esecuzione dei programmi 4 Il sistema operativo generalmente è scritto in linguaggio assemblatore: a. vero b. falso 5 Quale tra questi non è un programma di utilità? a. interfaccia utente b. editor c. compilatore d. interprete del linguaggio di programmazione e. excel f. comandi del file system g. browser di rete 6 Le interfacce grafiche di tipo GUI sono tipiche dei sistemi operativi a linea di comando: a. vero b. falso 7 Tra le applicazioni Business sono presenti programmi di: (più risposte) a. contabilità b. controllo di gestione c. gestione del personale d. gestione della produzione e. fotoritocco 8 Dove avviene la maggiore produzione dell’hardware? a. Silicon Valley b. Estremo Oriente c. USA d. Far West P. Camagni, R. Nikolassy Corso di informatica Linguaggio C e C++, Vol. 1, Nuova Edizione OPENSCHOOL, © Ulrico Hoepli Editore S.p.A. 2015 9