Processi di Sviluppo Flashcards
In che modo si può modellare un processo SW?
Basato su un aspetto specifico:
- workflow
- data flow
- role-action
Modelli generici:
- waterfall
- iterative developement
- CBSE (Component Based Software Enginering)
Quali sono le fasi del modello a cascata?
- Studio di fattibilità
- Analisi dei requisiti
- Design
- Sviluppo
- Testing
- Distribuzione
- Mantenimento
In quale momento il cliente può fornire un feedback al sistema nel modello a cascata?
Durante la fase di operatività e manutenzione
Perché il modello a cascata è obsoleto?
Perché i requisiti di un sistema evolvono sempre durante il corso del progetto e questo modello permette di rilasciare un feedback solo durante la fase di operatività e manutenzione
In cosa consiste la consegna incrementale?
- Invece di rilasciare tutto in unico blocco, vengono rilasciate diverse versioni, ognuna con funzionalità aggiuntive rispetto alla precedente (diversi incrementi)
- I requisiti vengono sviluppati in ordine di priorità, così che le funzioni principali vengano rilasciate durante i primi incrementi
- I requisiti durante un incremento vengono congelati mentre invece possono evolversi per gli incrementi successivi
Quali sono le fasi della consegna incrementale?
- Definizione sommaria dei requisiti
- Assegnazione dei requisiti agli incrementi
- Progettazione architettura di sistema
- Sviluppo degli incrementi di sistema
- Convalida dell’incremento
- Integrazione dell’incremento
- Validazione del sistema => Sistema finale
- Tornare a pt. 4
Quali sono i vantaggi della consegna incrementale?
- Funzioni utili per il cliente possono essere rilasciate ad ogni incremento, quindi alcune funzionalità di sistema sono disponibili sin dai primi incrementi
- I primi incrementi rappresentano dei PROTOTIPI che supportano la SCOPERTA dei requisiti per i successivi incrementi
- I rischi di fallimento si abbassano
- I servizi a priorità più alta tendono ad essere collaudati più spesso (quindi più a fondo)
Su cosa si basa lo sviluppo evoluzionistico?
Sviluppo i requisiti più chiari del sistema così da creare un prototipo da fornire al cliente, ciò aiuta nell’individuazione di nuovi requisiti
Quali sono le fasi dell’ingegneria del SW basata su componenti?
- Specifica dei requisiti
- Analisi dei componenti
- Modifica dei requisiti
- Progettazione del sistema con riutilizzo
- Sviluppo e integrazione
- Convalida del sistema
Quali sono le 4 fasi del modello a spirale? (partendo dal secondo quadrante)
- Determinare obiettivi, alternative e vincoli
- Valutare alternative e rischi
- Sviluppare e testare
- Pianificare
Cosa sono i metodi Agili?
Sono metodi di sviluppo SW basati sulla consegna incrementale che prevedono iterazioni brevi e timeboxed
Cosa significa RUP?
Rational Unified Process
Cos’è UP?
E’ un processo iterativo e incrementale che usa la notazione UML
Vantaggi del RUP?
Grazie al fatto che si fanno “passi piccoli”, il FEEDBACK del cliente è RAPIDO e quindi c’è grande possibilità di ADATTAMENTO
Durante un iterazione del modello UP che fasi ci sono?
- Analisi dei requisiti
- Progettazione
- Implementazione, test, interazione e ulteriore progettazione
- Integrazione finale e test di sistema
Fasi di un intero UP?
- Avviamento: vengono stabiliti gli obiettivi, le stime dei costi, dei tempi e viene fatta la analisi di fattibilità
- Elaborazione: vengono raccolti i requisiti in modo più dettagliato, si stabilisce l’architettura di base e vengono analizzati i rischi principali
- Costruzione: questa fase consiste in molte iterazioni che permettono di costruire una parte del sistema che soddisfa un sottoinsieme di requisiti
- Transizione: vengono affrontati tutti gli aspetti legati al fine-tuning delle funzionalità, prestazioni, qualità, beta-testing e formazione degli utenti
Quali sono i vantaggi dello sviluppo iterativo?
- Minore probabilità di fallimento del progetto
- Riduzione precoce dei rischi
- Progresso visibile
- Feedback precoce
- Coinvolgimento dell’utente
- “Abbracciare il cambiamento”
Conseguenze del RUP?
- Vengono creati modelli anche per comprendere e comunicare, non solo per documentare
- Si esplorano rapidamente le alternative progettuali
- I modelli statici e dinamici vengono creati in parallelo
- L’utente è continuamente impegnato a dare feedback
Caratteristiche principali del RUP?
- Iterativo e incrementale
- Enfasi sul modello piuttosto che sul linguaggio naturale
- Centrato su architettura
Quali sono i principi del processo Scrum?
E’ un processo iterativo basato sul controllo dello stato di avanzamento, i principi essenziali sono:
- Visibilità: gli aspetti significativi del processo di sviluppo devono essere visibili a tutti
- Ispezione: poter ispezionare frequentemente il lavoro prodotto per controllare che si sta procedendo verso gli obiettivi posti
- Adattamento: se si sta deviando dagli obiettivi, occorre un adattamento per minimizzare altre deviazioni
Quali sono i ruoli nello Scrum?
- Product Owner: si occupa della definizione delle caratteristiche del progetto da sviluppare e gestisce il Product Backlog
- Team: dedicato allo sviluppo e al rilascio del prodotto attraverso incrementi successivi
- ScrumMaster: controlla che lo SCRUM venga applicato correttamente e supporta sia il team che il PO
Quali sono le fasi dello SCRUM?
- Inserire i requisiti nel product backlog
- Pianificazione dello sprint
- Produzione di uno sprint backlog
- Esecuzione giornaliera di un daily scrum durante tutto lo sprint
- Revisione dello sprint una volta concluso
- Tornare al pt. 2
Cos’è lo sprint nell’ambito SCRUM?
E’ una iterazione durante lo SCRUM che ha come obiettivo quello di portare a termine i requisiti prefissati nello sprint backlog
Cos’è un sistema?
Un sistema è una collezione significativa di componenti che lavorano insieme per realizzare un obiettivo comune
Quali categorie di sistemi ci sono?
Sistemi tecnico-informatici
- includono hardware e software
- non includono gli operatori e i processi operazionali
- il sistema non conosce lo scopo del suo utilizzo
Sistemi socio-tecnici
- includono uno o più sistemi tecnici, ma anche processi operazionali e operatori
- sono fortemente condizionati da politiche aziendali e regole
Caratteristiche dei sistemi socio-tecnici?
- Proprietà emergenti: volume, affidabilità, protezione, riparabilità, usabilità
possono essere misurate solo sul sistema finale - Non-determinismo
visto che il risultato dipende da operatori umani il risultato, partendo da un certo input, può essere diverso di volta in volta - Complesso legame tra i sistemi e gli obiettivi aziendali
Quali proprietà sono complicate da misurare?
Sicurezza e protezione, infatti queste si dicono di tipo “non deve accadere”
Cosa sono i sistemi socio-tecnici?
Sono sistemi pensati per raggiungere obiettivi aziendali o organizzativi, è necessario che tutti i componenti comprendano a fondo l’ambiente del sistema per essere efficiente
Di che tipo possono essere i sistemi critici?
Sistemi Safety-critical
(es. impianto di produzione chimica)
I fallimenti possono risultare in perdite di vite umani, infortuni o seri danni ambientali
Sistemi Mission-critical
(es. sistema di navigazione di un veicolo spaziale)
I fallimenti possono causare un fallimento di attività e obiettivi diretti
Sistemi Business-critical
(es. SW per la gestione dei clienti di una banca)
I fallimenti possono risultare in perdite di denaro sostenute
Che fallimenti può avere un sistema socio-tecnico?
- Fallimenti Hardware
- Fallimenti Software
- Errori Operativi
Da cosa dipende la fidatezza in un sistema?
- Disponibilità
- Affidabilità
- Sicurezza
- Protezione
In cosa consiste la disponibilità in un sistema?
E’ la capacità del sistema di fornire servizi quando richiesto
In cosa consiste la affidabilità in un sistema?
E’ la capacità del sistema di fornire servizi come specificato
In cosa consiste la sicurezza in un sistema?
E’ la capacità del sistema di lavorare senza rischiare fallimenti catastrofici
In cosa consiste la protezione in un sistema?
E’ la capacità del sistema di proteggersi contro intrusioni accidentali o volontarie
Oltre alle proprietà che conferiscono fidatezza, quale altre esistono?
- Riparabilità
- Mantenibilità
- Sopravvivenza
- Tolleranza dell’ errore
Cosa sono i sistemi critici?
Un sistema critico è un generico sistema che, in caso di fallimento nel suo funzionamento, può provocare danni non considerati accettabili
Da cosa dipendono le economie di fidatezza?
Siccome il costo dei fallimenti potrebbe essere nettamente superiore ai costi di fidatezza, a volte è conveniente spendere di più pur di rendere il sistema più fidato.
In genere, per un normale sistema di business, basta una fidatezza moderata