SlideShare une entreprise Scribd logo
1  sur  65
The Benchmark for Software Quality
www.uni-stuttgart.de




                       The Quamoco
                       Product Quality Modelling
                        and
                       Assessment Approach

                                                   Stefan Wagner
                                     Institute of Software Technology

                                                              ICSE 2012
                                                     Zürich, Switzerland
                                                             8 June 2012
"Quality is a complex and multi-faceted concept...
          it is also the source of great confusion."
                                     –David A. Garvin
Software Quality Models
                                                                              IEC 61508
                                               Siemens Technical
                                                     Topic
CMMI                                             Classification
                         COQUALMO                                           ISO 15504 -
                                                                               SPICE
          ISO 9126
                                      Maintainability Index
                     Musa basic                                     SAP Q-Index
Visser et al.
                                         Activity-Based
                Musa-Okumoto             Quality Models                     Littlewood-Verall
                                                                                 Bayesian
iDAVE                              Avizienis et al.
                    Marinescu &                           Boehm et al.            MISRA
                       Ratiu
   McCall &                              Dromey                 Common Criteria
   Walters
                            NHPP                                               ISO 15005
                                              SAP Quality
Capgemini sd&m                                 Standards           SQUID
Software-Blutbild         ISO 25000                                                 ROSQ
                                                                   Models
ISO 9126
                   Reliability

 Functionality                   Performance
                     Quality
                     model

 Maintainability                  Usability

                   Portability
Quality Models
                              in Practical Use
                 Percentages of answers, multiple answers possible


Company-specific 71


       ISO 9126 28


 Domain-specific 20


          None 4
                                                     Wagner et al., 2010
„The -ilities are good
for management talk only.“
                         –Anonymous developer




Wagner et al., ESEM'09
ISO 9126
                 ISO 25010
Quality
attribute



            Comment           Clone
              ratio          coverage
Measure           Cyclomatic
                  complexity
ISO 9126
                  ISO 25010
Quality
attribute



              ?
            Comment            Clone
              ratio           coverage
Measure            Cyclomatic
                   complexity
Quality attribute
       ISO 9126
      ISO 25010




Measure
 Comment           Clone
   ratio          coverage

        Cyclomatic
        complexity
Quality attribute            Multitude of models
       ISO 9126
      ISO 25010




Measure
 Comment           Clone
   ratio          coverage

        Cyclomatic
        complexity
Quality attribute            Multitude of models
       ISO 9126              Too abstract
      ISO 25010




Measure
 Comment           Clone
   ratio          coverage

        Cyclomatic
        complexity
Quality attribute            Multitude of models
       ISO 9126              Too abstract
      ISO 25010              Not operationalised




Measure
 Comment           Clone
   ratio          coverage

        Cyclomatic
        complexity
Quality attribute            Multitude of models
       ISO 9126              Too abstract
      ISO 25010              Not operationalised
                             Not adaptable



Measure
 Comment           Clone
   ratio          coverage

        Cyclomatic
        complexity
Quality attribute            Multitude of models
       ISO 9126              Too abstract
      ISO 25010              Not operationalised
                             Not adaptable
                             Unreproducible
                             assessments
Measure
 Comment           Clone
   ratio          coverage

        Cyclomatic
        complexity
Quality attribute            Multitude of models
       ISO 9126              Too abstract
      ISO 25010              Not operationalised
                             Not adaptable
                             Unreproducible
                             assessments
Measure
                             Differing definitions
 Comment           Clone
   ratio          coverage

        Cyclomatic
        complexity
Quality attribute            Multitude of models
       ISO 9126              Too abstract
      ISO 25010              Not operationalised
                             Not adaptable
                             Unreproducible
                             assessments
Measure
                             Differing definitions
 Comment           Clone
   ratio          coverage   Unclear relationship
                             to quality goals
        Cyclomatic
        complexity
1
Quality
 Model
ISO 9126
                  ISO 25010
Quality
attribute



              ?
            Comment            Clone
              ratio           coverage
Measure            Cyclomatic
                   complexity
ISO 9126
                 ISO 25010
Quality
attribute




            Comment           Clone
              ratio          coverage
Measure           Cyclomatic
                  complexity
ISO 9126
                 ISO 25010
Quality
attribute




            Comment           Clone
              ratio          coverage
Measure           Cyclomatic
                  complexity
ISO 9126
                 ISO 25010
Quality
attribute


Product
factor

            Comment           Clone
              ratio          coverage
Measure           Cyclomatic
                  complexity
Maintainability

  Analysability      Modifiability




Duplication of source code parts



              Clone
             coverage
Quality
attribute


Product
factor

Measure
Quality
attribute


Product
factor

Measure

Instrument
Maintainability
Quality
attribute       Analyzability



Product       Usefulness of
                method
factor

               Statically
Measure     unused method

Instrument     Gendarme:         PMD: Unused
             Avoid Uncalled     Private Method
              Private Code
Base Model

                  root




    C        object-oriented   GUI




   C++            Java         C#
2
    Quality
Assessment
Quality
attribute


Product
factor

Measure

Instrument
Quality
attribute


Product
factor

Measure

Instrument
                      Measurement
             Software product
Quality                 Aggregation

attribute        Aggregation     Aggregation



Product
                  Evaluation     Evaluation
factor

Measure

Instrument
                       Measurement
             Software product
Quality                Aggregation

attribute       Aggregation     Aggregation



Product
                 Evaluation     Evaluation
factor

Measure
                  Measurement
            Software product
Quality                Aggregation

attribute       Aggregation     Aggregation



Product
                 Evaluation     Evaluation
factor

Measure
                  Measurement                 Normalisation
            Software product
Quality                Aggregation

attribute       Aggregation     Aggregation



Product                                          Utility
                 Evaluation     Evaluation
factor                                           functions

Measure
                  Measurement                 Normalisation
            Software product
Quality                Aggregation
                                                 Weights
attribute       Aggregation     Aggregation



Product                                          Utility
                 Evaluation     Evaluation
factor                                           functions

Measure
                  Measurement                 Normalisation
            Software product
Calibration for Java
  6000 compilable open source systems
Calibration for Java
  6000 compilable open source systems
               Random selection
Calibration for Java
  6000 compilable open source systems
               Random selection

       110 open source systems
Calibration for Java
  6000 compilable open source systems
               Random selection

       110 open source systems
               Measurement
Calibration for Java
  6000 compilable open source systems
               Random selection

       110 open source systems
               Measurement

     Distributions for all measures
Calibration for Java
  6000 compilable open source systems
               Random selection

       110 open source systems
               Measurement

     Distributions for all measures
               Calculations and reviews
Calibration for Java
  6000 compilable open source systems
               Random selection

       110 open source systems
               Measurement

     Distributions for all measures
               Calculations and reviews

          Evaluation functions
Interpretation with School Grades
                                                                   10


                 Worst
             6
Assessment




             5
             4
             3
             2
                                                            Best
             1

             0.80 0.82 0.84 0.86 0.88 0.90 0.92 0.94 0.96 0.98 1.00
                                Evaluation (Utility)

Fig. 7. Interpretation Model
3
   Tool
Support
HTML
Quality Model Editor                   Dash-
                                       board




                       Code, documentation,
                       tool results
Published under
Apache License, Version 2.0


      Available at
    www.quamoco.de
4
 Empirical
Validation
Experiment with OSS Projects

        Ranking         Ranking
         Model          Experts
Good    Checkstyle      Checkstyle
       Log4J RSSOwl       Log4J
                         RSSOwl
        TV-Browser      TV-Browser
Bad
          JabRef          JabRef
Experiment with Industry System

        Ranking         Ranking
         Model          Expert
Good    Subsystem D    Subsystem D
        Subsystem A    Subsystem A
        Subsystem C   Subsystem B, E
        Subsystem E    Subsystem C
Bad     Subsystem B
Visibility of Quality
 Improvements
Grade
    4.2




    2.8
                                   Investment in
                                   quality improvement

    1.4




        0
         1.9.0   2.0.0   2.0.1         2.0.2    2.1.0    2.2.1

                                 Version
Drill-Downs
Drill-Downs


„Modeled relations are comprehensible
and reasonable.“
Drill-Downs


„Modeled relations are comprehensible
and reasonable.“
„It is good to get an overall view on the
quality of a software product.“
Drill-Downs


„Modeled relations are comprehensible
and reasonable.“
„It is good to get an overall view on the
quality of a software product.“
„It clarifies software metrics.“
Drill-Downs


„Modeled relations are comprehensible
and reasonable.“
„It is good to get an overall view on the
quality of a software product.“
„It clarifies software metrics.“
„It is the best that can be done
with static code analysis.“
Integrated attributes,
measures and
evaluations
Integrated attributes,
measures and
evaluations
Modular
Integrated attributes,
measures and
evaluations
Modular
Automatic and
systematic evaluations
Integrated attributes,
measures and
evaluations
Modular
Automatic and
systematic evaluations
Base model
Integrated attributes,
measures and
evaluations
Modular
Automatic and
systematic evaluations
Base model
Calibration
Integrated attributes,
measures and
evaluations
Modular
Automatic and
systematic evaluations
Base model
Calibration
Tool support
Integrated attributes,
measures and
evaluations
Modular
Automatic and
systematic evaluations
Base model
Calibration
Tool support
Empirically validated
The Benchmark for Software Quality
www.uni-stuttgart.de




                       The Quamoco
                       Product Quality Modelling
                        and
                       Assessment Approach
                         Stefan Wagner, Klaus Lochmann, Lars Heinemann, Michael
                            Kläs, Adam Trendowicz, Reinhold Plösch, Andreas Seidl,
                                                Andreas Goeb and Jonathan Streit
Linear Utility Function


           1.0
                                    Measure M4
                                                 Linear decreasing
          0.74
                                                   utility function
Utility




           0.0
              min = 0.0   M4 = 2.17E-06                  max = 8.50E-6

Contenu connexe

Tendances

Awareness of qms
Awareness of qmsAwareness of qms
Awareness of qms
alabs
 
Role of qa&qc in manufacturing presentation
Role of qa&qc in manufacturing   presentationRole of qa&qc in manufacturing   presentation
Role of qa&qc in manufacturing presentation
Imran Jamil
 
QM-016-ISO 9000 2000品質管理系統
QM-016-ISO 9000 2000品質管理系統QM-016-ISO 9000 2000品質管理系統
QM-016-ISO 9000 2000品質管理系統
handbook
 
Ppap training-presentation-150311063239-conversion-gate01
Ppap training-presentation-150311063239-conversion-gate01Ppap training-presentation-150311063239-conversion-gate01
Ppap training-presentation-150311063239-conversion-gate01
BhimKunwar2
 
Iso 9001 understanding rev3
Iso 9001 understanding rev3Iso 9001 understanding rev3
Iso 9001 understanding rev3
jlcadarian
 

Tendances (20)

Apqp fundamentals
Apqp fundamentalsApqp fundamentals
Apqp fundamentals
 
ISO 9001-2015: New Risk Requirements
ISO 9001-2015: New Risk RequirementsISO 9001-2015: New Risk Requirements
ISO 9001-2015: New Risk Requirements
 
Awareness of qms
Awareness of qmsAwareness of qms
Awareness of qms
 
PPAP
PPAPPPAP
PPAP
 
Total quality-management-tqm
Total quality-management-tqmTotal quality-management-tqm
Total quality-management-tqm
 
Quality Awareness Session.pptx
Quality Awareness Session.pptxQuality Awareness Session.pptx
Quality Awareness Session.pptx
 
1qms concept
1qms concept1qms concept
1qms concept
 
Requirements Engineering - Requirements management
Requirements Engineering - Requirements managementRequirements Engineering - Requirements management
Requirements Engineering - Requirements management
 
Audit iso 9001-2015-checklist-
Audit iso 9001-2015-checklist-Audit iso 9001-2015-checklist-
Audit iso 9001-2015-checklist-
 
Role of qa&qc in manufacturing presentation
Role of qa&qc in manufacturing   presentationRole of qa&qc in manufacturing   presentation
Role of qa&qc in manufacturing presentation
 
QM-016-ISO 9000 2000品質管理系統
QM-016-ISO 9000 2000品質管理系統QM-016-ISO 9000 2000品質管理系統
QM-016-ISO 9000 2000品質管理系統
 
Quality awareness
Quality awarenessQuality awareness
Quality awareness
 
ISO Implementation Roadmap- By Motaharul Islam
ISO Implementation Roadmap- By Motaharul IslamISO Implementation Roadmap- By Motaharul Islam
ISO Implementation Roadmap- By Motaharul Islam
 
Iso 9001 2015
Iso 9001 2015 Iso 9001 2015
Iso 9001 2015
 
Ppap training-presentation-150311063239-conversion-gate01
Ppap training-presentation-150311063239-conversion-gate01Ppap training-presentation-150311063239-conversion-gate01
Ppap training-presentation-150311063239-conversion-gate01
 
9001 15 awareness v
9001 15 awareness v 9001 15 awareness v
9001 15 awareness v
 
ITSM Foundation Course Material
ITSM Foundation Course MaterialITSM Foundation Course Material
ITSM Foundation Course Material
 
SQMC briefing on ISO 9001 2015
SQMC briefing on ISO 9001 2015SQMC briefing on ISO 9001 2015
SQMC briefing on ISO 9001 2015
 
Presentazione Gigante.pptx
Presentazione Gigante.pptxPresentazione Gigante.pptx
Presentazione Gigante.pptx
 
Iso 9001 understanding rev3
Iso 9001 understanding rev3Iso 9001 understanding rev3
Iso 9001 understanding rev3
 

En vedette

03 club qualimetrie_presentation_s_qua_re
03 club qualimetrie_presentation_s_qua_re03 club qualimetrie_presentation_s_qua_re
03 club qualimetrie_presentation_s_qua_re
Capgemini
 
Iwsm2014 performance measurement for cloud computing applications using iso...
Iwsm2014   performance measurement for cloud computing applications using iso...Iwsm2014   performance measurement for cloud computing applications using iso...
Iwsm2014 performance measurement for cloud computing applications using iso...
Nesma
 
Software quality requirements and evaluation
Software quality requirements and evaluationSoftware quality requirements and evaluation
Software quality requirements and evaluation
Eric Lai
 
Guide25 vs ISO/IEC17025
Guide25 vs ISO/IEC17025Guide25 vs ISO/IEC17025
Guide25 vs ISO/IEC17025
SEREE NET
 

En vedette (19)

Begrüssung Erstsemester am Fachbereich Informatik – Wintersemester 2014/15
Begrüssung Erstsemester am Fachbereich Informatik – Wintersemester 2014/15Begrüssung Erstsemester am Fachbereich Informatik – Wintersemester 2014/15
Begrüssung Erstsemester am Fachbereich Informatik – Wintersemester 2014/15
 
Educational lifecycle process assessment
Educational lifecycle process assessmentEducational lifecycle process assessment
Educational lifecycle process assessment
 
Software and product quality for videogames
Software and product quality for videogamesSoftware and product quality for videogames
Software and product quality for videogames
 
03 club qualimetrie_presentation_s_qua_re
03 club qualimetrie_presentation_s_qua_re03 club qualimetrie_presentation_s_qua_re
03 club qualimetrie_presentation_s_qua_re
 
Quality Models for Web Sites
Quality Models for Web SitesQuality Models for Web Sites
Quality Models for Web Sites
 
Quesionnaire
QuesionnaireQuesionnaire
Quesionnaire
 
Evaluacion del software educativo
Evaluacion del software educativoEvaluacion del software educativo
Evaluacion del software educativo
 
Analisis iso 25010
Analisis iso 25010Analisis iso 25010
Analisis iso 25010
 
Evaluating and Improving Software Usability
Evaluating and Improving Software UsabilityEvaluating and Improving Software Usability
Evaluating and Improving Software Usability
 
Iwsm2014 performance measurement for cloud computing applications using iso...
Iwsm2014   performance measurement for cloud computing applications using iso...Iwsm2014   performance measurement for cloud computing applications using iso...
Iwsm2014 performance measurement for cloud computing applications using iso...
 
Software quality requirements and evaluation
Software quality requirements and evaluationSoftware quality requirements and evaluation
Software quality requirements and evaluation
 
Quality characteristics
Quality characteristicsQuality characteristics
Quality characteristics
 
Guide25 vs ISO/IEC17025
Guide25 vs ISO/IEC17025Guide25 vs ISO/IEC17025
Guide25 vs ISO/IEC17025
 
Estimation of Measurement Uncertainty in Labs: a requirement for ISO 17025 Ac...
Estimation of Measurement Uncertainty in Labs: a requirement for ISO 17025 Ac...Estimation of Measurement Uncertainty in Labs: a requirement for ISO 17025 Ac...
Estimation of Measurement Uncertainty in Labs: a requirement for ISO 17025 Ac...
 
Capturing Measurable Non Functional Requirements
Capturing Measurable Non Functional RequirementsCapturing Measurable Non Functional Requirements
Capturing Measurable Non Functional Requirements
 
Exigences de qualité des systèmes / logiciels
Exigences de qualité des systèmes / logicielsExigences de qualité des systèmes / logiciels
Exigences de qualité des systèmes / logiciels
 
Web application security test tools
Web application security test toolsWeb application security test tools
Web application security test tools
 
SonarQube et la Sécurité
SonarQube et la SécuritéSonarQube et la Sécurité
SonarQube et la Sécurité
 
Analyser la sécurité de son code source avec SonarSource
Analyser la sécurité de son code source avec SonarSourceAnalyser la sécurité de son code source avec SonarSource
Analyser la sécurité de son code source avec SonarSource
 

Similaire à The Quamoco Quality Modelling and Assessment Approach

Btd erik bits bernd beersma 1.4
Btd erik bits bernd beersma 1.4Btd erik bits bernd beersma 1.4
Btd erik bits bernd beersma 1.4
Bernd Beersma
 
Scrum on business management based on iso requirements
Scrum on business management based on iso requirementsScrum on business management based on iso requirements
Scrum on business management based on iso requirements
Paolo Cruz
 
Intel Cloud Summit ODCA - NAB Customer presentation
Intel Cloud Summit ODCA - NAB Customer presentationIntel Cloud Summit ODCA - NAB Customer presentation
Intel Cloud Summit ODCA - NAB Customer presentation
IntelAPAC
 
Offshore Software Development, Software Testing by CAMO Solutions
Offshore Software Development, Software Testing by CAMO SolutionsOffshore Software Development, Software Testing by CAMO Solutions
Offshore Software Development, Software Testing by CAMO Solutions
CAMO Solutions LLC
 
Modern SDLC and QA.pptx
Modern SDLC and QA.pptxModern SDLC and QA.pptx
Modern SDLC and QA.pptx
Zaid Shabbir
 

Similaire à The Quamoco Quality Modelling and Assessment Approach (20)

Btd erik bits bernd beersma 1.4
Btd erik bits bernd beersma 1.4Btd erik bits bernd beersma 1.4
Btd erik bits bernd beersma 1.4
 
ISO 26262 Unit Testing | Functional Safety in Automotive
ISO 26262 Unit Testing | Functional Safety in Automotive ISO 26262 Unit Testing | Functional Safety in Automotive
ISO 26262 Unit Testing | Functional Safety in Automotive
 
Soa Test Methodology
Soa Test MethodologySoa Test Methodology
Soa Test Methodology
 
CISQ Introduction & Objectives - Dr. Bill Curtis
CISQ Introduction & Objectives - Dr. Bill CurtisCISQ Introduction & Objectives - Dr. Bill Curtis
CISQ Introduction & Objectives - Dr. Bill Curtis
 
SQA Monitoring en organisation agile - Olivier Garrigues
SQA Monitoring en organisation agile - Olivier GarriguesSQA Monitoring en organisation agile - Olivier Garrigues
SQA Monitoring en organisation agile - Olivier Garrigues
 
Scrum on business management based on iso requirements
Scrum on business management based on iso requirementsScrum on business management based on iso requirements
Scrum on business management based on iso requirements
 
ISO series, guide of pharmaceutical manufacturing facilities, productivity b...
 ISO series, guide of pharmaceutical manufacturing facilities, productivity b... ISO series, guide of pharmaceutical manufacturing facilities, productivity b...
ISO series, guide of pharmaceutical manufacturing facilities, productivity b...
 
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)
 
Soirée du Test Logiciel - SQA monitoring et gestion du risque en organisation...
Soirée du Test Logiciel - SQA monitoring et gestion du risque en organisation...Soirée du Test Logiciel - SQA monitoring et gestion du risque en organisation...
Soirée du Test Logiciel - SQA monitoring et gestion du risque en organisation...
 
Java Code Quality Improvements - DevWeek
Java Code Quality Improvements - DevWeekJava Code Quality Improvements - DevWeek
Java Code Quality Improvements - DevWeek
 
Intel Cloud Summit ODCA - NAB Customer presentation
Intel Cloud Summit ODCA - NAB Customer presentationIntel Cloud Summit ODCA - NAB Customer presentation
Intel Cloud Summit ODCA - NAB Customer presentation
 
Testing with Spring
Testing with SpringTesting with Spring
Testing with Spring
 
20080610 03 - SQuaRE, évolution de la norme iso9126
20080610 03 - SQuaRE, évolution de la norme iso912620080610 03 - SQuaRE, évolution de la norme iso9126
20080610 03 - SQuaRE, évolution de la norme iso9126
 
Offshore Software Development, Software Testing by CAMO Solutions
Offshore Software Development, Software Testing by CAMO SolutionsOffshore Software Development, Software Testing by CAMO Solutions
Offshore Software Development, Software Testing by CAMO Solutions
 
Usability modeling and measurement
Usability modeling and measurementUsability modeling and measurement
Usability modeling and measurement
 
ISO-26262-Webinar.pptx
ISO-26262-Webinar.pptxISO-26262-Webinar.pptx
ISO-26262-Webinar.pptx
 
Modern SDLC and QA.pptx
Modern SDLC and QA.pptxModern SDLC and QA.pptx
Modern SDLC and QA.pptx
 
Overview of the proposed Photovoltaic Solar Quality Management System standard
Overview of the proposed Photovoltaic Solar Quality Management System standardOverview of the proposed Photovoltaic Solar Quality Management System standard
Overview of the proposed Photovoltaic Solar Quality Management System standard
 
2014_pvmrw_81_ramu.pdf sun power corporation
2014_pvmrw_81_ramu.pdf  sun power corporation2014_pvmrw_81_ramu.pdf  sun power corporation
2014_pvmrw_81_ramu.pdf sun power corporation
 
[Kartuku] Software Quality
[Kartuku] Software Quality[Kartuku] Software Quality
[Kartuku] Software Quality
 

Dernier

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Dernier (20)

AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 

The Quamoco Quality Modelling and Assessment Approach

  • 1. The Benchmark for Software Quality www.uni-stuttgart.de The Quamoco Product Quality Modelling and Assessment Approach Stefan Wagner Institute of Software Technology ICSE 2012 Zürich, Switzerland 8 June 2012
  • 2. "Quality is a complex and multi-faceted concept... it is also the source of great confusion." –David A. Garvin
  • 3. Software Quality Models IEC 61508 Siemens Technical Topic CMMI Classification COQUALMO ISO 15504 - SPICE ISO 9126 Maintainability Index Musa basic SAP Q-Index Visser et al. Activity-Based Musa-Okumoto Quality Models Littlewood-Verall Bayesian iDAVE Avizienis et al. Marinescu & Boehm et al. MISRA Ratiu McCall & Dromey Common Criteria Walters NHPP ISO 15005 SAP Quality Capgemini sd&m Standards SQUID Software-Blutbild ISO 25000 ROSQ Models
  • 4. ISO 9126 Reliability Functionality Performance Quality model Maintainability Usability Portability
  • 5. Quality Models in Practical Use Percentages of answers, multiple answers possible Company-specific 71 ISO 9126 28 Domain-specific 20 None 4 Wagner et al., 2010
  • 6. „The -ilities are good for management talk only.“ –Anonymous developer Wagner et al., ESEM'09
  • 7. ISO 9126 ISO 25010 Quality attribute Comment Clone ratio coverage Measure Cyclomatic complexity
  • 8. ISO 9126 ISO 25010 Quality attribute ? Comment Clone ratio coverage Measure Cyclomatic complexity
  • 9. Quality attribute ISO 9126 ISO 25010 Measure Comment Clone ratio coverage Cyclomatic complexity
  • 10. Quality attribute Multitude of models ISO 9126 ISO 25010 Measure Comment Clone ratio coverage Cyclomatic complexity
  • 11. Quality attribute Multitude of models ISO 9126 Too abstract ISO 25010 Measure Comment Clone ratio coverage Cyclomatic complexity
  • 12. Quality attribute Multitude of models ISO 9126 Too abstract ISO 25010 Not operationalised Measure Comment Clone ratio coverage Cyclomatic complexity
  • 13. Quality attribute Multitude of models ISO 9126 Too abstract ISO 25010 Not operationalised Not adaptable Measure Comment Clone ratio coverage Cyclomatic complexity
  • 14. Quality attribute Multitude of models ISO 9126 Too abstract ISO 25010 Not operationalised Not adaptable Unreproducible assessments Measure Comment Clone ratio coverage Cyclomatic complexity
  • 15. Quality attribute Multitude of models ISO 9126 Too abstract ISO 25010 Not operationalised Not adaptable Unreproducible assessments Measure Differing definitions Comment Clone ratio coverage Cyclomatic complexity
  • 16. Quality attribute Multitude of models ISO 9126 Too abstract ISO 25010 Not operationalised Not adaptable Unreproducible assessments Measure Differing definitions Comment Clone ratio coverage Unclear relationship to quality goals Cyclomatic complexity
  • 18. ISO 9126 ISO 25010 Quality attribute ? Comment Clone ratio coverage Measure Cyclomatic complexity
  • 19. ISO 9126 ISO 25010 Quality attribute Comment Clone ratio coverage Measure Cyclomatic complexity
  • 20. ISO 9126 ISO 25010 Quality attribute Comment Clone ratio coverage Measure Cyclomatic complexity
  • 21. ISO 9126 ISO 25010 Quality attribute Product factor Comment Clone ratio coverage Measure Cyclomatic complexity
  • 22. Maintainability Analysability Modifiability Duplication of source code parts Clone coverage
  • 25. Maintainability Quality attribute Analyzability Product Usefulness of method factor Statically Measure unused method Instrument Gendarme: PMD: Unused Avoid Uncalled Private Method Private Code
  • 26. Base Model root C object-oriented GUI C++ Java C#
  • 27. 2 Quality Assessment
  • 30. Quality Aggregation attribute Aggregation Aggregation Product Evaluation Evaluation factor Measure Instrument Measurement Software product
  • 31. Quality Aggregation attribute Aggregation Aggregation Product Evaluation Evaluation factor Measure Measurement Software product
  • 32. Quality Aggregation attribute Aggregation Aggregation Product Evaluation Evaluation factor Measure Measurement Normalisation Software product
  • 33. Quality Aggregation attribute Aggregation Aggregation Product Utility Evaluation Evaluation factor functions Measure Measurement Normalisation Software product
  • 34. Quality Aggregation Weights attribute Aggregation Aggregation Product Utility Evaluation Evaluation factor functions Measure Measurement Normalisation Software product
  • 35. Calibration for Java 6000 compilable open source systems
  • 36. Calibration for Java 6000 compilable open source systems Random selection
  • 37. Calibration for Java 6000 compilable open source systems Random selection 110 open source systems
  • 38. Calibration for Java 6000 compilable open source systems Random selection 110 open source systems Measurement
  • 39. Calibration for Java 6000 compilable open source systems Random selection 110 open source systems Measurement Distributions for all measures
  • 40. Calibration for Java 6000 compilable open source systems Random selection 110 open source systems Measurement Distributions for all measures Calculations and reviews
  • 41. Calibration for Java 6000 compilable open source systems Random selection 110 open source systems Measurement Distributions for all measures Calculations and reviews Evaluation functions
  • 42. Interpretation with School Grades 10 Worst 6 Assessment 5 4 3 2 Best 1 0.80 0.82 0.84 0.86 0.88 0.90 0.92 0.94 0.96 0.98 1.00 Evaluation (Utility) Fig. 7. Interpretation Model
  • 43. 3 Tool Support
  • 44. HTML Quality Model Editor Dash- board Code, documentation, tool results
  • 45.
  • 46. Published under Apache License, Version 2.0 Available at www.quamoco.de
  • 48. Experiment with OSS Projects Ranking Ranking Model Experts Good Checkstyle Checkstyle Log4J RSSOwl Log4J RSSOwl TV-Browser TV-Browser Bad JabRef JabRef
  • 49. Experiment with Industry System Ranking Ranking Model Expert Good Subsystem D Subsystem D Subsystem A Subsystem A Subsystem C Subsystem B, E Subsystem E Subsystem C Bad Subsystem B
  • 50. Visibility of Quality Improvements Grade 4.2 2.8 Investment in quality improvement 1.4 0 1.9.0 2.0.0 2.0.1 2.0.2 2.1.0 2.2.1 Version
  • 52. Drill-Downs „Modeled relations are comprehensible and reasonable.“
  • 53. Drill-Downs „Modeled relations are comprehensible and reasonable.“ „It is good to get an overall view on the quality of a software product.“
  • 54. Drill-Downs „Modeled relations are comprehensible and reasonable.“ „It is good to get an overall view on the quality of a software product.“ „It clarifies software metrics.“
  • 55. Drill-Downs „Modeled relations are comprehensible and reasonable.“ „It is good to get an overall view on the quality of a software product.“ „It clarifies software metrics.“ „It is the best that can be done with static code analysis.“
  • 56.
  • 61. Integrated attributes, measures and evaluations Modular Automatic and systematic evaluations Base model Calibration
  • 62. Integrated attributes, measures and evaluations Modular Automatic and systematic evaluations Base model Calibration Tool support
  • 63. Integrated attributes, measures and evaluations Modular Automatic and systematic evaluations Base model Calibration Tool support Empirically validated
  • 64. The Benchmark for Software Quality www.uni-stuttgart.de The Quamoco Product Quality Modelling and Assessment Approach Stefan Wagner, Klaus Lochmann, Lars Heinemann, Michael Kläs, Adam Trendowicz, Reinhold Plösch, Andreas Seidl, Andreas Goeb and Jonathan Streit
  • 65. Linear Utility Function 1.0 Measure M4 Linear decreasing 0.74 utility function Utility 0.0 min = 0.0 M4 = 2.17E-06 max = 8.50E-6

Notes de l'éditeur

  1. I‘m delighted to present to you the results on quality modelling and assessment of our three year research project Quamoco.\nI‘ve always found quality an interesting concept because it determines so much about a system, but also it is very complex.\n
  2. As David Garvin pointed out: Quality is complex and multifaceted and therefore it is also the source of great confusion“.\nSo what do computer scientists do to handle complexity? They abstract! Researchers have developed a variety of software quality models.\n\n
  3. The range of quality models goes from collections of metrics over academic models, domain standards to company-specific models. But none of them has been able to get really broad acceptance. When we set out to work on quality assessments, we wanted to find a good basis. What do you do when there is no clear leader? You looked at the ISO standard, here 9126.\nISO 15005: Road vehicles - Ergonomic aspects of transport information and control systems - Dialogue management principles and compliance procedures\nNHPP: Non-homogeneous Poisson process (reliability growth models)\n
  4. It breaks down quality into quality attributes such as reliability or maintainability – the „-ilities“. It then breaks them further down and gives some metrics to measure them.\nHow well is it doing in practice? We asked over a hundred practicioners.\n
  5. And the result is not pretty good.\nOnly 28% of the respondents of our international survey said that they use ISO 9126. Only 28%. A bit more than a quarter.\nWhy is that so? We asked in detailed interviews about the reasons.\n
  6. The developers told us taht there is a huge gap between the abstract quality attributes of ISO 9126 and the concrete implementation and assessment on the product. Operationalising the quality attributes is considered extremely difficult. Hence, they use some metrics.\nThe existing metrics are concrete but lack a clear connection to quality goals.\n
  7. Hence, we have the abstract quality attributes of ISO 9126 or similarly the new standard 25010 as well as various measures.\n
  8. And there is this gap that prevents quality attributes from being assessed and measures from clearly contributing to quality goals.\n
  9. The Quamoco project has worked three years on providing – among other things – four results to help to overcome this problems.\n
  10. The Quamoco project has worked three years on providing – among other things – four results to help to overcome this problems.\n
  11. The Quamoco project has worked three years on providing – among other things – four results to help to overcome this problems.\n
  12. The Quamoco project has worked three years on providing – among other things – four results to help to overcome this problems.\n
  13. The Quamoco project has worked three years on providing – among other things – four results to help to overcome this problems.\n
  14. The Quamoco project has worked three years on providing – among other things – four results to help to overcome this problems.\n
  15. The Quamoco project has worked three years on providing – among other things – four results to help to overcome this problems.\n
  16. \n
  17. \n
  18. Schließen der Lücke, durchgängie Zusammenhänge\n
  19. Beispiel\n
  20. The higher in this quality model, the more general the model should be. So on the top level, we have ISO 25010 quality attribute, which are almost applicable to all software products.\nThe product factors should be quite generally applicable but on the measure level, we are often specific for technologies or languages. To have general measures and to decouple them from technical implementations, we introduced instruments.\n
  21. For example, we have a product factor „Uselessness of Methods“, which we measure, for example, with „Statically unused method“. This measure is applicable to different languages. Hence, we refine this with an instrument that uses Gendarme for C# and PMD for Java.\n
  22. Base model describes qualities important for almost any kind of software\nAim is to use it as basis for more specific quality models and also to be able to apply it directly for very popular paradigms and technologies\nIt has a modular structure\nroot contains quality attributes and very general product factors, modules for object-oriented factors and operationalisation for Java and C#\nmostly static analysis tools and inspection\nprototypical development for C, C++ and GUI\n 284 Faktoren\n 524 Maße\n
  23. \n
  24. With that, we can do an actual assessment or evaluation of a software product.\nWe measure using the instruments and collect values for all the measures.\nNow, we need evaluations and aggregations for the product factors and quality attributes.\n
  25. With that, we can do an actual assessment or evaluation of a software product.\nWe measure using the instruments and collect values for all the measures.\nNow, we need evaluations and aggregations for the product factors and quality attributes.\n
  26. \n
  27. \n
  28. \n
  29. From over a hundred systems, found typical distributions, eliminated outliers and analysed quartiles\nThe result of an evaluation function is a value between 0 and one.\n
  30. From over a hundred systems, found typical distributions, eliminated outliers and analysed quartiles\nThe result of an evaluation function is a value between 0 and one.\n
  31. From over a hundred systems, found typical distributions, eliminated outliers and analysed quartiles\nThe result of an evaluation function is a value between 0 and one.\n
  32. From over a hundred systems, found typical distributions, eliminated outliers and analysed quartiles\nThe result of an evaluation function is a value between 0 and one.\n
  33. From over a hundred systems, found typical distributions, eliminated outliers and analysed quartiles\nThe result of an evaluation function is a value between 0 and one.\n
  34. From over a hundred systems, found typical distributions, eliminated outliers and analysed quartiles\nThe result of an evaluation function is a value between 0 and one.\n
  35. The model was a dictation in school, if you have some errors you will get a bad grade\nHere: German school grades but you could plug in any interpretation wodel\n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. Eine solche Bewertung muss valide sein, um Entscheidungen darauf abzustützen. Haben wir eine gute Aussage über das System gemacht?\nHier haben wir unsere Bewertungen mit Expertenbewertungen verglichen.\nEs ergab sich fast exakt die gleiche Rangfolge. Wir waren in dieser Auflösung also bereits so gut wie Experten.\n
  42. Hier für fünf Subsysteme eines kommerziellen Systems für den Maintainability-Teil.\n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. And with that I want to close with a a thanks to all the Quamoco partners and supporters!\n
  56. \n