SlideShare a Scribd company logo
A critique of cyclomatic complexity as a
software metric
                 by Martin Shepperd
        Software Engineering Journal March 1988




                            Presented By:
                            Tameem Ahmad
                                   M.Tech. Student
                                         Z.H.C.E.T.
                                     A.M.U.,Aligarh




   Copyright, 1996 © Dale Carnegie & Associates, Inc.
Overview
• Introduction
• Overview of Cyclomatic Complexity
• Theoretical assumptions that reasoned for
 objection
• Modification Suggested
• Conclusion


 Martin Shepperd, Software Engineering Journal March 1988   2
Introduction
 ‘Halstead’s Software Science’
 Cyclomatic Complexity approach of
 MacCabe




 Martin Shepperd, Software Engineering Journal March 1988   3
Overview of the Cyclomatic
Complexity Metric
 Control Path is the indicator
 v(G) = e - n + 1                                           (1)
 v(S) = e - n + 2p                                          (2)
 IF X < 1 AND Y <2 THEN
 Case statements       (n-1) n is the no. of cases

 Upper limit v(G)=10 suggested with
 some relaxations.


 Martin Shepperd, Software Engineering Journal March 1988         4
Controversy (1)
   On the basis of the counting rule
   Myers interval




Thus the failure of cyclomatic complexity to count ELSE branches is
  only a serious deficiency if the metric is intended to Capture
  complexity of comprehension.

  Martin Shepperd, Software Engineering Journal March 1988            5
Controversy (2);                              on count of case
 Hansen (count case contribution to the complexity should be one)
 raises the question on the count of the
 cases
 Other have suggested as log2(n)




 Martin Shepperd, Software Engineering Journal March 1988           6
Controversy (3);                              (modification)


 Hansen proposed 2-tuple cyclomtic
 complexity(defined to be arithmetical operators, function and
 subroutine calls, assignments, input and output statements and array
 subscription).
 Discarded by Baker and Zweben as the problem to comparision.




 Martin Shepperd, Software Engineering Journal March 1988               7
Controversy (4) ;                               (modification)

 Stetter suggested cyclometic flow
 complexity metric. (flow of data is also
 considered her)




 Martin Shepperd, Software Engineering Journal March 1988        8
Controversy (5)
 Based on no. of structured
 With increase of program structure
 cyclometic complexity aslo increases.




 Martin Shepperd, Software Engineering Journal March 1988   9
Controversy (6) ;                               a critical one
 Evangelist reports that the application
 of only 2 out of 26 of Kernighan and
 Plauger’s rules of good programming
 style invariably results in a decrease in
 cyclomatic complexity.




 Martin Shepperd, Software Engineering Journal March 1988        10
Conclusion
    Much of the difficulty stems from the fact that McCabe was originally thinking in
    terms of Fortran, whereas most of these difficulties arise from other
    languages, some of them more recent, such as Ada Here one has to contend
    with problems such as distinguishing between
‘IF y = 1 ORy = 3’ and
IF y = 0 OR ELSE x/y>1.
   the mapping from code to a program graph is ambiguous.




  Martin Shepperd, Software Engineering Journal March 1988                          11
Thank You




             12

More Related Content

What's hot

JAIDEEP SINGH
JAIDEEP SINGHJAIDEEP SINGH
JAIDEEP SINGH
Jaideep Singh
 
00454
0045400454
00454
Raj Mohan
 
PRAM algorithms from deepika
PRAM algorithms from deepikaPRAM algorithms from deepika
PRAM algorithms from deepika
guest1f4fb3
 
Exact network reconstruction from consensus signals and one eigen value
Exact network reconstruction from consensus signals and one eigen valueExact network reconstruction from consensus signals and one eigen value
Exact network reconstruction from consensus signals and one eigen value
IJCNCJournal
 
Shor's discrete logarithm quantum algorithm for elliptic curves
 Shor's discrete logarithm quantum algorithm for elliptic curves Shor's discrete logarithm quantum algorithm for elliptic curves
Shor's discrete logarithm quantum algorithm for elliptic curves
XequeMateShannon
 
ICDE-2015 Shortest Path Traversal Optimization and Analysis for Large Graph C...
ICDE-2015 Shortest Path Traversal Optimization and Analysis for Large Graph C...ICDE-2015 Shortest Path Traversal Optimization and Analysis for Large Graph C...
ICDE-2015 Shortest Path Traversal Optimization and Analysis for Large Graph C...
Waqas Nawaz
 
C055011012
C055011012C055011012
C055011012
inventy
 
Analysis of Algorithms II - PS3
Analysis of Algorithms II - PS3Analysis of Algorithms II - PS3
Analysis of Algorithms II - PS3
AtakanAral
 
Dueling Network Architectures for Deep Reinforcement Learning
Dueling Network Architectures for Deep Reinforcement LearningDueling Network Architectures for Deep Reinforcement Learning
Dueling Network Architectures for Deep Reinforcement Learning
Yoonho Lee
 
M045077578
M045077578M045077578
M045077578
IJERA Editor
 
Parallel-kmeans
Parallel-kmeansParallel-kmeans
Parallel-kmeans
Tien-Yang (Aiden) Wu
 
Daa unit 6_efficiency of algorithms
Daa unit 6_efficiency of algorithmsDaa unit 6_efficiency of algorithms
Daa unit 6_efficiency of algorithms
snehajiyani
 
Introduction to Algorithms Complexity Analysis
Introduction to Algorithms Complexity Analysis Introduction to Algorithms Complexity Analysis
Introduction to Algorithms Complexity Analysis
Dr. Pankaj Agarwal
 
A Load-Balanced Parallelization of AKS Algorithm
A Load-Balanced Parallelization of AKS AlgorithmA Load-Balanced Parallelization of AKS Algorithm
A Load-Balanced Parallelization of AKS Algorithm
TELKOMNIKA JOURNAL
 
Equivalent condition and two algorithms for hamiltonian graphs
Equivalent condition and two algorithms for hamiltonian graphsEquivalent condition and two algorithms for hamiltonian graphs
Equivalent condition and two algorithms for hamiltonian graphs
graphhoc
 
Algorithms Lecture 1: Introduction to Algorithms
Algorithms Lecture 1: Introduction to AlgorithmsAlgorithms Lecture 1: Introduction to Algorithms
Algorithms Lecture 1: Introduction to Algorithms
Mohamed Loey
 
Efficient asic architecture of rsa cryptosystem
Efficient asic architecture of rsa cryptosystemEfficient asic architecture of rsa cryptosystem
Efficient asic architecture of rsa cryptosystem
csandit
 
Data Structures and Algorithm Analysis
Data Structures  and  Algorithm AnalysisData Structures  and  Algorithm Analysis
Data Structures and Algorithm Analysis
Mary Margarat
 

What's hot (18)

JAIDEEP SINGH
JAIDEEP SINGHJAIDEEP SINGH
JAIDEEP SINGH
 
00454
0045400454
00454
 
PRAM algorithms from deepika
PRAM algorithms from deepikaPRAM algorithms from deepika
PRAM algorithms from deepika
 
Exact network reconstruction from consensus signals and one eigen value
Exact network reconstruction from consensus signals and one eigen valueExact network reconstruction from consensus signals and one eigen value
Exact network reconstruction from consensus signals and one eigen value
 
Shor's discrete logarithm quantum algorithm for elliptic curves
 Shor's discrete logarithm quantum algorithm for elliptic curves Shor's discrete logarithm quantum algorithm for elliptic curves
Shor's discrete logarithm quantum algorithm for elliptic curves
 
ICDE-2015 Shortest Path Traversal Optimization and Analysis for Large Graph C...
ICDE-2015 Shortest Path Traversal Optimization and Analysis for Large Graph C...ICDE-2015 Shortest Path Traversal Optimization and Analysis for Large Graph C...
ICDE-2015 Shortest Path Traversal Optimization and Analysis for Large Graph C...
 
C055011012
C055011012C055011012
C055011012
 
Analysis of Algorithms II - PS3
Analysis of Algorithms II - PS3Analysis of Algorithms II - PS3
Analysis of Algorithms II - PS3
 
Dueling Network Architectures for Deep Reinforcement Learning
Dueling Network Architectures for Deep Reinforcement LearningDueling Network Architectures for Deep Reinforcement Learning
Dueling Network Architectures for Deep Reinforcement Learning
 
M045077578
M045077578M045077578
M045077578
 
Parallel-kmeans
Parallel-kmeansParallel-kmeans
Parallel-kmeans
 
Daa unit 6_efficiency of algorithms
Daa unit 6_efficiency of algorithmsDaa unit 6_efficiency of algorithms
Daa unit 6_efficiency of algorithms
 
Introduction to Algorithms Complexity Analysis
Introduction to Algorithms Complexity Analysis Introduction to Algorithms Complexity Analysis
Introduction to Algorithms Complexity Analysis
 
A Load-Balanced Parallelization of AKS Algorithm
A Load-Balanced Parallelization of AKS AlgorithmA Load-Balanced Parallelization of AKS Algorithm
A Load-Balanced Parallelization of AKS Algorithm
 
Equivalent condition and two algorithms for hamiltonian graphs
Equivalent condition and two algorithms for hamiltonian graphsEquivalent condition and two algorithms for hamiltonian graphs
Equivalent condition and two algorithms for hamiltonian graphs
 
Algorithms Lecture 1: Introduction to Algorithms
Algorithms Lecture 1: Introduction to AlgorithmsAlgorithms Lecture 1: Introduction to Algorithms
Algorithms Lecture 1: Introduction to Algorithms
 
Efficient asic architecture of rsa cryptosystem
Efficient asic architecture of rsa cryptosystemEfficient asic architecture of rsa cryptosystem
Efficient asic architecture of rsa cryptosystem
 
Data Structures and Algorithm Analysis
Data Structures  and  Algorithm AnalysisData Structures  and  Algorithm Analysis
Data Structures and Algorithm Analysis
 

Similar to Cyclometic Criticisms

Modelling of ntc thermistor using artificial neural network for non linearity...
Modelling of ntc thermistor using artificial neural network for non linearity...Modelling of ntc thermistor using artificial neural network for non linearity...
Modelling of ntc thermistor using artificial neural network for non linearity...
ieijjournal
 
Cd32504509
Cd32504509Cd32504509
Cd32504509
IJERA Editor
 
Cd32504509
Cd32504509Cd32504509
Cd32504509
IJERA Editor
 
Performance analysis of machine learning approaches in software complexity pr...
Performance analysis of machine learning approaches in software complexity pr...Performance analysis of machine learning approaches in software complexity pr...
Performance analysis of machine learning approaches in software complexity pr...
Sayed Mohsin Reza
 
Ch1
Ch1Ch1
Complexity Analysis
Complexity Analysis Complexity Analysis
Complexity Analysis
Shaista Qadir
 
70
7070
Sorting_project_2.pdf
Sorting_project_2.pdfSorting_project_2.pdf
Sorting_project_2.pdf
VrushaliSathe2
 
DSP unit1,2,3 VSQs-vrc.pdf important question
DSP unit1,2,3 VSQs-vrc.pdf important questionDSP unit1,2,3 VSQs-vrc.pdf important question
DSP unit1,2,3 VSQs-vrc.pdf important question
Sahithikairamkonda
 
A Novel Algorithm on Wavelet Based Robust Invisible Digital Image Watermarkin...
A Novel Algorithm on Wavelet Based Robust Invisible Digital Image Watermarkin...A Novel Algorithm on Wavelet Based Robust Invisible Digital Image Watermarkin...
A Novel Algorithm on Wavelet Based Robust Invisible Digital Image Watermarkin...
IJERA Editor
 
OTP, Phishing, QR code, Shares, Visual Cryptography.
OTP, Phishing, QR code, Shares, Visual Cryptography.OTP, Phishing, QR code, Shares, Visual Cryptography.
OTP, Phishing, QR code, Shares, Visual Cryptography.
IJERA Editor
 
On Selection of Periodic Kernels Parameters in Time Series Prediction
On Selection of Periodic Kernels Parameters in Time Series Prediction On Selection of Periodic Kernels Parameters in Time Series Prediction
On Selection of Periodic Kernels Parameters in Time Series Prediction
cscpconf
 
ON SELECTION OF PERIODIC KERNELS PARAMETERS IN TIME SERIES PREDICTION
ON SELECTION OF PERIODIC KERNELS PARAMETERS IN TIME SERIES PREDICTIONON SELECTION OF PERIODIC KERNELS PARAMETERS IN TIME SERIES PREDICTION
ON SELECTION OF PERIODIC KERNELS PARAMETERS IN TIME SERIES PREDICTION
cscpconf
 
R18B.Tech.CSESyllabus.pdf
R18B.Tech.CSESyllabus.pdfR18B.Tech.CSESyllabus.pdf
R18B.Tech.CSESyllabus.pdf
VanajaVeeramalla
 
R18B.Tech.CSESyllabus.pdf
R18B.Tech.CSESyllabus.pdfR18B.Tech.CSESyllabus.pdf
R18B.Tech.CSESyllabus.pdf
KANDE ARCHANA
 
[Ris cy business]
[Ris cy business][Ris cy business]
[Ris cy business]
Dino, llc
 
Scalable Algorithm Design with MapReduce
Scalable Algorithm Design with MapReduceScalable Algorithm Design with MapReduce
Scalable Algorithm Design with MapReduce
Pietro Michiardi
 
Automatic Task-based Code Generation for High Performance DSEL
Automatic Task-based Code Generation for High Performance DSELAutomatic Task-based Code Generation for High Performance DSEL
Automatic Task-based Code Generation for High Performance DSEL
Joel Falcou
 
Belief Propagation Decoder for LDPC Codes Based on VLSI Implementation
Belief Propagation Decoder for LDPC Codes Based on VLSI ImplementationBelief Propagation Decoder for LDPC Codes Based on VLSI Implementation
Belief Propagation Decoder for LDPC Codes Based on VLSI Implementation
inventionjournals
 
A Hybrid Method of CART and Artificial Neural Network for Short Term Load For...
A Hybrid Method of CART and Artificial Neural Network for Short Term Load For...A Hybrid Method of CART and Artificial Neural Network for Short Term Load For...
A Hybrid Method of CART and Artificial Neural Network for Short Term Load For...
Salford Systems
 

Similar to Cyclometic Criticisms (20)

Modelling of ntc thermistor using artificial neural network for non linearity...
Modelling of ntc thermistor using artificial neural network for non linearity...Modelling of ntc thermistor using artificial neural network for non linearity...
Modelling of ntc thermistor using artificial neural network for non linearity...
 
Cd32504509
Cd32504509Cd32504509
Cd32504509
 
Cd32504509
Cd32504509Cd32504509
Cd32504509
 
Performance analysis of machine learning approaches in software complexity pr...
Performance analysis of machine learning approaches in software complexity pr...Performance analysis of machine learning approaches in software complexity pr...
Performance analysis of machine learning approaches in software complexity pr...
 
Ch1
Ch1Ch1
Ch1
 
Complexity Analysis
Complexity Analysis Complexity Analysis
Complexity Analysis
 
70
7070
70
 
Sorting_project_2.pdf
Sorting_project_2.pdfSorting_project_2.pdf
Sorting_project_2.pdf
 
DSP unit1,2,3 VSQs-vrc.pdf important question
DSP unit1,2,3 VSQs-vrc.pdf important questionDSP unit1,2,3 VSQs-vrc.pdf important question
DSP unit1,2,3 VSQs-vrc.pdf important question
 
A Novel Algorithm on Wavelet Based Robust Invisible Digital Image Watermarkin...
A Novel Algorithm on Wavelet Based Robust Invisible Digital Image Watermarkin...A Novel Algorithm on Wavelet Based Robust Invisible Digital Image Watermarkin...
A Novel Algorithm on Wavelet Based Robust Invisible Digital Image Watermarkin...
 
OTP, Phishing, QR code, Shares, Visual Cryptography.
OTP, Phishing, QR code, Shares, Visual Cryptography.OTP, Phishing, QR code, Shares, Visual Cryptography.
OTP, Phishing, QR code, Shares, Visual Cryptography.
 
On Selection of Periodic Kernels Parameters in Time Series Prediction
On Selection of Periodic Kernels Parameters in Time Series Prediction On Selection of Periodic Kernels Parameters in Time Series Prediction
On Selection of Periodic Kernels Parameters in Time Series Prediction
 
ON SELECTION OF PERIODIC KERNELS PARAMETERS IN TIME SERIES PREDICTION
ON SELECTION OF PERIODIC KERNELS PARAMETERS IN TIME SERIES PREDICTIONON SELECTION OF PERIODIC KERNELS PARAMETERS IN TIME SERIES PREDICTION
ON SELECTION OF PERIODIC KERNELS PARAMETERS IN TIME SERIES PREDICTION
 
R18B.Tech.CSESyllabus.pdf
R18B.Tech.CSESyllabus.pdfR18B.Tech.CSESyllabus.pdf
R18B.Tech.CSESyllabus.pdf
 
R18B.Tech.CSESyllabus.pdf
R18B.Tech.CSESyllabus.pdfR18B.Tech.CSESyllabus.pdf
R18B.Tech.CSESyllabus.pdf
 
[Ris cy business]
[Ris cy business][Ris cy business]
[Ris cy business]
 
Scalable Algorithm Design with MapReduce
Scalable Algorithm Design with MapReduceScalable Algorithm Design with MapReduce
Scalable Algorithm Design with MapReduce
 
Automatic Task-based Code Generation for High Performance DSEL
Automatic Task-based Code Generation for High Performance DSELAutomatic Task-based Code Generation for High Performance DSEL
Automatic Task-based Code Generation for High Performance DSEL
 
Belief Propagation Decoder for LDPC Codes Based on VLSI Implementation
Belief Propagation Decoder for LDPC Codes Based on VLSI ImplementationBelief Propagation Decoder for LDPC Codes Based on VLSI Implementation
Belief Propagation Decoder for LDPC Codes Based on VLSI Implementation
 
A Hybrid Method of CART and Artificial Neural Network for Short Term Load For...
A Hybrid Method of CART and Artificial Neural Network for Short Term Load For...A Hybrid Method of CART and Artificial Neural Network for Short Term Load For...
A Hybrid Method of CART and Artificial Neural Network for Short Term Load For...
 

Recently uploaded

5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
LucaBarbaro3
 
Operating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptxOperating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptx
Pravash Chandra Das
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
saastr
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStrDeep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
saastr
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
Hiike
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
HarisZaheer8
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 

Recently uploaded (20)

5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
 
Operating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptxOperating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptx
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStrDeep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 

Cyclometic Criticisms

  • 1. A critique of cyclomatic complexity as a software metric by Martin Shepperd Software Engineering Journal March 1988 Presented By: Tameem Ahmad M.Tech. Student Z.H.C.E.T. A.M.U.,Aligarh Copyright, 1996 © Dale Carnegie & Associates, Inc.
  • 2. Overview • Introduction • Overview of Cyclomatic Complexity • Theoretical assumptions that reasoned for objection • Modification Suggested • Conclusion Martin Shepperd, Software Engineering Journal March 1988 2
  • 3. Introduction ‘Halstead’s Software Science’ Cyclomatic Complexity approach of MacCabe Martin Shepperd, Software Engineering Journal March 1988 3
  • 4. Overview of the Cyclomatic Complexity Metric Control Path is the indicator v(G) = e - n + 1 (1) v(S) = e - n + 2p (2) IF X < 1 AND Y <2 THEN Case statements (n-1) n is the no. of cases Upper limit v(G)=10 suggested with some relaxations. Martin Shepperd, Software Engineering Journal March 1988 4
  • 5. Controversy (1) On the basis of the counting rule Myers interval Thus the failure of cyclomatic complexity to count ELSE branches is only a serious deficiency if the metric is intended to Capture complexity of comprehension. Martin Shepperd, Software Engineering Journal March 1988 5
  • 6. Controversy (2); on count of case Hansen (count case contribution to the complexity should be one) raises the question on the count of the cases Other have suggested as log2(n) Martin Shepperd, Software Engineering Journal March 1988 6
  • 7. Controversy (3); (modification) Hansen proposed 2-tuple cyclomtic complexity(defined to be arithmetical operators, function and subroutine calls, assignments, input and output statements and array subscription). Discarded by Baker and Zweben as the problem to comparision. Martin Shepperd, Software Engineering Journal March 1988 7
  • 8. Controversy (4) ; (modification) Stetter suggested cyclometic flow complexity metric. (flow of data is also considered her) Martin Shepperd, Software Engineering Journal March 1988 8
  • 9. Controversy (5) Based on no. of structured With increase of program structure cyclometic complexity aslo increases. Martin Shepperd, Software Engineering Journal March 1988 9
  • 10. Controversy (6) ; a critical one Evangelist reports that the application of only 2 out of 26 of Kernighan and Plauger’s rules of good programming style invariably results in a decrease in cyclomatic complexity. Martin Shepperd, Software Engineering Journal March 1988 10
  • 11. Conclusion Much of the difficulty stems from the fact that McCabe was originally thinking in terms of Fortran, whereas most of these difficulties arise from other languages, some of them more recent, such as Ada Here one has to contend with problems such as distinguishing between ‘IF y = 1 ORy = 3’ and IF y = 0 OR ELSE x/y>1. the mapping from code to a program graph is ambiguous. Martin Shepperd, Software Engineering Journal March 1988 11