Upload
giuseppe-cramarossa
View
20
Download
2
Embed Size (px)
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