Quality gate - dmi.unict.itnicolosi/LezioniPS200809/Lezione13.pdf · Quality gate • Nei punti...

24
Quality gate Nei punti chiave del processo di sviluppo del software, viene integrato un insieme di quality gate per monitorare la qualità del prodotto intermedio prima che quest’ultimo possa passare al prossimo passo di sviluppo Sono revisioni formali che hanno l’obiettivo di fornire un mezzo per valutare il processo usato per sviluppare il software, la conformità del prodotto software alle esigenze del cliente e alle caratteristiche tecniche attese

Transcript of Quality gate - dmi.unict.itnicolosi/LezioniPS200809/Lezione13.pdf · Quality gate • Nei punti...

Quality gate• Nei punti chiave del processo di sviluppo del software,

viene integrato un insieme di quality gate per monitorare la qualità del prodotto intermedio prima che quest’ultimo possa passare al prossimo passo di sviluppo

• Sono revisioni formali che hanno l’obiettivo di fornire un mezzo per valutare il processo usato per sviluppare il software, la conformità del prodotto software alle esigenze del cliente e alle caratteristiche tecniche attese

Quality gate • Sono eventi programmati regolarmente e

condotti seguendo una procedura standard

• Va/non va:– La revisione non viene tenuta se non si

verificano certi eventi– Il processo di sviluppo software riprende solo

dopo che tutto il lavoro passato in revisione èstato completato e approvato dai revisori

Processo per la garanzia della qualità software 1

Il processo SQA comincia facendo una revisione in profondità sul processo di sviluppo del software

CHECKLIST 1. La portata del software è definita in maniera chiara?2. La terminologia è ben definita?3. Le risorse sono ragionevoli? Sono disponibili?4. L’analisi dei rischi è stata fatta? E il piano contenimento e/o prevenzione?5. I compiti sono stati definiti, programmati e allocati?6. Le stime di costo e programmazione sono ragionevoli (si correlano con i

dati storici)?7. E’ stato applicato uno standard nella stesura della documentazione?8. Come sarà controllato il piano del progetto?9. E’ necessario un ambiente per lo sviluppo del software? 10. Come è stata condotta la revisione?

Checklist per i requisiti software1. Tutte le funzioni sono state definite, descritte, vincolate in maniera

non ambigua?2. Per ogni requisito funzionale è stato introdotto anche un requisito

di performance, e il requisito funzionale è testabile?3. Gli input e gli output sono stati tutti definiti in termini di range,

protocolli,.. in modo che il designer del software possa essere soddisfatto?

4. E’ stato fatto un piano di test e di integrazione? I criteri di accettazione dei test sono stati già negoziati con il cliente?

5. Lo studio di fattibilità è completo?6. L’analisi dei rischi è stata iniziata/completata?7. Sono stati applicati degli standard alla documentazione?

Checklist per la specifica architetturale

1. Ci sono ancora dei requisiti aperti? Se sì, si progetta di chiuderli? 2. Il partizionamento è completo e documentato?3. Tutte le interfacce hardware e software interne ed esterne sono state

definite adeguatamente in termini di protocolli, range ecc..?4. Il modello dei dati è stato completamente e accuratamente definito?5. I requisiti software di basso livello sono tracciati nei requisiti software di

alto livello in maniera completa ed accurata?6. Possono essere soddisfatti i requisiti non funzionali?7. Il partizionamento soddisfa i criteri di modularità?8. Sono state definite le interfacce fra i moduli?9. Il design della struttura dati è consistente con i requisiti dei dati?10. Manutenibilità e flessibilità sono attributi di qualità considerati nel design?11. Quali attributi di qualità sono applicati?12. Gli standard di documentazione sono stati raggiunti?13. Sono stati applicati degli standard nella pseudocodifica? Se sì, come sono

stati applicati?

Checklist per la specifica di dettaglio

1. Sono stati tenuti in considerazione tutti i requisiti?2. La specifica dettagliata è consistente con la

precedente?3. Lo pseudocodice o i diagrammi sono stati

correttamente trasformati in codice? Hanno soddisfatto gli standard richiesti?

4. Sono stati soddisfatti gli standard per la documentazione?

5. I commenti soddisfano degli standard? 6. I tipi di dati e la dichiarazione dei dati è corretta?7. I dati sono corretti?8. Sono stati tenuti in conto gli attributi di qualità?

Checklist del testing1. I criteri di accettazione dei test sono stati definiti, negoziati ed accettati? Le

revisioni sono state fatte come richiesto?2. I piani di test sono stati preparati e revisionati?3. L’attività di testing è stata presa in considerazione in altre fasi di sviluppo?4. Gli ambienti di test (strumenti e risorse) sono definiti in maniera adeguata e

disponibili quando necessario?5. La tracciabilità fra requisiti e test di conferma è stata completata e corretta?6. Le funzioni principali sono confermate presto nella fase di testing?7. Sono stati definiti degli standard per condurre i test? I tester sono stati

sottoposti a training?8. Sono stati definiti test limite e test di stress?9. Il testing è fatto in maniera completa?10.La gestione degli errori e delle eccezioni è stata testata?

Checklist per la valutazione della revisione

1. Il materiale è completo?2. Il materiale è stato distribuito in tempo?3. Gli standard applicabili sono disponibili?4. I partecipanti erano preparati a contribuire?5. La valutazione è iniziata in tempo?6. La revisione è stata condotta attraverso protocolli

standard?7. E’ stato identificato un certo numero di difetti?8. Sono stati riportati gli attributi di qualità?9. Si e’ cominciato a tracciare i difetti?

Misura del processo

• L’efficacia di un processo di sviluppo software si misuraindirettamente– A partire dalle informazioni derivate dal processo si ricava una

famiglia di metriche– Tali informazioni comprendono

• La misura degli errori scoperti prima della distribuzione del software• I difetti comunicati dagli utenti finali• I prodotti distribuiti (produttività)• Il lavoro speso• Il tempo impiegato• Il grado di conformità alle scadenze prefissate• …

CMM

Il Capability Maturity Model (CMM) è il più famoso ed utilizzato modello divalutazione e miglioramento - Software Engineering Istitute (SEI) Pittsburg – USA.

Un processo è caratterizzato da 3 attributi fondamentali:capability: è l’insieme dei risultati che un processo consente di conseguire;esprime le potenzialità del processo e permette di effettuare stime attendibili sullapossibilità di raggiungere i risultati di un progetto, sia per il committente che per ilproduttore;performance: è una misura dei risultati effettivi ottenuti nell’applicazione delprocesso;una valutazione a consuntivo dei risultati che sono stati raggiunti;maturity: è una misura dell’efficacia del processo e della estensione eprecisione con cui le fasi e le attività dello stesso sono esplicitamente definite,gestite, misurate e controllate;è una valutazione del livello di padronanza e controllo del processo da partedell’organizzazione, ivi inclusa la capacità dell’organizzazione di migliorarlo,ottimizzarlo,… o comunque modificarlo in risposta a necessità che si presentano.

CMMI

CMM

CMMI

CMMI

CMMI

CMMI

CMMI

CMMIOrganizational Innovation and DeploymentCausal Analysis and Resolution5 Optimizing

4 Quantitatively Managed

3 Defined

2 Managed

Continuous process improvement

Quantitativemanagement

Processstandardization

Basicprojectmanagement

Organizational Process PerformanceQuantitative Project Management

Requirements DevelopmentTechnical SolutionProduct IntegrationVerificationValidationOrganizational Process FocusOrganizational Process DefinitionOrganizational Training Integrated Project ManagementIntegrated Supplier ManagementRisk ManagementDecision Analysis and ResolutionOrganizational Environment for IntegrationIntegrated TeamingRequirements Management Project PlanningProject Monitoring and ControlSupplier Agreement ManagementMeasurement and AnalysisProcess and Product Quality AssuranceConfiguration Management

1 Performed

Process AreasLevel Focus

(IPPD)(IPPD)

(SS)

CMMI

CMMI

CMMI

CMMI

CMMI

CMMI