Lezione 6 - Accenni sull’ingegneria del software

Preview:

Citation preview

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

SOMMARIO

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

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)

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à

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

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

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)

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

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?

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

Recommended