SlideShare une entreprise Scribd logo
1  sur  10
ACCENNI SULL’
INGEGNERIA DEL
SOFTWARE
GIUSEPPE CRAMAROSSA
ALTERNANZA SCUOLA-LAVORO @ LICEO SCIENTIFICO «G. GALILEI» BITONTO
21 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
usare
Il 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/Giusep
peCramarossa/il-linguaggio-uml-
teoria-ed-esempi-pratici-sugli-
use-case-diagram
GENERALITÀ DEL
SOFTWARE
CONTESTO DI
BUSINESS
SVILUPPI FUTURI
STAKEHOLDER
DESCRIZIONE DELLE
FUNZIONALITÀ
SCENARI E CASI
D’USO
FURPS
STABILITÀ DEI
VINCOLI
DESCRIZIONE
DELL’ARCHITETTURA
VINCOLI LEGALI SICUREZZA
VERSIONI DEL
PRODOTTO
PROGETTAZIONE
 Documento che descrive il programma da
implementare
 Diagramma delle classi (UML)
 Algoritmi
 Diagrammi 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 codice
 Autocompletamento
 Debugging 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

Contenu connexe

Similaire à Lezione 6 - Accenni sull’ingegneria del software

Presentazione review it_20min
Presentazione review it_20minPresentazione review it_20min
Presentazione review it_20minFabrizio Straccia
 
Introduzione alle metodologie Agili
Introduzione alle metodologie AgiliIntroduzione alle metodologie Agili
Introduzione alle metodologie AgiliAlessandro Astarita
 
Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1
Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1
Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1Daniele Falamesca
 
Presentazione Tamiazzo09
Presentazione Tamiazzo09Presentazione Tamiazzo09
Presentazione Tamiazzo09gueste37f39
 
Come rilasciare App di Qualità
Come rilasciare App di QualitàCome rilasciare App di Qualità
Come rilasciare App di QualitàLuca Manara
 
Argo CMS: demo online e versione di prova gratuita (trial)
Argo CMS: demo online e versione di prova gratuita (trial)Argo CMS: demo online e versione di prova gratuita (trial)
Argo CMS: demo online e versione di prova gratuita (trial)KEA s.r.l.
 
Studio e sviluppo di un’interfaccia per applicazione WEB 2.0
Studio e sviluppo di un’interfaccia per applicazione WEB 2.0Studio e sviluppo di un’interfaccia per applicazione WEB 2.0
Studio e sviluppo di un’interfaccia per applicazione WEB 2.0NobelMusic
 
Studio e implementazione di uno strumento di configurazione e visualizzazione...
Studio e implementazione di uno strumento di configurazione e visualizzazione...Studio e implementazione di uno strumento di configurazione e visualizzazione...
Studio e implementazione di uno strumento di configurazione e visualizzazione...Matteo Miotto
 
Il buon programmatore - consigli pratici per una vita felice
Il buon programmatore - consigli pratici per una vita feliceIl buon programmatore - consigli pratici per una vita felice
Il buon programmatore - consigli pratici per una vita feliceAndrea Dottor
 
Aspect Oriented Programming
Aspect Oriented ProgrammingAspect Oriented Programming
Aspect Oriented ProgrammingAndrea Bozzoni
 
Prototipazione Low-Code con AWS Step Functions
Prototipazione Low-Code con AWS Step FunctionsPrototipazione Low-Code con AWS Step Functions
Prototipazione Low-Code con AWS Step FunctionsCommit University
 
Keep calm and Deploy - Panoramica sui problemi che emergono in fase di rilasc...
Keep calm and Deploy - Panoramica sui problemi che emergono in fase di rilasc...Keep calm and Deploy - Panoramica sui problemi che emergono in fase di rilasc...
Keep calm and Deploy - Panoramica sui problemi che emergono in fase di rilasc...Andrea Cirioni
 

Similaire à Lezione 6 - Accenni sull’ingegneria del software (20)

Presentazione review it_20min
Presentazione review it_20minPresentazione review it_20min
Presentazione review it_20min
 
Introduzione alle metodologie Agili
Introduzione alle metodologie AgiliIntroduzione alle metodologie Agili
Introduzione alle metodologie Agili
 
Software Testing e TDD
Software Testing e TDDSoftware Testing e TDD
Software Testing e TDD
 
Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1
Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1
Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1
 
Presentazione Tamiazzo09
Presentazione Tamiazzo09Presentazione Tamiazzo09
Presentazione Tamiazzo09
 
Manuale Agile Stelnet
Manuale Agile StelnetManuale Agile Stelnet
Manuale Agile Stelnet
 
Sinossi
SinossiSinossi
Sinossi
 
Come rilasciare App di Qualità
Come rilasciare App di QualitàCome rilasciare App di Qualità
Come rilasciare App di Qualità
 
Argo CMS: demo online e versione di prova gratuita (trial)
Argo CMS: demo online e versione di prova gratuita (trial)Argo CMS: demo online e versione di prova gratuita (trial)
Argo CMS: demo online e versione di prova gratuita (trial)
 
Software_analyst
Software_analystSoftware_analyst
Software_analyst
 
Studio e sviluppo di un’interfaccia per applicazione WEB 2.0
Studio e sviluppo di un’interfaccia per applicazione WEB 2.0Studio e sviluppo di un’interfaccia per applicazione WEB 2.0
Studio e sviluppo di un’interfaccia per applicazione WEB 2.0
 
Catalogo corsi Emerasoft 2013 - 2014
Catalogo corsi Emerasoft 2013 - 2014Catalogo corsi Emerasoft 2013 - 2014
Catalogo corsi Emerasoft 2013 - 2014
 
Studio e implementazione di uno strumento di configurazione e visualizzazione...
Studio e implementazione di uno strumento di configurazione e visualizzazione...Studio e implementazione di uno strumento di configurazione e visualizzazione...
Studio e implementazione di uno strumento di configurazione e visualizzazione...
 
Iloveyou
IloveyouIloveyou
Iloveyou
 
Il buon programmatore - consigli pratici per una vita felice
Il buon programmatore - consigli pratici per una vita feliceIl buon programmatore - consigli pratici per una vita felice
Il buon programmatore - consigli pratici per una vita felice
 
Introduzione all'ALM
Introduzione all'ALMIntroduzione all'ALM
Introduzione all'ALM
 
Aspect Oriented Programming
Aspect Oriented ProgrammingAspect Oriented Programming
Aspect Oriented Programming
 
Prototipazione Low-Code con AWS Step Functions
Prototipazione Low-Code con AWS Step FunctionsPrototipazione Low-Code con AWS Step Functions
Prototipazione Low-Code con AWS Step Functions
 
Keep calm and Deploy - Panoramica sui problemi che emergono in fase di rilasc...
Keep calm and Deploy - Panoramica sui problemi che emergono in fase di rilasc...Keep calm and Deploy - Panoramica sui problemi che emergono in fase di rilasc...
Keep calm and Deploy - Panoramica sui problemi che emergono in fase di rilasc...
 
Produzione software
Produzione softwareProduzione software
Produzione software
 

Plus de Giuseppe Cramarossa

Lezione 10 - Programmazione ad oggetti
Lezione 10 - Programmazione ad oggettiLezione 10 - Programmazione ad oggetti
Lezione 10 - Programmazione ad oggettiGiuseppe Cramarossa
 
Lezione 8 - Pratica - Il diagramma E-R
Lezione 8 - Pratica - Il diagramma E-RLezione 8 - Pratica - Il diagramma E-R
Lezione 8 - Pratica - Il diagramma E-RGiuseppe Cramarossa
 
Lezione 8 - Teoria - Progettare una base di dati
Lezione 8 - Teoria - Progettare una base di datiLezione 8 - Teoria - Progettare una base di dati
Lezione 8 - Teoria - Progettare una base di datiGiuseppe Cramarossa
 
Lezione 4 - Pratica - Lavorare in azienda: il teamwork
Lezione 4 - Pratica - Lavorare in azienda: il teamworkLezione 4 - Pratica - Lavorare in azienda: il teamwork
Lezione 4 - Pratica - Lavorare in azienda: il teamworkGiuseppe Cramarossa
 
Lezione 4 - Teoria - Lavorare in azienda: organizzazione aziendale e strumenti
Lezione 4 - Teoria - Lavorare in azienda: organizzazione aziendale e strumentiLezione 4 - Teoria - Lavorare in azienda: organizzazione aziendale e strumenti
Lezione 4 - Teoria - Lavorare in azienda: organizzazione aziendale e strumentiGiuseppe Cramarossa
 
Lezione 1 - Teoria - Accenni sulle reti e sui servizi internet
Lezione 1 - Teoria - Accenni sulle reti e sui servizi internetLezione 1 - Teoria - Accenni sulle reti e sui servizi internet
Lezione 1 - Teoria - Accenni sulle reti e sui servizi internetGiuseppe Cramarossa
 
Cortana, non solo un' assistente vocale
Cortana, non solo un' assistente vocaleCortana, non solo un' assistente vocale
Cortana, non solo un' assistente vocaleGiuseppe Cramarossa
 
Programmazione di applicazioni UWP - Dalle basi del C# alla creazione di un’a...
Programmazione di applicazioni UWP - Dalle basi del C# alla creazione di un’a...Programmazione di applicazioni UWP - Dalle basi del C# alla creazione di un’a...
Programmazione di applicazioni UWP - Dalle basi del C# alla creazione di un’a...Giuseppe Cramarossa
 
Internet services, protocols, applications, packets and frames
Internet services, protocols, applications, packets and framesInternet services, protocols, applications, packets and frames
Internet services, protocols, applications, packets and framesGiuseppe Cramarossa
 
UWP e Mobile App Mobile Services
UWP e Mobile App Mobile ServicesUWP e Mobile App Mobile Services
UWP e Mobile App Mobile ServicesGiuseppe Cramarossa
 
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...Giuseppe Cramarossa
 
Il linguaggio UML - Teoria ed esempi pratici sugli use case diagram
Il linguaggio UML - Teoria ed esempi pratici sugli use case diagramIl linguaggio UML - Teoria ed esempi pratici sugli use case diagram
Il linguaggio UML - Teoria ed esempi pratici sugli use case diagramGiuseppe Cramarossa
 
Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...
Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...
Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...Giuseppe Cramarossa
 
Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...
Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...
Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...Giuseppe Cramarossa
 

Plus de Giuseppe Cramarossa (20)

Lezione 11 - Javascript
Lezione 11 - JavascriptLezione 11 - Javascript
Lezione 11 - Javascript
 
Lezione 10 - Programmazione ad oggetti
Lezione 10 - Programmazione ad oggettiLezione 10 - Programmazione ad oggetti
Lezione 10 - Programmazione ad oggetti
 
Lezione 9 - Il linguaggio SQL
Lezione 9 - Il linguaggio SQLLezione 9 - Il linguaggio SQL
Lezione 9 - Il linguaggio SQL
 
Lezione 8 - Pratica - Il diagramma E-R
Lezione 8 - Pratica - Il diagramma E-RLezione 8 - Pratica - Il diagramma E-R
Lezione 8 - Pratica - Il diagramma E-R
 
Lezione 8 - Teoria - Progettare una base di dati
Lezione 8 - Teoria - Progettare una base di datiLezione 8 - Teoria - Progettare una base di dati
Lezione 8 - Teoria - Progettare una base di dati
 
Lezione 7 - CSS
Lezione 7 - CSSLezione 7 - CSS
Lezione 7 - CSS
 
Lezione 5 - L'HTML
Lezione 5 - L'HTMLLezione 5 - L'HTML
Lezione 5 - L'HTML
 
Lezione 4 - Pratica - Lavorare in azienda: il teamwork
Lezione 4 - Pratica - Lavorare in azienda: il teamworkLezione 4 - Pratica - Lavorare in azienda: il teamwork
Lezione 4 - Pratica - Lavorare in azienda: il teamwork
 
Lezione 4 - Teoria - Lavorare in azienda: organizzazione aziendale e strumenti
Lezione 4 - Teoria - Lavorare in azienda: organizzazione aziendale e strumentiLezione 4 - Teoria - Lavorare in azienda: organizzazione aziendale e strumenti
Lezione 4 - Teoria - Lavorare in azienda: organizzazione aziendale e strumenti
 
Lezione 3 - Il CMS Joomla
Lezione 3 - Il CMS JoomlaLezione 3 - Il CMS Joomla
Lezione 3 - Il CMS Joomla
 
Lezione 2 - Il World Wide Web
Lezione 2  - Il World Wide WebLezione 2  - Il World Wide Web
Lezione 2 - Il World Wide Web
 
Lezione 1 - Teoria - Accenni sulle reti e sui servizi internet
Lezione 1 - Teoria - Accenni sulle reti e sui servizi internetLezione 1 - Teoria - Accenni sulle reti e sui servizi internet
Lezione 1 - Teoria - Accenni sulle reti e sui servizi internet
 
Cortana, non solo un' assistente vocale
Cortana, non solo un' assistente vocaleCortana, non solo un' assistente vocale
Cortana, non solo un' assistente vocale
 
Programmazione di applicazioni UWP - Dalle basi del C# alla creazione di un’a...
Programmazione di applicazioni UWP - Dalle basi del C# alla creazione di un’a...Programmazione di applicazioni UWP - Dalle basi del C# alla creazione di un’a...
Programmazione di applicazioni UWP - Dalle basi del C# alla creazione di un’a...
 
Internet services, protocols, applications, packets and frames
Internet services, protocols, applications, packets and framesInternet services, protocols, applications, packets and frames
Internet services, protocols, applications, packets and frames
 
UWP e Mobile App Mobile Services
UWP e Mobile App Mobile ServicesUWP e Mobile App Mobile Services
UWP e Mobile App Mobile Services
 
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
 
Il linguaggio UML - Teoria ed esempi pratici sugli use case diagram
Il linguaggio UML - Teoria ed esempi pratici sugli use case diagramIl linguaggio UML - Teoria ed esempi pratici sugli use case diagram
Il linguaggio UML - Teoria ed esempi pratici sugli use case diagram
 
Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...
Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...
Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...
 
Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...
Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...
Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...
 

Dernier

Lorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxLorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxlorenzodemidio01
 
Quadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceoQuadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceoyanmeng831
 
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxLorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxlorenzodemidio01
 
Presentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione CivicaPresentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione CivicaSalvatore Cianciabella
 
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxLorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxlorenzodemidio01
 
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxLorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxlorenzodemidio01
 
Confronto tra Sparta e Atene classiche.ppt
Confronto tra Sparta e Atene classiche.pptConfronto tra Sparta e Atene classiche.ppt
Confronto tra Sparta e Atene classiche.pptcarlottagalassi
 

Dernier (7)

Lorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxLorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptx
 
Quadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceoQuadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceo
 
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxLorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
 
Presentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione CivicaPresentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione Civica
 
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxLorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
 
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxLorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
 
Confronto tra Sparta e Atene classiche.ppt
Confronto tra Sparta e Atene classiche.pptConfronto tra Sparta e Atene classiche.ppt
Confronto tra Sparta e Atene classiche.ppt
 

Lezione 6 - Accenni sull’ingegneria del software

  • 1. ACCENNI SULL’ INGEGNERIA DEL SOFTWARE GIUSEPPE CRAMAROSSA ALTERNANZA SCUOLA-LAVORO @ LICEO SCIENTIFICO «G. GALILEI» BITONTO 21 GENNAIO 2017
  • 2. SOMMARIO  Generalità  Studio di fattibilità  Raccolta dei requisiti  Progettazione  Implementazione  Test e collaudo  Manutenzione
  • 3. 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)
  • 4. 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à
  • 5. STUDIO DI FATTIBILITÀ  Indica come deve essere fatto il progetto e cosa usare Il 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
  • 6. 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/Giusep peCramarossa/il-linguaggio-uml- teoria-ed-esempi-pratici-sugli- use-case-diagram GENERALITÀ DEL SOFTWARE CONTESTO DI BUSINESS SVILUPPI FUTURI STAKEHOLDER DESCRIZIONE DELLE FUNZIONALITÀ SCENARI E CASI D’USO FURPS STABILITÀ DEI VINCOLI DESCRIZIONE DELL’ARCHITETTURA VINCOLI LEGALI SICUREZZA VERSIONI DEL PRODOTTO
  • 7. PROGETTAZIONE  Documento che descrive il programma da implementare  Diagramma delle classi (UML)  Algoritmi  Diagrammi di flusso (flowchart)  Utilizza un linguaggio formale  Si possono progettare anche i test da fare (unit testing) e le interfacce grafiche (mokeup)
  • 8. 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 codice  Autocompletamento  Debugging e deployment semplificato
  • 9. 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?
  • 10. 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