Modelli di Processo di Sviluppo del Software

Transcript

Modelli di Processo di Sviluppo del Software
Modelli di Processo
www.vincenzocalabro.it
Il Modello del Processo
Il modello del processo stabilisce i principi di base
su cui si fonda lo sviluppo del software (e a cui è
dovuto il successo o l’insuccesso)
Non esiste un unico modello del processo:
infatti, il modello del processo dovrebbe essere
scelto in funzione del (tipo di) software da
sviluppare ovvero in funzione delle caratteristiche di
ciò che si chiama progetto
Quale posizione occupano nella Ingegneria del
Software e come si presentano i modelli di
processo ?
2
www.vincenzocalabro.it
Modello del Processo
Il modello di processo descrive l’idea di fondo alla base dello
sviluppo di un determinato software in un determinato progetto
Una metodologia segue un modello di processo, definendo in modo
più preciso come le attività devono essere svolte, quali metodi e
strumenti sono impiegati e cosa deve essere prodotto
Il progetto indica anche i tempi ed i costi delle attività che devono
essere svolti, la loro esatta sequenza temporale, con eventuali punti di
controllo (milestones) e il personale (risorse) da impiegare
Il modello di processo da un’idea della sequenza in cui certe attività
generiche possono svolgersi
Tali attività sono attività generiche e difficilmente standardizzabili nei
loro dettagli
Un modello di processo può leggersi attraverso diverse attività
generiche a seconda di cosa si vuole mettere in evidenza
3
www.vincenzocalabro.it
Posizione del Modello di Processo
Tools (Strumenti)
Practiche &
Principi
methods and methodologies
(metodi e metodologie)
process models (modelli di processo)
a “quality” focus (obiettivo qualità)
4
www.vincenzocalabro.it
L’obiettivo primario di ogni Modello di
Processo: Alta Qualità
Ricordare:
Alta qualità (*) = rispetto dei tempi
Perché?
Meno rilavorazione!
(*) Alta qualità nel rispetto di tempi e costi
www.vincenzocalabro.it
5
progetto
A Process Framework
Process framework (struttura del processo)
Umbrella Activities (attività ombrello)
Framework activities (attività strutturali)
work tasks
(compiti)
work products
(prodotti)
milestones & deliverables
(pietre miliari e “deliverables”)
quality assurance checkpoints
(punti di valutazione della qualità)
6
www.vincenzocalabro.it
Modello del Processo:
Adattabilità
Le attività strutturali possono essere applicate
a qualunque progetto-software (di un certo
tipo) MA
I compiti (quanto e quali devono essere
descritti) relativi alla singola attività varia:
In funzione del tipo di progetto-software
Le caratteristiche del progetto-software
7
www.vincenzocalabro.it
Sviluppo e messa in esercizio ma né
esercizio né manutazine
Attività strutturali comuni a
tutti i modelli di processo
Communication (Comunicazioni)
Planning (Pianificazione)
Modeling (Modellazione)
Analysis of requirements (Analisi dei requisiti)
Design (Progettazione)
Construction (Costruzione)
Code generation (Generazione del codice)
Testing (Collaudo)
Deployment (Dispiegamento)
Lo studio di fattibilità può essere o
menowww.vincenzocalabro.it
parte di tali attività
8
Attività ombrello comuni
Software project management
Formal technical reviews
Software quality assurance
Software configuration management
Work product preparation and production
Reusability management
Measurement
Risk management
9
www.vincenzocalabro.it
Le caratteristiche dei
modelli prescrittivi
I modelli prescrittivi indicano cosa dovrebbe essere
fatto per lo sviluppo del software
Ma ciò può rivelarsi inappropriato poiché …i requisiti
per loro natura possono modificarsi e le tecnologie
evolvono (Modelli Agili)
Ma la coordinazione è un obiettivo irrinunciabile
dell’Ingegneria dei Software (Modelli Ibridi)
10
www.vincenzocalabro.it
Il Modello a Cascata (Waterfall)
Customer request
Communicat ion
proje c t init ia t ion
re quire me nt gat he ring
Planning
estimating
Modeling
scheduling
analysis
Const ruct ion
tracking
design
code
t est
Deployment
de live ry
s upport
f e e dba c k
11
www.vincenzocalabro.it
Il Modello Incrementale
(Incremental Delivery)
increment # n
Co m m u n i c a t i o n
Pla nni ng
Modeling
anal ys is
desi gn
Co n s t ru c t i o n
c ode
t es t
De p l o y m e n t
d e l i v e ry
feedback
delivery of
nt h increment
increment # 2
Co m m u n i c a t i o n
Pla nni ng
Modeling
analy s is
des ign
Co n s t ru c t i o n
c ode
De p l o y m e n t
t est
d e l i v e ry
feedback
increment # 1
delivery of
2nd increment
Co m m u n i c a t i o n
Pl a nning
M odeling
anal ys is
desi gn
Co n s t ru c t i o n
c ode
De p l o y m e n t
t est
d e l i v e ry
feedback
delivery of
1st increment
project calendar time
software requirements can be well defined once or
in several future
runs! Priority-driven
www.vincenzocalabro.it
12
RAD Model
Team # n
Mo d e lin g
business modeling
data modeling
process modeling
Co n st ru ct io n
component reuse
automatic code
generation
testing
Team # 2
Communicat ion
Modeling
business modeling
dat a modeling
process modeling
Planning
Const ruct ion
Team # 1
component reuse
aut omat ic code
generat ion
t est ing
Modeling
Deployment
int egrat ion
delivery
feedback
business modeling
dat a modeling
process modeling
Const ruct ion
component reuse
aut omat ic code
generat ion
t est ing
60 - 90 days
13
www.vincenzocalabro.it
Modelli evolutivi: il Prototyping
Q u i cQuick
k p lan
Co m m u n ic a t io n
plan
Communication
M o Modeling
d e lin g
Q
u i cdesign
k d e sig n
Quick
De p lo ym e n t
Deployment
Ddelivery
e liv e r y&
& feedback
Fe e d b a c k
Co n s t r u c t io n
Construction
of
of prototype
p r o t o t yp e
software requirements are subject to change,
so multiple
iterations are needed!
www.vincenzocalabro.it
14
Ruolo dei prototipi
nei modelli evolutivi
Throw-away prototype (usa e getta,
quick&dirty): orientato a determinare i requisiti
di aspetti meno chiari del software da
sviluppare
Evolutionary prototype: orientato a realizzare i
requisiti più chiari e stabili; anche in questo
caso di può parlare di modello incrementale
15
www.vincenzocalabro.it
Modelli evolutivi: The Spiral
planning
estimation
scheduling
risk analysis
communication
modeling
analysis
design
start
deployment
delivery
feedback
construction
code
test
Risks are the primary driver for iterations!
www.vincenzocalabro.it
16
Una versione più
dettagliata di Spiral
Deter mine objecti ves,
alternatives and
constr aints
Evaluate alternatives,
identify, resolve risks
Risk
analysis
Risk
analysis
Risk
analysis
REVIEW
Requirements plan
Life-cycle plan
Plan next phase
Operational
protoype
Prototype 3
Prototype 2
Risk
analysis Prototype 1
Simulations, models, benchmar ks
Concept of
Oper ation
S/W
requirements
Development
plan
Requirement
validation
Integration
and test plan
Design
V&V
Acceptance
test
Service
www.vincenzocalabro.it
Product
design
Detailed
design
Code
Unit test
Integration
test
Develop , verify
next-level product
17
Modelli evolutivi: Concorrente
none
M o d e lin g a c t iv it y
r ep r es ent s t he s t at e
o f a s o f t w ar e eng ineer ing
ac t iv it y o r t as k
Under
d e v e lo p m e n t
A w a it in g
changes
U n d e r r e v ie w
Under
r e v is io n
B a s e lin e d
Done
18
www.vincenzocalabro.it
Altri modelli di processo
Component based development (CBSE)—il riuso di
COTS e di altre componenti disponibili è l’obiettivo
principale; l’integrazione e l’interoperabilità, oltre al
riuso, costituiscono le principali strategie
Formal methods—la specifica dei requisiti e la specifica
del software e delle sue architetture sono basate su
linguaggi formali, le trasformazioni e i raffinamenti
costituiscono le principali strategie
AOSD—suddivide il sofware da sviluppare in Aspetti
per ciascuno dei quali si portano avanti la specifica dei
requisiti e la successiva specifica del software
Unified Process—a “use-case driven, architecturecentric, iterative and incremental” allineato con l’uso
dello Unified Modeling Language (UML)
19
www.vincenzocalabro.it
UP e Modelli Evolutivi
Elab o r at io n
Incep t io n
inception
inception
co nst r uct io n
Release
t r ansit io n
soft ware increment
20
p r o d uct io n
www.vincenzocalabro.it
Fasi in UP e attività generiche
UP Phases
Inception
Elaboration
Construction
Transition
Production
Workflows
Communication
Analysis
Design
Implementation
Test
Support
Iterations
#1
#2
#n-1
#n
21
www.vincenzocalabro.it
Grazie per l’attenzione
www.vincenzocalabro.it