10
ACCENNI SULL’ INGEGNERIA DEL SOFTWARE GIUSEPPE CRAMAROSSA ALTERNANZA SCUOLA-LAVORO @ LICEO SCIENTIFICO «G. GALILEI» BITONTO 21 GENNAIO 2017

Lezione 6 - Accenni sull’ingegneria del software

Embed Size (px)

Citation preview

Page 1: Lezione 6 - Accenni sull’ingegneria del software

ACCENNI SULL’ INGEGNERIA DEL SOFTWAREGIUSEPPE CRAMAROSSAALTERNANZA SCUOLA-LAVORO @ LICEO SCIENTIFICO «G. GALILEI» BITONTO21 GENNAIO 2017

Page 2: Lezione 6 - Accenni sull’ingegneria del software

SOMMARIO

Generalità Studio di fattibilità Raccolta dei requisiti Progettazione Implementazione Test e collaudo Manutenzione

Page 3: Lezione 6 - Accenni sull’ingegneria del software

GENERALITÀ

Un software di qualità non parte mai dalla codifica I bug costano Si deve conoscere cosa deve fare il software nel dettaglio

Esistono diversi metodi per creare software di qualità Modello a cascata

Modello più rigoroso. Il software è ben progettato ma si perde più tempo

Metodologia agile Le persone sono più importanti degli strumenti (team di

sviluppo piccoli, autorganizzati, poliedrici e collaborazione stretta con il cliente)

Page 4: Lezione 6 - Accenni sull’ingegneria del software

IL MODELLO A CASCATA

Le varie fasi si susseguono in ordine

Viene prediletta più la progettazione rispetto alla realizzazione Tempi molto lunghi Una buona progettazione

rende molto semplice e rapido la fase di sviluppo del software

Un errore in una fase può creare problemi nelle fasi successive Manutenzione

Test e collaudo

Realizzazione

Progettazione

Raccolta dei requisiti

Studio di fattibilità

Page 5: Lezione 6 - Accenni sull’ingegneria del software

STUDIO DI FATTIBILITÀ

Indica come deve essere fatto il progetto e cosa usareIl progetto può essere fatto da zero (greenfield

engineering)Il progetto può contenere parti di altri progetti

(reengineering)Uso di librerie o progetti open source

Si realizza solo l’interfaccia grafica (interface engineering)Software funzionante tramite linea di comando

Page 6: Lezione 6 - Accenni sull’ingegneria del software

RACCOLTA DEI REQUISITI

Definisce le varie versioni del prodotto e le funzionalità di ciascuna versione Il software deve essere

«sviscerato» in tutte le sue fasi

Utilizza un linguaggio informale comprensibile a tutti

Per gli scenari e i casi d’uso viene utilizzato l’UML http://www.slideshare.net/Giu

seppeCramarossa/il-linguaggio-uml-teoria-ed-esempi-pratici-sugli-use-case-diagram

GENERALITÀ DEL SOFTWARE

CONTESTO DI BUSINESS SVILUPPI FUTURI

STAKEHOLDERDESCRIZIONE

DELLE FUNZIONALITÀ

SCENARI E CASI D’USO

FURPS STABILITÀ DEI VINCOLI

DESCRIZIONE DELL’ARCHITETTU

RA

VINCOLI LEGALI SICUREZZA VERSIONI DEL PRODOTTO

Page 7: Lezione 6 - Accenni sull’ingegneria del software

PROGETTAZIONE

Documento che descrive il programma da implementareDiagramma delle classi (UML)AlgoritmiDiagrammi di flusso (flowchart)

Utilizza un linguaggio formale Si possono progettare anche i test da fare (unit

testing) e le interfacce grafiche (mokeup)

Page 8: Lezione 6 - Accenni sull’ingegneria del software

IMPLEMENTAZIONE

Si scrive il programma e si documenta il codice Si utilizzano uno o più linguaggi di

programmazione Per semplificare la codifica, vengono utilizzati gli

IDE (Integrated Development Environment) Indentazione del codiceAutocompletamentoDebugging e deployment semplificato

Page 9: Lezione 6 - Accenni sull’ingegneria del software

TEST E COLLAUDO

Si verifica se il programma funziona correttamente Test manuali (si prova l’applicazione) Test automtici (unit testing)

Se tutti i test vanno a buon fine, si passa alla fase di produzione

Se ci sono errori, si ritorna indietro In quale fase si trova l’errore?

Page 10: Lezione 6 - Accenni sull’ingegneria del software

MANUTENZIONE

Si aggiungono funzionalità al programma e si risolvono i problemi non trovati nella fase di collaudo (problemi scovati dagli utenti) Nessun software è perfetto

Per ogni modifica o aggiunta di funzionalità deve essere aggiornata anche la documentazione Changelog Riaggiornamento dei documenti Documentazione per l’utente