Please enable JavaScript.
Coggle requires JavaScript to display documents.
Ciclo di vita dei sistemi software (V-model (validation garanzia che un…
Ciclo di vita dei sistemi software
prodotto
artefatto costruito nel corso dello sviluppo
programma eseguibile
modello, documentazione, manuale, suite di test
processo
circa come si fanno le cose, più che le cose stesse
insieme organizzato di attività → portano alla creazione del prodotto
fasi, attività, regole di transizione
artefatti intermedi e loro relazioni
metodi, tecniche, strumenti
ruoli
Waterfall lifecycle
(1970)
primo modello di ciclo di vita dopo la crisi del software
per primo identifica attività specializzate, separando competenze e ruoli
si compone di:
studio di fattibilità
analisi e specifica dei requisiti
progettazione
sviluppo e test di unità
integrazione e test di sistema
deployment
manutenzione
separazione dei ruoli
consolidata attraverso artefatti intermedi...anche troppo!
milestones al passaggio tra le fasi
documento e modello dei requisiti
progetti di sistema e di dettaglio
codice, piano di test
manuali
V-model
validation
garanzia che un prodotto/sistema soddisfi le esigenze del cliente (e altre parti interessate identificate)
spesso implica accettazione e idoneità da parte di clienti esterno
verification
valutazione della conformità di un prodotto/sistema a requisiti, specifiche o condizioni imposte
è spesso un processo interno
riorganizzazione del modello waterfall a due dimensioni
verticale: sistema/componente
orizzontale: sviluppo/verifica
feedback tra livelli peer anziché successivi
left
: project definition
requisiti e creazione delle specifiche di sistema
center
: implementazione
right
: project test and integration
integrazione delle parti e validazione
standard federale tedesco
sistemi industriali
riformulazione in contesto software
studio di fattibilità → 9. operation & review
analisi dei requisiti → 8. accettazione
system design → 7. system testing
program design → 6.program testing
coding
MIL-STD-498
(1994)
#
standard militare con lo scopo di stabilire requisiti uniformi per sviluppo e documentazione del software
identifica 22 Data Item Descriptions che, in pratica, tracciano il ciclo di vita:
planning (3)
requirements (4)
SRS
IRS
design (4)
SSDD
SDD
qualification/test products (3)
STP
STD
STR
user manuals (4)
support manuals
software
Qualità del software
ISO/IEC 9126
qualità del software scomposta in 6 caratteristiche (e 27 sottocaratteristiche), con intento di completezza e indipendenza
functionality (5)
reliability (4)
usability (5)
efficiency (3)
maintainability (5)
portability (5)
requisiti di qualità
attributi del modo con cui sono offerte le funzioni
Modello a spirale o iterativo
(1988)
ogni iterazione percorre regioni di attività comuni
determina obiettivi
identifica e risolvi rischi
sviluppo e verifica
pianifica prossima fare
ci sono 6 invarianti
definire gli artefatti contemporaneamente
in ogni ciclo, eseguire quattro attività di base
il rischio determina
3.1 il livello di sforzo
3.2 il grado di dettaglio
usa anchor point milestones
concentrati sul sistema e sul suo ciclo di vita
risk driven
prototyping
interpretazione della spirale
costo e tempo di sviluppo
frequenza e ampiezza delle iterazioni
Iterative design
processo ciclico di prototyping → testing → analyzing → refining
in base all'output dell'ultima iterazione, si fanno modifiche
meglio fare modifiche all'inizio dello sviluppo, anche se è possibile farle anche dopo
Incremental build model
il prodotto è progrettato, implementato e testato incrementalmente fino al prodotto finito (che soddisfa ogni requisito)
il prodotto è scomposto in componenti, ognuna progettata e costruita separatamente (builds)
Modello iterativo incrementale
(1980)
Unified Process
(1999)
Caratteristiche
iterative and incremental
architecture-centric
risk-focused
Fasi del progetto e prodotti attesi
Architettura
Enterprise Integration Patterns
CART
Esempi di executable architecture
Considerazioni
l'idea di base è sviluppare un sistema
secondo cicli ripetuti (iterative)
in considerando porzioni piccole ogni volta
sovrapposizione di specifica e sviluppo
parallelizzazione di attività diverse relative a diversi incrementi
rilascio per incrementi successivi, ciascuno
in sequenza waterfall
operativo
cicli di (analisi → design → codifica → test)
vantaggi e limiti
definizione incrementale dei requisiti
utenti coinvolti per feedback e testing
consolidamento del testing sui primi incrementi
precedenza ai componenti più critici
difficoltà contrattuale
rivincita del team di sviluppo sul corporate management
ampiamente ripreso in XP e UP
Waterfall lifecycle
- discussione
#
merito storico di identificare attività specializzate
tuttora usato
piace al corporate management
semplifica attività di Contract e Management Views (IEEE 12207)
previsione di artefatti che documentano avanzamento dello sviluppo
non piace al development team
non rappresenta bisogni della Engineering View (IEEE 12207)
congelamento requisiti e scelte del progetto
innaturale completamento delle fasi
up-front
scarsamente flessibile rispetto alla evoluzione dei requisiti e alla comprensione incrementale del progetto
eXtreme Programming
(1999)
Conseguenze
evitare di prevedere
overdesign
funzionalità ad oggi inutili
chiusure strategiche
up-front
evitare la separazione dei ruoli
ogni programmatore combina
Coding
Testing
Listening
Design
riduzione della specializzazione dei compiti
comunicazione e feedback rapido da
utente
altri sviluppatori
tests
evitare la produzione di semilavorati non strettamente necessari
molto usati
use case diagrams
codice e tests
sostituito dalla vicinanza e la condivisione del lavoro
processo controllato attraverso pratiche più che documenti
Pratiche
on-site customer
planning game
small releases
40 hours week
open space
continuous integration
collective ownership
tests
metafora
simple desing
coding standards
pair programming
just rules
Applicabilità
problemi
rischio nella stima dei costi
richiede cooperazione dei committenti
contratto difficile
peopleware
limitate dimensioni del team
condizioni di migliore funzionamento
progetti
di breve durata
con requisiti instabili
processo agile, adatto al cambiamento
team sviluppo >>> corporate management
principi
rapida feedback
assume semplicity
incremental change
embracing change
quality work
valori
communication
simplicity
feedback
courage
XP vs UP