La Qualità del Software: modelli e tecniche per la valutazione
by user
Comments
Transcript
La Qualità del Software: modelli e tecniche per la valutazione
La Qualità del Software: modelli e tecniche per la valutazione - parte I Giuseppe Lami I.S.T.I. – C.N.R., Pisa [email protected] Firenze, 25 Ottobre 2005 Scaletta La qualità e il software software quality e quality software il processo software la valutazione del processo software l’approccio SPICE L’approccio CMM Firenze, 25 Ottobre 2005 1 Qualità: definizione Quality: the totality of characteristics of an entity that bear on its ability to satisfy stated and implied needs [ISO 8402] Fitness for purpose Conformance to Specification Degree of excellence Firenze, 25 Ottobre 2005 Qualità del Software E’ un concetto complesso e multiforme con 5 diversi punti di vista punto punto punto punto punto di di di di di vista vista vista vista vista Trascendentale dell’Utente del Costruttore del Prodotto basato sul Valore Firenze, 25 Ottobre 2005 2 Qualità del Software Punto di vista Trascendentale: Punto di vista dell’Utente: non è definibile ma ciascuno la può riconoscere quando la vede non è decomponibile ma è una proprietà complessiva non è possibile misurare niente secondo questo punto di vista il grado con cui il SW package soddisfa le esigenze dell’utente basato su che cosa si deve fare chiamata anche quality in use (ISO9126) misurata in base a profili operazionali Firenze, 25 Ottobre 2005 Qualità del Software Punto di vista del Costruttore: Punto di vista del Prodotto: il grado con cui il SW package la qualità deriva da soddisfa i requisiti formali proprietà inerenti il prodotto SW (affidabilità, prevalente nel SW testing portabilità, testabilità,..) qualità definita in termini di la qualità è misurata numero di difetti e costi di indirettamente attraverso il correzione calcolo di metriche che si chiamata anche external assume misurino le quality (ISO9126) proprietà sopra moltissimi cattivi SW fanno esattamente ciò che si prevede chiamata anche internal quality (ISO9126) che facciano Firenze, 25 Ottobre 2005 3 Qualità del Software Punto di vista basato sul Valore: qualità definita in termini di compromesso fra benefici e costi punto di vista usato spesso da chi acquisisce SW: quanto fa per me e quanto devo investirci? Firenze, 25 Ottobre 2005 Qualità del software: definizione E’ soprattutto il contesto di uso di un prodotto software che determina le criticità che esso ha e le proprietà che ci si aspetta esso abbia criticità proprietà richieste esempi di applicazioni Critico per la sicurezza nazionale affidabilità e sicurezza (security) Sistemi militari di difesa Critico per la vita umana correttezza, sicurezza (safety) sistemi medicali, sistemi di controllo di mezzi di trasporto Critico per l’ambiente sociale affidabilità, sicurezza (security) sistemi bancari, sistemi di controllo e gestione delle linee telefoniche Critico per l’azienda efficacia, efficienza, manutenibilità sistemi di produzione, database dei clienti critico per la salute dell’utente usabilità, attrattività sistemi interattivi, giochi elettronici Qualità = a1Q1 + a2Q2+ … anQn Qi = obiettiva misura della qualità della proprietà i ai = peso relativo al contesto Firenze, 25 Ottobre 2005 4 Qualità del Software Qualità del prodotto software Qualità del processo software QUALITY SOFTWARE SOFTWARE QUALITY Firenze, 25 Ottobre 2005 Qualità del Software Valutazione del prodotto SW: PRO: ciò che si compra/vende è il prodotto CONTRO ex-post Valutazione del Processo SW PRO: ex-ante non riferibile ad un singolo prodotto CONTRO quale garanzia sul prodotto se il processo è buono? Firenze, 25 Ottobre 2005 5 Software Quality A livello più alto software quality è un “body of knowledge” che descrive: Che cosa deve essere fatto, e Come deve essere fatto. Il campo del software quality incorpora una specifica e una implementazione di un processo per realizzare quality software (product). Firenze, 25 Ottobre 2005 Software Quality: idee chiave Processo è generalmente accettato che il processo impiegato nello sviluppo di un prodotto è determinante (quanto?) per la qualità del prodotto Principio Costruttivo la qualità deve essere construita nel prodotto dall’inizio. Non può essere inserita dopo Le Persone innanzi tutto sono le persone che determinano l’ottenimento di un quality product Firenze, 25 Ottobre 2005 6 Il Processo Software software process: the process or set of processes used by an organization or project to plan, manage, execute, monitor, control and improve its software related activities [ISO 15504] process a set of interrelated activities, which transform inputs into outputs [ISO 12207] Firenze, 25 Ottobre 2005 Software Quality Management Quality SW SQM SW Quality Goal 1: Le attività di gestione della qualità del software del progetto sono pianificate. Goal 2: Obiettivi misurabili per la qualità del prodotto software sono definiti insieme alle loro priorità. Goal 3: I progressi effettivi verso l’ottenimento degli obiettivi di qualità per i prodotti software sono quantificati e gestiti. Firenze, 25 Ottobre 2005 7 Software Quality Management Quality Assurance: Attività volte a individuare, documentare, analizzare e correggere difetti di processo e a gestire le modifiche al processo stesso Quality Control Attività volte a individuare, documentare, analizzare e correggere difetti di prodotto e a gestire le modifiche al prodotto stesso Firenze, 25 Ottobre 2005 Software Quality System Definizione: “The organizational structure, responsibilities, procedures, processes and resources for implementing software quality SQM SQS Quality SW SW Quality management” [ISO 9001] Firenze, 25 Ottobre 2005 8 Software Quality:Obiettivi Gli obiettivi del software quality management e del software quality system sono: costruire la qualità dall’inizio mantenere la qualità del software attraverso il Software Development Lifecycle Firenze, 25 Ottobre 2005 I nemici della Qualità del Software Fede nelle nuove tecnologie, metodi etc. visti come una panacea (the Quick Fix) La qualità è proporzionale allo sforzo fatto perottenere la qualità Carenza di impegno verso la qualità a tutti i liveli dell’organizzazione sistemi qualità e standard prodotti e ignorati cultura approccio alla produzione guidato della deadline Incapacità di identificare e gestire i rischi per la qualità Firenze, 25 Ottobre 2005 9 …. ma la situazione è davvero così tragica? Some facts and statistics: US companies and government agencies spent $81 billion for cancelled software projects in 1995. 31.1% projects - cancelled before completed 52.7% projects - cost 189% of original estimates 9.0% projects - in on time within budget On average, over 50% of effort of producing software goes into testing. Over 50% of the costs associated with software are incurred after delivery Software failure can be extremely costly (eg. Ariane 5) and even life threatening Firenze, 25 Ottobre 2005 Perchè valutare il Processo Software? Negli ultimi anni si è consolidata l’idea che concentrarsi sul processo di sviluppo software sia il modo migliore per migliorare la qualità del prodotto finale Le tecnologie e la capacità dei singoli sono distribuite in modo omogeneo: ciò che fa la differenza è COME si costruisce il software Firenze, 25 Ottobre 2005 10 L’approccio SPICE alla valutazione del processo SW Il processo di sviluppo SW visto come composto da diversi processi Ogni processo è valutato in termini di capability attraverso attributi ai quali viene assegnato un punteggio process capability: the ability of a process to achieve a required goal (ISO/IEC 155904-9) Il punteggio di ciascun attributo è stabilito andando ad osservare e valutare le pratiche Le pratiche vengono valutate sulla base dei documenti di lavoro (WP) Firenze, 25 Ottobre 2005 Origini del ISO/IEC 15504 STD (Scottish Development Agency) CMM (SEI) TRILLIUM (Bell/BNR/NT) SQPA (HP) SAM (BT) ISO 9001 ISO 12207 (ISO) HealthCheck (BT) BootStrap (Bootstrap Institute) Firenze, 25 Ottobre 2005 11 Campo di Applicazione ISO/IEC 15504 fornisce un approccio strutturato per l ’assessment di processi software per le seguenti finalità: da o per conto di un’organizzazione con lo scopo di comprendere lo stato dei propri processi per migliorarli; da o per conto di un’organizzazione con lo scopo di determinare quanto i propri processi sono adatti per particolari requisiti o classi di requisiti; da o per conto di un’organizzazione con lo scopo di determinare quanto i processi di un ’altra organizzazione sono adatti per un particolare contratto o classi di contratti. Firenze, 25 Ottobre 2005 Software Process Assessment Process Is examined by Identifies changes to Identifies capability and risks of Process Assessment leads to Process Improvement leads to motivates Capability Determination Firenze, 25 Ottobre 2005 12 Finalità del modello di riferimento “...to provide a common basis for different models and methods for software process assessment, ensuring that results of assessments can be reported in a common context…” Firenze, 25 Ottobre 2005 Architettura del modello di riferimento Capability Il modello di riferimento è bidimensionale Process dimension (strettamente legato a ISO/IEC 12207) Contiene processi in gruppi Capability dimension Permette di misurare indipendentemente la capability di ogni processo Firenze, 25 Ottobre 2005 Processes 13 P r i m a r y l i fe c y c l e p r o c e sse s A c q u is it io n C U S .2 S u p p ly S U P. 1 D o c u m e n t a t io n S U P. 2 C o n f ig u r a t io n m a n a g e m e n t S U P. 3 Q u a lit y a s s u r a n c e S U P. 4 V e r if ic a t io n S U P. 5 V a lid a t io n S U P. 6 J o in t r e v ie w S U P. 7 A u d it S U P. 8 P r o b le m r e s o lu t io n A c q u is it io n p r e p a r a t io n S u p p lie r s e le c t i o n S u p p lie r m o n it o r in g C U S .4 O p e r a t io n C u s tom er ac c e ptan c e O p e ra t io n a l u s e C u s to m e r s u p p o rt C U S .3 R e q u ir e m e n t s e lic it a t io n EN G .1 D e v e lo p m e n t S y s t e m r e q u ir e m e n t s a n a l y s is a n d d e s ig n S o f t wa r e c o n s t r u c t io n S o f t wa r e r e q u ir e m e n t s a n a l y s is S o f t wa r e t e s t in g S o f t wa r e in t e g r a t io n S y s t e m in t e g r a t io n a n d t e s t in g S o f t wa r e d e s ig n ENG .2 S y s t e m a n d s o f t w a r e m a in t e n a n c e O r g a n i z a t i o n a l l i fe c y c l e p r o c e ss e s M A N .1 Management M A N .2 P r o je c t m a n a g e m e n t M A N .3 Q u a lit y m a n a g e m e n t M A N .4 R is k m a n a g e m e n t O R G .1 O R G .2 O r g a n iz a t io n a l a lig n m e n t Im p r o v e m e n t P r o c e s s e s t a b l is h m e n t P roc es s as s es s m e nt P r o c e s s im p ro v e m e n t O R G .3 Hum an res ourc e m an age men t O R G .4 In f r a s t r u c t u r e O R G .5 Mea s ureme nt O R G .6 Re u s e ISO/IEC 15504 Process Dimension (conforme a ISO 12207) C U S .1 S u p p o r t i n g l i fe c y c l e p r o c e ss e s Firenze, 25 Ottobre 2005 Process capability Process of High Capability Process of Low Capability Planned outcome Probability Planned outcome Probability Process capability: Il range di risultati attesi che possono essere ottenuti seguendo un processo Outcome Outcome Firenze, 25 Ottobre 2005 14 Misurare la process capability (1) La process capability misurata per mezzo dei process attributes. Gli Attributes misurano un particolare aspetto della process capability. Firenze, 25 Ottobre 2005 Measuring process capability (2) The process attributes are: Process improvement Process change Process measurement Process control Process resource Process definition Work product management Performance management Process performance Increasing capability Firenze, 25 Ottobre 2005 15 Attribute rating Each attribute is rated is against the following rating scale. There is little or no evidence of achievement of the defined attribute Sound systematic approach to and achievement of the defined attribute. Some aspects of achievement may be unpredictable. Not Partially 0 15 16 Complete and systematic approach to and full achievement of the defined attribute. No significant weaknesses exist. Sound systematic approach to and significant achievement of the defined attribute. Performance of the process may vary in some areas. Largely 50 51 Fully 85 86 100 Firenze, 25 Ottobre 2005 Process profile La capability di ogni processo è caratterizzata dal rating di nove attributi chiamato process profile: Continuous change Process improvement Not achieved Not achieved 10% 0% Process measurement Process control Partially achieved Partially achieved 20% 30% Process definition Process resource Largely achieved Fully achieved 60% 90% Performance management Work product management Fully achieved Largely achieved 90% 80% Process performance Fully achieved 100% Firenze, 25 Ottobre 2005 16 Capability levels Continuous improvement Process change Optimising Predictable Established Managed Process control Process measurement Process definition Process resource Performance management Work product management Performed Process performance Incomplete Firenze, 25 Ottobre 2005 Capability dimension capability levels Si può calcolare il capability level del processo dal process profile: 4 1 F/L F F F 5 2 F/L F/L F F/L F F F F 3 F/L F F Firenze, 25 Ottobre 2005 17 PA .4.2 P N N N N PA .4.1 P N L N N PA .3.2 L P L P P PA .3.1 L P L L P PA .2.2 F L F L L PA .2.1 F L F L P PA .1.1 F F F F L ENG.1.2 ENG.1.3 ENG.1.4 ENG.1.5 Un tipico output di un assessment potrebbe assomigliare a questo: Un rating per ogni attributo per i processi Un rating del capability level per ogni processo. ENG.1.1 Typical assessment output Firenze, 25 Ottobre 2005 Come si conduce un Assessment SPICE The ESCAPE (Electronics Software CAPability Evaluation) Project Firenze, 25 Ottobre 2005 18 Assessment Preparation Planning the Assessment OnOn-site visit Time/Cost constraints Technical constraints Assessment risk identification Defining the Assessment Purpose Capability Determination [Process Improvement] Defining the Assessment Scope Requirements elicitation process (CUS.3) System requirements analysis and design process (ENG.1.1) Software design process (ENG.1.3) System integration and testing process (ENG.1.7) Project management process (MAN.2) Firenze, 25 Ottobre 2005 Project implementation pre-assessment activities Introductory meeting To introduce the SPICE (ISO15504) approach To review the assessment purpose, scope and constraints To introduce the assessment activities and the provisional assessment plan PrePre-assessment questionnaire To gather preliminary information on the projects to be used as process instances • sw life cycle • sw life cycle • sw • sw requirements requirements • test reports • test reports • test plan • test plan • quality • quality requirements requirements Firenze, 25 Ottobre 2005 19 Project implementation on-site activities Briefing Assessment purpose, scope, constraints and model Confidentiality policy Assessment schedule Data Acquisition & Validation Presentations Document analysis Checklist-based Interviews Process rating (provisional)) Debriefing } Firenze, 25 Ottobre 2005 The Rating Dilemma Different rating methods can be applied ranging from the mere processing of measured indicators up to the unaided assessor’s judgement Need to establish the requirements to be satisfied for a rating method to be valid Trade-off: assessor’s judgement driven by checklists Firenze, 25 Ottobre 2005 20 Project implementation post-assessment activities Process rating (final) For each process assessed, assign a rating to each process attribute Record the set of process attribute ratings as the process profile and calculate the capability level rating Reporting the results Prepare the assessment report Present the assessment results Finalize and distribute the assessment report Firenze, 25 Ottobre 2005 Project results CUS3: Requirements Elicitation Process ENG1.1: System Requirement Analysis and Design Process 4 capability level capability level 4 3 2 1 0 3 2 1 0 P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P1 P2 P3 P4 Project P7 P8 P9 P10 ENG1.7: System Integration and Testing Process ENG1.3: Software Design Process 4 capability level 3 2 1 3 2 1 0 0 P1 P2 P3 P4 P5 P6 P7 P8 P9 P1 P10 P2 P3 P4 P5 P6 P7 P8 P9 P10 Project Project Synthetic Results MAN2: Project Management Process 4 4 capability level capability level P6 Project 4 capability level P5 3 2 1 0 3 mean value 2 median 1 0 P1 P2 P3 P4 P5 P6 Project P7 P8 P9 P10 CUS.3 ENG.1.1 ENG.1.3 ENG.1.7 MAN.2 process 21 Capability Maturity Model - CMM The CMM for SW (CMM) is a framework that describes the key elements of an effective SW process. The CMM describes an evolutionary improvement path from an ad-hoc , immature process to a mature, disciplined process. The CMM covers practices for planning, engineering, and managing SW development and maintenance. When followed, these key practices improve the ability of organizations to meet goals for cost, schedule, functionality, and product quality. The CMM can be also used by an organization to plan improvements to its SW process Firenze, 25 Ottobre 2005 CMM Continuously improving Predictable Standard, consistent Disciplined Optimising (5) Managed (4) Defined (3) Repeatable (2) Initial (1) Firenze, 25 Ottobre 2005 22 CMM Lev. 1 - Initial: ad hoc chaotic absence of defined processes success depending on individual effort Lev. 2 - Repeatable: established process cost, time, schedules, and functionalities management repeatability on projects with similar application Firenze, 25 Ottobre 2005 CMM Lev. 3 - Defined: processes are documented, stadardizated and integrated all the projects use an approved version of the development and maintenance process Lev. 4 - Managed: collection of measurement of the product quality collection of measurement of the process quality product and process control and management by means of quantitative techniques Firenze, 25 Ottobre 2005 23 CMM Lev. 5 - Optimizing: continuous improvement of the processes based on quantitative feedback and on new ideas and technologies inserted within the organization Firenze, 25 Ottobre 2005 CMM - the Framework Ciascun livello di capability è composto da Key Process Areas (KPA), cioè gruppi di attività che, se eseguite, permettono di soddisfare l’obiettivo relativo al livello di maturità. Ogni KPA è strutturata in Common Features (CF), cioè attributi che indicano se l’implementazione e l’istituzionalizzazione delle attività è efficace, ripetibile e durevole Ogni CF raggruppa le Key Practices, che rappresentano “che cosa” deve essere fatto. Firenze, 25 Ottobre 2005 24 CMM Firenze, 25 Ottobre 2005 CMM KPAs by Maturity Level Firenze, 25 Ottobre 2005 25 CMM - Common Features Commitment to Perform (CTP): descrive le azioni da intraprendere per assicurare stabilità nel tempo ai processi e riguarda in genere politiche organizzative e la sponsorship del management Ability to Perform (ATP): descrive i presupposti di progetto ed organizzativi necessari per implementare in maniera corretta un processo sw e coinvolge in genere le strutture organizzative, le risorse e il training Activities Performed (AP): descrive i ruoli e le procedure necessarie per implementare una KPA e riguarda normalmente piani e procedure, l’esecuzione e monitoraggio del lavoro e la presa di azioni correttive laddove necessario Measurement and Analysis (MA):descrive la necessità di misurare il processo ed analizzare i risultati, e proporre in genere esempi di misurazioni pertinenti Verifying Implementation (VI): descrive i passi necessari ad assicurare un’esecuzione delle attività in linea con il processo, attraverso reviews, audit del mangement e una SQA (sw quality assurance) Firenze, 25 Ottobre 2005 CMM Common Features Number of related Key Practices KPA LEVEL 2 RM SPP SPPO SSM SQA SCM LEVEL 3 OPF OPD TP ISM SPE IC PR LEVEL 4 QPM SQM LEVEL 5 DP TCM PCM CTP ATP AP MA VI 1 2 2 2 1 1 4 4 5 3 4 5 3 15 13 13 8 10 1 1 1 1 1 1 3 3 3 3 3 4 3 1 1 1 1 1 1 4 2 4 3 4 5 3 7 6 6 11 10 7 3 1 1 2 1 2 1 1 1 1 3 3 3 3 1 2 1 3 5 7 5 1 1 3 3 2 3 2 4 5 4 8 8 10 1 1 1 3 2 2 Firenze, 25 Ottobre 2005 26 CMM Firenze, 25 Ottobre 2005 SPICE vs. CMM Different scope: acquisition, provision and support activities are in the SPICE scope. SPICE has broader coverage. Different granularity in the evaluation of the Maturity Level (F, L, P, N). SPICE is a continuous model, CMM a staged one. Targeting process capability rather than organizational capability. Ready-to-elaborate / Ready-to-use Firenze, 25 Ottobre 2005 27 ISO 9000 - 3 ISO 9001: Quality Systems - ISO 9000-3 Model for Quality Assurance in Design Development, Production, Installation and Servicing Guidelines for the application of ISO9001 to the development, supply, installation and maintenance of software Firenze, 25 Ottobre 2005 SPICE vs. ISO 9000 = Confidence in a supplier's quality management =+ Providing acquirers with a framework for assessing whether potential suppliers have the capability to meet their needs. + Ability to evaluate process capability on a continuous scale in a comparable and repeatable way, rather than using the pass/fail characteristic of quality audits based on ISO 9001 + Adjust the scope of assessment to cover specific processes of interest, rather than all of the processes used by an organizational unit. Firenze, 25 Ottobre 2005 28