Assessment of Geant4 Software Quality

Slides:



Advertisements
Similar presentations
Software Metrics for Object Oriented Design
Advertisements

Maria Grazia Pia, INFN Genova 1 Part V The lesson learned Summary and conclusions.
Software Quality Ranking: Bringing Order to Software Modules in Testing Fei Xing Michael R. Lyu Ping Guo.
Prediction of fault-proneness at early phase in object-oriented development Toshihiro Kamiya †, Shinji Kusumoto † and Katsuro Inoue †‡ † Osaka University.
What causes bugs? Joshua Sunshine. Bug taxonomy Bug components: – Fault/Defect – Error – Failure Bug categories – Post/pre release – Process stage – Hazard.
Software Quality Metrics
Developed by Reneta Barneva, SUNY Fredonia Product Metrics for Software.
Software Engineering II - Topic: Software Process Metrics and Project Metrics Instructor: Dr. Jerry Gao San Jose State University
Software Metrics II Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
Software metrics Selected key concepts. Introduction Motivation:  Management:  Appraisal  Assurance  Control  Improvement  Research:  Cause-effect.
Object-Oriented Metrics
Predicting Class Testability using Object-Oriented Metrics M. Bruntink and A. van Deursen Presented by Tom Chappell.
Object Oriented Metrics XP project group – Saskia Schmitz.
Experiences on software quality analysis Elisabetta Ronchieri INFN CNAF.
IMaGix 4D Presented by: Elliott Harrington Derek Larson Matt Heinzelman Cheneng Vang.
Cmpe 589 Spring Software Quality Metrics Product  product attributes –Size, complexity, design features, performance, quality level Process  Used.
Japan Advanced Institute of Science and Technology
Program Evaluation. Program evaluation Methodological techniques of the social sciences social policy public welfare administration.
Chapter 6 : Software Metrics
Paradigm Independent Software Complexity Metrics Dr. Zoltán Porkoláb Department of Programming Languages and Compilers Eötvös Loránd University, Faculty.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Software Measurement & Metrics
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 15b: Product Metrics for Software Software Engineering: A Practitioner’s Approach, 6/e Chapter.
Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”
1 Experience-Driven Process Improvement Boosts Software Quality © Software Quality Week 1996 Experience-Driven Process Improvement Boosts Software Quality.
1 Chapter 15 Product Metrics for Software Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Samad Paydar Web Technology Lab. Ferdowsi University of Mashhad 10 th August 2011.
1 OO Metrics-Sept2001 Principal Components of Orthogonal Object-Oriented Metrics Victor Laing SRS Information Services Software Assurance Technology Center.
Assessing the Frequency of Empirical Evaluation in Software Modeling Research Workshop on Experiences and Empirical Studies in Software Modelling (EESSMod)
Software Project Management Lecture # 3. Outline Chapter 22- “Metrics for Process & Projects”  Measurement  Measures  Metrics  Software Metrics Process.
OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties.
Software Quality Metrics
Enabling Reuse-Based Software Development of Large-Scale Systems IEEE Transactions on Software Engineering, Volume 31, Issue 6, June 2005 Richard W. Selby,
1 Metrics and lessons learned for OO projects Kan Ch 12 Steve Chenoweth, RHIT Above – New chapter, same Halstead. He also predicted various other project.
CSc 461/561 Information Systems Engineering Lecture 5 – Software Metrics.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 15a: Product Metrics for Software Software Engineering: A Practitioner’s Approach, 6/e Chapter.
Ontology Support for Abstraction Layer Modularization Hyun Cho, Jeff Gray Department of Computer Science University of Alabama
1 Predicting Classes in Need of Refactoring – An Application of Static Metrics Liming Zhao Jane Hayes 23 September 2006.
Metrics "A science is as mature as its measurement tools."
OOAD UNIT V B RAVINDER REDDY PROFESSOR DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Object Oriented Metrics
Using Bayesian Belief Networks in Assessing Software Architectures Jilles van Gurp & Jan Bosch.
1 OO Technical Metrics CIS 375 Bruce R. Maxim UM-Dearborn.
Software Engineering Object Oriented Metrics. Objectives 1.To describe the distinguishing characteristics of Object-Oriented Metrics. 2.To introduce metrics.
Managing Qualitative Knowledge in Software Architecture Assesment Jilles van Gurp & Jan Bosch Högskolan Karlskrona/Ronneby in Sweden Department of Software.
1 Week 7 Software Engineering Spring Term 2016 Marymount University School of Business Administration Professor Suydam.
1 Kalibro multi-language code analysis tool Paulo Meirelles By Paulo Meirelles, Carlos Morais, Vinicius Daros, and Fabio Kon is licensed under a Creative.
Static Software Metrics Tool
Object Oriented Metrics
School of Business Administration
A Hierarchical Model for Object-Oriented Design Quality Assessment
Software Metrics 1.
Course Notes Set 12: Object-Oriented Metrics
CHEP October 2016, San Francisco, CA, USA
Design Characteristics and Metrics
Towards a Multi-paradigm Complexity Measure
Lecture 15: Technical Metrics
Object-Oriented Metrics
Design Metrics Software Engineering Fall 2003
A Pluggable Tool for Measuring Software Metrics from Source Code
Design Metrics Software Engineering Fall 2003
Mei-Huei Tang October 25, 2000 Computer Science Department SUNY Albany
Presented by Trey Brumley and Ryan Carter
Software Metrics SAD ::: Fall 2015 Sabbir Muhammad Saleh.
Software Metrics using EiffelStudio
PPT6: Object-oriented design
Software Engineering: A Practitioner’s Approach, 6/e Chapter 15 Product Metrics for Software copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
Coupling Interaction: It occurs due to methods of a class invoking methods of other classes. Component Coupling: refers to interaction between two classes.
Chapter 8: Design: Characteristics and Metrics
Presentation transcript:

Assessment of Geant4 Software Quality What has been done so far Elisabetta Ronchieri, Maria Grazia Pia CERN, 7 August 2017

Background Existing literature shows various works about the use of metrics with different goals, such as improving software quality (e.g., measuring usability, efficiency and maintainability) improving reliability (e.g., measuring mean time to failire) Most of these studies are based on qualitative considerations (e.g., expert judgement) often lack of quantitative analysis do not provide metric thresholds or ranges: if they do, their values can depend on specific domain and programming language characteristics are applied to academic software and a sub-set of software releases

Objectives Define a research methodology in order to assess the applicability of software quality metrics to large scientific software determine statistical methods that contribute identifying code issues and suitable metrics identify metrics suitable for certain software design

Work done so far Assessment of various software quality tools (free and under licenses) Selected Imagix4D to measure several product metrics at different levels Under open evaluation license, extended three times Identified C++ metric thresholds from literature Cons: Domain specific Developed code to manipulate raw data of code measurements Evaluated statistical methods to analyze data i.e., trend and inequality analysis Levels #Metrics Variable 4 File 22 Class 24 Directory 21 Namespace Function

Metrics at class level Metric Name Category Class Hierarchy and Local Vars Coupling CK Coupling Between Objects, CK Depth of Inheritance Tree, CK Lack of Cohesion of Methods, CK Number of Children, CK Response For a Class, CK Weighted Methods per Class Depth of Derived Classes External Methods and Coupling Fan In of Inherited Classes Halstead Intelligent Content, Halstead Mental Effort, Halstead Program Difficulty, Halstead Program Volume McCabe Average Cyclomatic Complexity, McCabe Maximum Cyclomatic Complexity Methods Called – External, Methods Called - Internal Number of Member Attributes, Number of Member Classes, Number of Member Methods, Number of Member Private Methods Number of Member Types, Number of Total Members Size Object Orientation Design Complexity Chidamber & Kemerer (CK)

Metrics at file level Metric Name Category Comment Ratio Halstead Intelligent Content, Halstead Mental Effort, Halstead Program Difficulty, Halstead Program Volume Inclusion – Directly Included Files, Inclusion – Files Where Directly Included, Inclusion – Files Where Transitively Included, Inclusion – Transitively Included Files, Inclusion – Transitively Included Lines McCabe Average Cyclomatic Complexity, McCabe Maximum Cyclomatic Complexity, McCabe Total Cyclomatic Complexity Maintainability Index Number of Declaration in File, Number of Functions in File, Number of Variables in File Size – Bytes, Size – Lines of Comments, Size – Lines in File, Size – Lines of Source Code, Size – Number of Statements Size Complexity Design

Software candidate: Geant4 Considered several Geant4 releases from very beginning version up to 10.4.beta wget data from the public source repository Recalculated metrics by using a new version of Imagix4D 8.1.4 Came across bugs in Imagix4D Received bug fixes for the open evaluated license Checked raw data in a random sample Met some issues in measuring metrics from 0.0 up to 3.2 due to lack of some external dependencies Fixed in the last data production Used different metric implementations for the same metric to assess their impact on the analysis Complexity, Lack of Cohesion and Maintainability Index Raised interest from other research groups like the Atlas Software Quality group

Statistical Methods Identified statistical methods to perform quantitative analysis Trend analysis to get information about the evolution of software to gain insight to the past and to use knowledge to shape the future Inequality analysis to get information about the aggregation of software properties Produced over 26581 plots on Geant4 with the first data production considering metrics at file and class levels without the releases from 0.0 up to 3.2

Results from Trend Analysis Test for randomness non parametric Mann-Kendall test Cox Stuart test Bartels test Statistical inference for upward/downward trend Leaf H0: random H1: downward Abstract H1: upward Mann-Kendall test p-value < 0.01 From Maria Grazia, INFN Genova, presentation at IEEE NSS/MIC 2016

Results from Inequality Analysis Gini index Pietra index Theil index Atkinson index others ½ GINI Index PIETRA Index LORENZ From poster at IEEE NSS/MIC 2016

In progress Focus on trend analysis Exploration of data analysis methods to aggregate trend information Evaluation of systematics Metric implementations Different trend tests Metric categories Assessment of function metrics Changepoint detection: exploration of methods and feasibility study Correlations

Conclusion Performed various explorative studies on quantitative analysis of metrics Assessed feasibility and capability of producing valuable density profile indicating the interfaces between the various phases as well as the amount of sand results During this week we are going to finalize a first set of results in view of a coming conference presentation Comments and suggestions are welcome (will be duly acknowledged) It would be interesting to apply the same methodology to other scientific software Suggestions are welcome Collaborative effort with code developers