Ingegneria del Software Processi di Sviluppo - ICAR

Transcript

Ingegneria del Software Processi di Sviluppo - ICAR
Ingegneria del Software
Processi di Sviluppo
Corso di Ingegneria del Software
Ing. Antonio Coronato
Università “Federico II” di Napoli
Consiglio Nazionale delle Ricerche
Ingegneria del Software: Tecnologia
Stratificata
tools
metodi
processi
Focus sulla qualità
qualità
Corso di Ingegneria del Software
Ing. Antonio Coronato
Università “Federico II” di Napoli
Consiglio Nazionale delle Ricerche
Ingegneria del Software: Tecnologia
Stratificata (2)
• Qualità – Elemento costitutivo dell’ingegneria del
software
• Processo – Fornisce i meccanismi di controllo
gestionale dei progetti software e stabilisce il contesto
all’interno del quale applicare i metodi
• Metodo – Tecnica applicabile per il raggiungimento di
un obiettivo
• Tools – Strumenti automatici di supporto al processo
ed ai metodi
Corso di Ingegneria del Software
Ing. Antonio Coronato
Università “Federico II” di Napoli
Consiglio Nazionale delle Ricerche
Processo di Sviluppo
• E’ una struttura di riferimento entro la quale si
svolgono le attività necessarie a realizzare
software di alta qualità e nei tempi stabiliti
• Stabilisce quando e come qualcuno fa cosa,
per raggiungere un determinato obiettivo
Corso di Ingegneria del Software
Ing. Antonio Coronato
Università “Federico II” di Napoli
Consiglio Nazionale delle Ricerche
Struttura del Processo di Sviluppo
Struttura del Processo
Attività Ombrello
Attività Strutturale 1
• Azione di ingegneria del software 1.1
- Task
• Azione di ingegneria del software 1.k
- Task
Attività Strutturale N
• Azione di ingegneria del software N.1
- Task
• Azione di ingegneria del software N.M
- Task
Corso di Ingegneria del Software
Ing. Antonio Coronato
Università “Federico II” di Napoli
Consiglio Nazionale delle Ricerche
Attività Strutturali
• Sono ordinate
cronologicamente
– I risultati di una attività
costituiscono un input per
attività strutturali
successive
• Sono “mandatory”
– Non è possibile
prescindere da nessuna di
esse
• Communication
• Planning
• Modeling
– Analysis of requirements
– Design
• Construction
– Code generation
– Testing
• Deployment
Corso di Ingegneria del Software
Ing. Antonio Coronato
Università “Federico II” di Napoli
Consiglio Nazionale delle Ricerche
Esempi di Attività Strutturali
• Communication
– Comunicazioni col cliente per la raccolta dei requisiti
• Planning
– Pianificazione delle attività di ingegneria del software per lo
sviluppo del sistema
• Modeling
– Creazione dei modelli di specifica
• Construction
– Realizzazione delle componenti del sistema software
• Deployment
– Installazione e messa in esercizio del sistema
Corso di Ingegneria del Software
Ing. Antonio Coronato
Università “Federico II” di Napoli
Consiglio Nazionale delle Ricerche
Attività Ombrello
•
Attività “asincrone” rispetto al
processo di sviluppo
– Il processo non vincola
l’espletamento delle attività
ombrello in “momenti”
predefiniti del ciclo di
sviluppo
– Le attività ombrello possono
essere espletate più volte
durante il ciclo di sviluppo
•
Non mandatory
– Le attività ombrello non sono
tipicamente obligatorie
• Gestione del progetto software
• Gestione dei rischi
• Gestione della qualità
• Misura
• Revisioni tecniche formali
Corso di Ingegneria del Software
Ing. Antonio Coronato
Università “Federico II” di Napoli
Consiglio Nazionale delle Ricerche
Esempi di Attività Ombrello
• Gestione del progetto software
– Valutazione dei progressi ottenuti nello sviluppo rispetto ai
piani di progettazione
• Gestione dei rischi
– Valutazione dei rischi che possono influenzare il risultato o la
qualità del progetto
• Gestione della qualità
– Attività necessarie a garantire livelli “accettabili” di qualità
• Misura
– Meccanismi di valutazione del livello di qualità del progetto, del
grado di efficienza del prodotto, del grado di soddisfazione del
cliente…
• Revisioni tecniche formali
– Valutazione degli “artifatti” al fine di individuare gli errori,
evitarne la propagazione e correggerli
Corso di Ingegneria del Software
Ing. Antonio Coronato
Università “Federico II” di Napoli
Consiglio Nazionale delle Ricerche
Adattabilità del Processo
• Le attività strutturali devono essere sempre
applicate ad ogni progetto…ma
• I tasks variano in funzione:
– Del tipo di progetto
– Degli skills del team di sviluppo
–…
Corso di Ingegneria del Software
Ing. Antonio Coronato
Università “Federico II” di Napoli
Consiglio Nazionale delle Ricerche
I Modelli Prescrittivi
• Formalizza in maniera rigorosa alcuni elementi
del processo
– Attività strutturali
– Azioni di ingegneria
• Prescrive anche il flusso e le correlazioni tra gli
elementi del processo
Corso di Ingegneria del Software
Ing. Antonio Coronato
Università “Federico II” di Napoli
Consiglio Nazionale delle Ricerche
Il Modello “a cascata” (Waterfall)
• E’ un modello rigidamente sequenziale
– Le attività strutturali sono sequenziali
– Gli artifatti prodotti da un’attività strutturale sono di
ingresso all’attività successiva
Communication
Project initiation
Requirement gathering
Planning
Estimation
Scheduling
Tracking
Modeling
Analysis
Design
Construction
Code
Test
Deployment
Delivery
Support
Feedback
Corso di Ingegneria del Software
Ing. Antonio Coronato
Università “Federico II” di Napoli
Consiglio Nazionale delle Ricerche
Il Modello Waterfall (2)
• Applicabilità
– I requisiti del sistema devono essere ben chiari e stabili nel
tempo
– Il sistema deve essere semplice e non presentare funzionalità
critiche
• Efficiente
– Se le attività strutturali sono eseguite da team differenti, ogni
stadio costituisce un blocco per le attività successive
• Interazione col cliente
– Le interazioni solo limitate alle prime fasi del ciclo
– Il cliente dovrà attendere la fine del ciclo per ottenere
“qualcosa” di funzionante
Corso di Ingegneria del Software
Ing. Antonio Coronato
Università “Federico II” di Napoli
Consiglio Nazionale delle Ricerche
Il Modello Waterfall: Una Variante
• Introduzione di azioni di Verifica e Validazione
degli artifatti
• Possibilità di ritorno alla fase precedente
Communication
V&V
Planning
Modeling
V&V
V&V
Construction
V&V
Deployment
V&V
Corso di Ingegneria del Software
Ing. Antonio Coronato
Università “Federico II” di Napoli
Consiglio Nazionale delle Ricerche
I Modelli Evolutivi
• Applicazione iterata
delle attività
strutturali per il
“refinement” degli
artifatti
Modeling
Modeling
Planning
Planning
Construction
Construction
Communication
Communication
Deployment
Deployment
Corso di Ingegneria del Software
Ing. Antonio Coronato
Università “Federico II” di Napoli
Consiglio Nazionale delle Ricerche
Il Modello Incrementale
• Il sistema viene suddiviso in “slices” sviluppati
indipendentemente
• Si applica un ciclo a cascata ad ogni incremento
in c r e m e n t # n
C o m m u n i c a t
i o n
P l a n n i n g
M
o d e l i n g
a n a l y s is
des ign
C o n s t
r u c t
i o n
c ode
t es t
D e p l o y m e n t
d e l i v e r y
f e e d b a c k
d e liv e r y o f
n t h in c r e m e n t
in c r e m e n t # 2
C o m m
u n i c a t
i o n
P l a n n i n g
M
o d e l i n g
a n a ly s i s
d e s ig n
C o n s t
r u c t
c ode
t es t
C o m
m u n i c a t
i o n
D e p l o y m e n t
d e l i v e r y
f e e d b a c k
in c r e m e n t # 1
d e liv e r y o f
2 n d in c r e m e n t
i o n
P l a n n i n g
M
o d e l i n g
a n a ly s i s
d e s ig n
C o n s t
c ode
t es t
r u c t
i o n
D e p l o y m e n t
d e l i v e r y
f e e d b a c k
d e liv e r y o f
1 s t in c r e m e n t
p r o j e c t c a le n d a r t im e
Corso di Ingegneria del Software
Ing. Antonio Coronato
Università “Federico II” di Napoli
Consiglio Nazionale delle Ricerche
Il Modello Incrementale (2)
• Applicabilità
– Il sistema può essere complesso ma i requisiti del sistema
devono essere ben chiari e stabili nel tempo
– Le funzionalità critiche possono essere “testate” con il primo
incremento
• Efficienza
– Realizzazione di una struttura a “pipeline” nello sviluppo dei
diversi incrementi
• Interazione col cliente
– Il cliente riceve un incremento alla fine di ogni ciclo
Corso di Ingegneria del Software
Ing. Antonio Coronato
Università “Federico II” di Napoli
Consiglio Nazionale delle Ricerche
Il Modello Prototypale
• Realizzazione di un prototipo preliminare al sistema
• Due tipologie di prototipo:
– Mock-ups: Prototipo completo delle interfacce del sistema
• Permette di definire completamente i requisiti del sistema
– Breadboards: Prototipo delle funzionalità critiche del sistema
• Permette di valutare le scelte relative a vincoli “stringenti” quali:
tempi di risposta, carico, sicurezza, affidabilità,…
• Il prototipo non deve diventare sistema
Corso di Ingegneria del Software
Ing. Antonio Coronato
Università “Federico II” di Napoli
Consiglio Nazionale delle Ricerche
Il Modello a Spirale
• Si individua un nucleo di requisiti e successivamente si
estende il sistema a “macchia d’olio”
Modeling
Modeling
Planning
Planning
Construction
Construction
start
Communication
Communication
Deployment
Deployment
Corso di Ingegneria del Software
Ing. Antonio Coronato
Università “Federico II” di Napoli
Consiglio Nazionale delle Ricerche
Il Modello a spirale (2)
• Applicabilità
– Il sistema può essere complesso ed i requisiti
possono essere anche non perfettamente stabili o
chiari
• Efficienza
– Le attività sono sequenziali come nel caso del
modello a cascata
• Interazione col cliente
– Il cliente interagisce ad ogni ciclo ma non riceve
incrementi
Corso di Ingegneria del Software
Ing. Antonio Coronato
Università “Federico II” di Napoli
Consiglio Nazionale delle Ricerche
Il Modello Concorrente
• Le attività strutturali sono
sviluppate secondo un
modello a stati
concorrenti
none
Modeling activit y
represents the state
of a software engineering
activity or task
Under
development
Awaiting
• Lo “stato” di una attività
strutturale dipende dallo
stato di altre attività
changes
Under review
Under
revision
Baselined
Done
Corso di Ingegneria del Software
Ing. Antonio Coronato
Università “Federico II” di Napoli
Consiglio Nazionale delle Ricerche
Il Modello concorrente (2)
• Applicabilità
– Il sistema può essere complesso ed i requisiti
possono essere anche poco stabili o poco chiari
• Efficienza
– Elevato grado di “parallelismo” tra le attività
• Interazione col cliente
– Il cliente interagisce frequentemente
Corso di Ingegneria del Software
Ing. Antonio Coronato
Università “Federico II” di Napoli
Consiglio Nazionale delle Ricerche
Il Modello RAD
• Modello a “sviluppo
rapido”
Team # n
Modeling
business modeling
data modeling
process modeling
• Le attività di
modellazione,
costruzione e messa
in esercizio sono
altamente
parallelizzate
Const ruct ion
component reuse
automatic code
generation
testing
Team # 2
Communication
Modeling
business modeling
dat a modeling
process modeling
Planning
Construction
Team # 1
Deployment
component reuse
aut omat ic code
generat ion
t est ing
Modeling
business modeling
dat a modeling
process modeling
Construction
component reuse
aut omat ic code
generat ion
t est ing
60 - 90 days
Corso di Ingegneria del Software
Ing. Antonio Coronato
Università “Federico II” di Napoli
Consiglio Nazionale delle Ricerche
Il Modello RAD (2)
• Applicabilità
– Si applica a sistemi con vincoli sui tempi di
realizzazione particolarmente stringenti
• Efficienza
– Le attività di sviluppo sono fortemente parallelizzate
• Interazione col cliente
– Si concentra nella fase iniziale
Corso di Ingegneria del Software
Ing. Antonio Coronato
Università “Federico II” di Napoli
Consiglio Nazionale delle Ricerche
int egrat ion
delivery
feedback
Altri Modelli di Processo
• Modelli per sistemi a componenti
• Modelli basati su metodi formali
Corso di Ingegneria del Software
Ing. Antonio Coronato
Università “Federico II” di Napoli
Consiglio Nazionale delle Ricerche
Lo Unified Process (UP)
Elaboration
• Tentativo di
standardizzazione
dei processi di
sviluppo
Inception
• Processo evolutivo
basato su
iterazioni
focalizzate su
Release
attività differenti
construct ion
transit ion
soft ware increment
production
Corso di Ingegneria del Software
Ing. Antonio Coronato
Università “Federico II” di Napoli
Consiglio Nazionale delle Ricerche
Fasi dell’UP
UP Phases
Inception
Elaboration
Construction
Transition
Production
Workflows
Requirements
Analysis
Design
Implementation
Test
Support
Iterations
#1
#2
#n-1
#n
Corso di Ingegneria del Software
Ing. Antonio Coronato
Università “Federico II” di Napoli
Consiglio Nazionale delle Ricerche
UP - Artifatti
Inception phase
Vision document
Init ial use-case model
Init ial project glossary
Init ial business case
Init ial risk assessment .
Project plan,
phases and it erat ions.
Business model,
if necessary.
One or more prot ot ypes
I nc ept i o
n
Elaboration phase
Use-case model
Supplement ary requirement s
including non-funct ional
Analysis model
Soft ware archit ect ure
Descript ion.
Execut able archit ect ural
prot ot ype.
Preliminary design model
Revised risk list
Project plan including
it erat ion plan
adapt ed workflows
milest ones
t echnical work product s
Preliminary user manual
Construction phase
Design model
Soft ware component s
Int egrat ed soft ware
increment
Test plan and procedure
Test cases
Support document at ion
user manuals
inst allat ion manuals
descript ion of current
increment
Transition phase
Delivered soft ware increment
Bet a t est report s
General user feedback
Corso di Ingegneria del Software
Ing. Antonio Coronato
Università “Federico II” di Napoli
Consiglio Nazionale delle Ricerche