4.2 Informatica1 Uni Fe L.P

14
1 Luigi Puzone ® Informatica 1 – Università di Ferrara – A.A. 2008-2009 Modulo 4.2: Programmazione e sviluppo dei sistemi Informatica 1 ing. Luigi Puzone 4 Programmazione e Sviluppo del software 2 Luigi Puzone ® Informatica 1 – Università di Ferrara – A.A. 2008-2009 Modulo 4.2: Programmazione e sviluppo dei sistemi …Software Schema concettuale del processo elaborativo Schema concettuale del processo elaborativo dati dati istruzioni istruzioni + + + + + + + + informazioni informazioni

description

 

Transcript of 4.2 Informatica1 Uni Fe L.P

Page 1: 4.2 Informatica1    Uni Fe  L.P

1

Luigi Puzone ® Informatica 1 – Università di Ferrara – A.A. 2008-2009 Modulo 4.2: Programmazione e sviluppo dei sistemi

Informatica 1

ing. Luigi Puzone

4

Programmazione e Sviluppo del software

2Luigi Puzone ® Informatica 1 – Università di Ferrara – A.A. 2008-2009 Modulo 4.2: Programmazione e sviluppo dei sistemi

…Software

Schema concettuale del processo elaborativoSchema concettuale del processo elaborativo

datidati

istruzioniistruzioni

++++++++ informazioniinformazioni

Page 2: 4.2 Informatica1    Uni Fe  L.P

2

3Luigi Puzone ® Informatica 1 – Università di Ferrara – A.A. 2008-2009 Modulo 4.2: Programmazione e sviluppo dei sistemi

…Linguaggi di programmazionedalla prima generazione alle successive

• Il linguaggio macchina viene anche

definito linguaggio di basso livello;

• I linguaggi di programmazione, come il

linguaggio umano, hanno una sintassi

ossia una grammatica;

• I linguaggi di programmazione sono anche

noti come linguaggi di alto livello

4Luigi Puzone ® Informatica 1 – Università di Ferrara – A.A. 2008-2009 Modulo 4.2: Programmazione e sviluppo dei sistemi

…Linguaggi di programmazione……Linguaggi Procedurali (terza generazione)…

• I linguaggi ad alto livello tentano di

avvicinarsi il più possibile al linguaggio e

alla logica umana.

• Sono costituiti da insiemi di simboli e di

parole chiave, termini mnemonici in

lingua inglese e da un insieme di regole

sintattiche molto rigide e definite in

modo da evitare ogni ambiguità.

Page 3: 4.2 Informatica1    Uni Fe  L.P

3

5Luigi Puzone ® Informatica 1 – Università di Ferrara – A.A. 2008-2009 Modulo 4.2: Programmazione e sviluppo dei sistemi

…Linguaggi di programmazione…Linguaggi Procedurali: Traduttori…

• Un linguaggio di alto livello ha

bisogno di un traduttore che

traduca ciascuna istruzione in

sequenze di istruzioni in linguaggio

di basso livello.

6Luigi Puzone ® Informatica 1 – Università di Ferrara – A.A. 2008-2009 Modulo 4.2: Programmazione e sviluppo dei sistemi

…Linguaggi di programmazione……Linguaggi Procedurali: Traduttori

• I traduttori si occupano di analizzare il

programma in linguaggio procedurale e

di tradurlo in linguaggio macchina.

• Due tipi di traduttori

– Compilatori

– Interpreti

Page 4: 4.2 Informatica1    Uni Fe  L.P

4

7Luigi Puzone ® Informatica 1 – Università di Ferrara – A.A. 2008-2009 Modulo 4.2: Programmazione e sviluppo dei sistemi

…Linguaggi di programmazione…Linguaggi Procedurali: Differenza fra Compilatori e Interpreti

Differenza fra Compilatori e Interpreti

• Il compilatore effettua la traduzione del codice sorgente

in codice oggetto in modalità asincrona rispetto all’ese-

cuzione del programma (prima della sua esecuzione).

• L’interprete effettua la traduzione dal codice sorgente in

linguaggio macchina in modalità sincrona rispetto all’ese-

cuzione del programma. L’interprete e il programma sono

entrambi presenti nella memoria dell’elaboratore.

(Informatica di base 3ed. – Curtin D.P. et al – McGrawHill)

8Luigi Puzone ® Informatica 1 – Università di Ferrara – A.A. 2008-2009 Modulo 4.2: Programmazione e sviluppo dei sistemi

…Linguaggi di programmazione…Linguaggi Procedurali: Pseudocodici…

(Informatica di base 3ed. – Curtin D.P. et al – McGrawHill)

Page 5: 4.2 Informatica1    Uni Fe  L.P

5

9Luigi Puzone ® Informatica 1 – Università di Ferrara – A.A. 2008-2009 Modulo 4.2: Programmazione e sviluppo dei sistemi

…Linguaggi di programmazione……Linguaggi Procedurali: Pseudocodici…

In un linguaggio di programmazione che fa uso di

pseudocodici la traduzione avviene in due fasi:

1.Il compilatore traduce il programma in uno

“pseudocodice intermedio” e lo salva;

2.Lo pseudocodice intermedio viene interpreta-

to da un interprete realizzato ad hoc per

l’elaboratore sul quale dovrà essere eseguito

10Luigi Puzone ® Informatica 1 – Università di Ferrara – A.A. 2008-2009 Modulo 4.2: Programmazione e sviluppo dei sistemi

Fasi di Sviluppo del Software

(Informatica di base 3ed. – Curtin D.P. et al – McGrawHill)

Page 6: 4.2 Informatica1    Uni Fe  L.P

6

11Luigi Puzone ® Informatica 1 – Università di Ferrara – A.A. 2008-2009 Modulo 4.2: Programmazione e sviluppo dei sistemi

• Si definisce Ciclo di Vita del Software

(Software LifeCycle) l’insieme delle fasi

che si susseguono, dal momento in cui il

software viene concepito, progettato,

realizzato, alla sua messa in esercizio e

manutenzione, sino alla sua dismissione

Ciclo di Vita del Software

12Luigi Puzone ® Informatica 1 – Università di Ferrara – A.A. 2008-2009 Modulo 4.2: Programmazione e sviluppo dei sistemi

Definizione: Analisi dei requisiti del software

• Serve a definire il problema da risolvere e a individuare le

aspettative dell’utente finale in relazione al prodotto da

realizzare.

• Vengono, inoltre, identificati i cosiddetti “confini

dell’applicazione” ossia i dati che dovrebbero essere

elaborati e il risultato che si intende raggiungere

attraverso l’elaborazione.

Fasi del Ciclo di Vita del Software Prima Fase: Definizione…

Page 7: 4.2 Informatica1    Uni Fe  L.P

7

13Luigi Puzone ® Informatica 1 – Università di Ferrara – A.A. 2008-2009 Modulo 4.2: Programmazione e sviluppo dei sistemi

Seconda fase

• Sulla base del problema da risolvere si definisce

il programma in termini di:

– Funzionalità del software

– Tecnologie coinvolte

– Linguaggio di programmazione da utilizzare

Fasi del Ciclo di Vita del Software Progettazione…

14Luigi Puzone ® Informatica 1 – Università di Ferrara – A.A. 2008-2009 Modulo 4.2: Programmazione e sviluppo dei sistemi

Fasi del Ciclo di Vita del Software …Progettazione…

• In questa fase si individuano le funzioni

che costituiscono un processo, le loro

relazioni e i dati necessari alla loro

realizzazione

• Inoltre, nell’ambito delle singole fun-

zioni, si studiano le modalità di produ-

zione, utilizzazione, aggiornamento, can-

cellazione e scambio di dati rilevanti

Page 8: 4.2 Informatica1    Uni Fe  L.P

8

15Luigi Puzone ® Informatica 1 – Università di Ferrara – A.A. 2008-2009 Modulo 4.2: Programmazione e sviluppo dei sistemi

Fasi del Ciclo di Vita del Software …Progettazione…

• I programmi sono, in generale, realizzati in piùmoduli ognuno dei quali si occupa di svolgere una determinata serie di operazioni;

• I vari moduli devono interagire fra loro;• Ogni modulo è costituito da un’interfaccia che gli permette di interagire con gli altri moduli e dalla propria logica applicativa;

• Nella fase di progettazione si descrivono in dettaglio i compiti che ogni modulo deve svolgere (cosa) e le modalità di comunicazione fra i vari moduli;

• Nulla viene detto sul come i vari moduli svolgano i loro compiti.

16Luigi Puzone ® Informatica 1 – Università di Ferrara – A.A. 2008-2009 Modulo 4.2: Programmazione e sviluppo dei sistemi

Strumenti di progettazione:

•Diagrammi di flusso

•Pseudolinguaggi

Fasi del Ciclo di Vita del Software …Progettazione…

Page 9: 4.2 Informatica1    Uni Fe  L.P

9

17Luigi Puzone ® Informatica 1 – Università di Ferrara – A.A. 2008-2009 Modulo 4.2: Programmazione e sviluppo dei sistemi

Un diagramma di flusso è uno

strumento grafico utilizzato per

individuare le modalità con cui il

processo di elaborazione deve trattare

i dati in ingresso trasformandoli in

informazioni in uscita.

Fasi del Ciclo di Vita del Software …Progettazione: Diagrammi di Flusso

18Luigi Puzone ® Informatica 1 – Università di Ferrara – A.A. 2008-2009 Modulo 4.2: Programmazione e sviluppo dei sistemi

Fasi del Ciclo di Vita del Software …Progettazione…

(Informatica di base 3ed. – Curtin D.P. et al – McGrawHill)

Page 10: 4.2 Informatica1    Uni Fe  L.P

10

19Luigi Puzone ® Informatica 1 – Università di Ferrara – A.A. 2008-2009 Modulo 4.2: Programmazione e sviluppo dei sistemi

Fasi del Ciclo di Vita del Software …Progettazione…

20Luigi Puzone ® Informatica 1 – Università di Ferrara – A.A. 2008-2009 Modulo 4.2: Programmazione e sviluppo dei sistemi

Gli pseudolinguaggi di programmazione hanno lo scopo di

semplificare la progettazione di un programma. Essi

permettono di “abbozzare” le caratteristiche di ciascuna

funzione che si intende progettare iniziando a progettare il

programma attraverso delle semplici descrizioni in

linguaggio naturale di alcune macrofunzioni. Successiva-

mente si procede per passi successivi fino a descrivere in

modo completo ciascuna macrofunzione (metodo top

down).

(Esempio: il program definition language PDL)

Fasi del Ciclo di Vita del Software…Progettazione: Pseudolinguaggi

Page 11: 4.2 Informatica1    Uni Fe  L.P

11

21Luigi Puzone ® Informatica 1 – Università di Ferrara – A.A. 2008-2009 Modulo 4.2: Programmazione e sviluppo dei sistemi

Terza Fase:

• La scrittura del programma nel linguaggio

di programmazione prescelto

Fasi del Ciclo di Vita del Software Codifica del programma

22Luigi Puzone ® Informatica 1 – Università di Ferrara – A.A. 2008-2009 Modulo 4.2: Programmazione e sviluppo dei sistemi

Nella fase di codifica, detta anche programmazione o

implementazione del programma, si specifica nei minimi

dettagli il progetto del sistema fino ai singoli comandi nel

linguaggio di programmazione prescelto.

In particolare in questa fase:

– Si implementano gli schemi dei dati (descrizione della struttura dei

dati, dei file o dei database)

– Si implementano i vari moduli del programma, i cicli e le funzioni

all’interno di ciascun modulo e le relative interfacce di

comunicazione;

– Si implementano le interfacce utente

Fasi del Ciclo di Vita del Software…Codifica del programma…

Page 12: 4.2 Informatica1    Uni Fe  L.P

12

23Luigi Puzone ® Informatica 1 – Università di Ferrara – A.A. 2008-2009 Modulo 4.2: Programmazione e sviluppo dei sistemi

Qualità e Usabilità del software

Nel processo di progettazione e di implementazione del

programma e delle interfacce utente devono essere seguite

delle regole che consentano un funzionamento adeguato e

senza spreco delle capacità elaborative e, soprattutto, un

utilizzo “confortevole” da parte dell’utente. Si tende quindi:

– a ridurre la complessità di ciascun modulo in modo da

aumentarne l’efficienza;

– a seguire delle regole che rendano il prodotto usabile (le

linee guida sono le norme ISO 9241 e ISO 9126).

Fasi del Ciclo di Vita del Software…Codifica del programma…

24Luigi Puzone ® Informatica 1 – Università di Ferrara – A.A. 2008-2009 Modulo 4.2: Programmazione e sviluppo dei sistemi

Qualità e Usabilità del software

le norme ISO 9241 e ISO 9126 definiscono i parametri di

usabilità e suggerisce come utilizzare le misurazioni del

livello di soddisfazione dell’utente, per la valutazione

dei singoli componenti software.

L’usabilità è, in sintesi, il grado con cui gli utenti possono adoperare un prodotto per raggiungere gli obiettivi per cui è stato progettato con efficacia, efficienza e soddisfazione in uno specifico contesto d’uso.

Fasi del Ciclo di Vita del Software…Codifica del programma…

Page 13: 4.2 Informatica1    Uni Fe  L.P

13

25Luigi Puzone ® Informatica 1 – Università di Ferrara – A.A. 2008-2009 Modulo 4.2: Programmazione e sviluppo dei sistemi

Quarta fase:

• La verifica che il programma realizzato

funzioni correttamente: fase di verifica

(testing)

Fasi del Ciclo di VitaVerifica del programma

26Luigi Puzone ® Informatica 1 – Università di Ferrara – A.A. 2008-2009 Modulo 4.2: Programmazione e sviluppo dei sistemi

Per verificare il software vengono realizzati dei piani

di test.

Lo scopo di un piano di test è individuare il

comportamento che deve esibire ciascuna delle

funzioni del software e verificare sulla base di tale

piano che ciascuna funzione svolga correttamente le

sue funzioni.

Fasi del Ciclo di VitaVerifica del programma

Page 14: 4.2 Informatica1    Uni Fe  L.P

14

27Luigi Puzone ® Informatica 1 – Università di Ferrara – A.A. 2008-2009 Modulo 4.2: Programmazione e sviluppo dei sistemi

Quinta fase:

• La documentazione del programma.

Fasi del Ciclo di VitaDocumentazione del programma

28Luigi Puzone ® Informatica 1 – Università di Ferrara – A.A. 2008-2009 Modulo 4.2: Programmazione e sviluppo dei sistemi

•La documentazione del programma comprende:

– il manuale utente,

– il manuale di gestione e installazione,

– la documentazione del progetto software.

Fasi del Ciclo di VitaDocumentazione del programma