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