Soumettre la recherche
Mettre en ligne
ABC Size - An Easy Code Complexity Metric
•
0 j'aime
•
4 vues
David Doolin
Suivre
A very short presentation for demonstrating ABC Size, a software code complexity measure.
Lire moins
Lire la suite
Ingénierie
Signaler
Partager
Signaler
Partager
1 sur 22
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
0580_w19_qp_42 (1).pdf
0580_w19_qp_42 (1).pdf
NoliKAgathiaAmbarita
BSOP 330 Entire Course NEW
BSOP 330 Entire Course NEW
shyamuopuop
1 f7 on cross-multiplication
1 f7 on cross-multiplication
math123a
Teoria y problemas de numeros racionales qa49 ccesa007
Teoria y problemas de numeros racionales qa49 ccesa007
Demetrio Ccesa Rayme
Teoria y problemas de numeros racionales QA113 ccesa007
Teoria y problemas de numeros racionales QA113 ccesa007
Demetrio Ccesa Rayme
Teoria y problemas de numeros racionales qa39 ccesa007
Teoria y problemas de numeros racionales qa39 ccesa007
Demetrio Ccesa Rayme
Speeding Up Distributed Machine Learning Using Codes
Speeding Up Distributed Machine Learning Using Codes
NAVER Engineering
Guia subneteo-de-redes-hbcnlf
Guia subneteo-de-redes-hbcnlf
PIERINELLI
Recommandé
0580_w19_qp_42 (1).pdf
0580_w19_qp_42 (1).pdf
NoliKAgathiaAmbarita
BSOP 330 Entire Course NEW
BSOP 330 Entire Course NEW
shyamuopuop
1 f7 on cross-multiplication
1 f7 on cross-multiplication
math123a
Teoria y problemas de numeros racionales qa49 ccesa007
Teoria y problemas de numeros racionales qa49 ccesa007
Demetrio Ccesa Rayme
Teoria y problemas de numeros racionales QA113 ccesa007
Teoria y problemas de numeros racionales QA113 ccesa007
Demetrio Ccesa Rayme
Teoria y problemas de numeros racionales qa39 ccesa007
Teoria y problemas de numeros racionales qa39 ccesa007
Demetrio Ccesa Rayme
Speeding Up Distributed Machine Learning Using Codes
Speeding Up Distributed Machine Learning Using Codes
NAVER Engineering
Guia subneteo-de-redes-hbcnlf
Guia subneteo-de-redes-hbcnlf
PIERINELLI
Introduction to MATLAB Programming and Numerical Methods for Engineers 1st Ed...
Introduction to MATLAB Programming and Numerical Methods for Engineers 1st Ed...
AmeryWalters
Testes automatizados o time e o cliente saem ganhando! @ Agile Vale 2014
Testes automatizados o time e o cliente saem ganhando! @ Agile Vale 2014
Mauro George
Run Your Business 6X Faster at Lower Costs!
Run Your Business 6X Faster at Lower Costs!
Scott Hayes
Data Mining: Concepts and Techniques (3rd ed.)— Chapter 5
Data Mining: Concepts and Techniques (3rd ed.)— Chapter 5
Salah Amean
05 practice paper_3_h_set_a
05 practice paper_3_h_set_a
claire meadows-smith
Scilabisnotnaive
Scilabisnotnaive
zan
Scilab is not naive
Scilab is not naive
Scilab
Teoria y problemas de numeros racionales qa412 ccesa007
Teoria y problemas de numeros racionales qa412 ccesa007
Demetrio Ccesa Rayme
0580_w14_qp_22
0580_w14_qp_22
King Ali
igcse_edexcel_math-_gold_qp1_-igcse_9-1_.pdf
igcse_edexcel_math-_gold_qp1_-igcse_9-1_.pdf
TeenaSheikh
0580 s17 qp_42 exam - copy
0580 s17 qp_42 exam - copy
mend Oyunchimeg
Assembly Codes in C Programmes - A Short Notes by Arun Umrao
Assembly Codes in C Programmes - A Short Notes by Arun Umrao
ssuserd6b1fd
Tdd for BT E2E test community
Tdd for BT E2E test community
Kerry Buckley
CYB 130 Education Specialist |tutorialrank.com
CYB 130 Education Specialist |tutorialrank.com
ladworkspaces
Teoria y problemas de numeros racionales qa312 ccesa007
Teoria y problemas de numeros racionales qa312 ccesa007
Demetrio Ccesa Rayme
0580 s15 qp_11 (1)
0580 s15 qp_11 (1)
María Soledad Di Paolo
Monte Carlo Simulation for project estimates v1.0
Monte Carlo Simulation for project estimates v1.0
PMILebanonChapter
Microsoft interview walkthrough
Microsoft interview walkthrough
Aayush Bahuguna
PA 1c. Decision VariablesabcdCalculated values0.21110.531110.09760.docx
PA 1c. Decision VariablesabcdCalculated values0.21110.531110.09760.docx
gerardkortney
Unsupervised learning
Unsupervised learning
AlexAman1
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
Call Girls in Nagpur High Profile
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
ranjana rawat
Contenu connexe
Similaire à ABC Size - An Easy Code Complexity Metric
Introduction to MATLAB Programming and Numerical Methods for Engineers 1st Ed...
Introduction to MATLAB Programming and Numerical Methods for Engineers 1st Ed...
AmeryWalters
Testes automatizados o time e o cliente saem ganhando! @ Agile Vale 2014
Testes automatizados o time e o cliente saem ganhando! @ Agile Vale 2014
Mauro George
Run Your Business 6X Faster at Lower Costs!
Run Your Business 6X Faster at Lower Costs!
Scott Hayes
Data Mining: Concepts and Techniques (3rd ed.)— Chapter 5
Data Mining: Concepts and Techniques (3rd ed.)— Chapter 5
Salah Amean
05 practice paper_3_h_set_a
05 practice paper_3_h_set_a
claire meadows-smith
Scilabisnotnaive
Scilabisnotnaive
zan
Scilab is not naive
Scilab is not naive
Scilab
Teoria y problemas de numeros racionales qa412 ccesa007
Teoria y problemas de numeros racionales qa412 ccesa007
Demetrio Ccesa Rayme
0580_w14_qp_22
0580_w14_qp_22
King Ali
igcse_edexcel_math-_gold_qp1_-igcse_9-1_.pdf
igcse_edexcel_math-_gold_qp1_-igcse_9-1_.pdf
TeenaSheikh
0580 s17 qp_42 exam - copy
0580 s17 qp_42 exam - copy
mend Oyunchimeg
Assembly Codes in C Programmes - A Short Notes by Arun Umrao
Assembly Codes in C Programmes - A Short Notes by Arun Umrao
ssuserd6b1fd
Tdd for BT E2E test community
Tdd for BT E2E test community
Kerry Buckley
CYB 130 Education Specialist |tutorialrank.com
CYB 130 Education Specialist |tutorialrank.com
ladworkspaces
Teoria y problemas de numeros racionales qa312 ccesa007
Teoria y problemas de numeros racionales qa312 ccesa007
Demetrio Ccesa Rayme
0580 s15 qp_11 (1)
0580 s15 qp_11 (1)
María Soledad Di Paolo
Monte Carlo Simulation for project estimates v1.0
Monte Carlo Simulation for project estimates v1.0
PMILebanonChapter
Microsoft interview walkthrough
Microsoft interview walkthrough
Aayush Bahuguna
PA 1c. Decision VariablesabcdCalculated values0.21110.531110.09760.docx
PA 1c. Decision VariablesabcdCalculated values0.21110.531110.09760.docx
gerardkortney
Unsupervised learning
Unsupervised learning
AlexAman1
Similaire à ABC Size - An Easy Code Complexity Metric
(20)
Introduction to MATLAB Programming and Numerical Methods for Engineers 1st Ed...
Introduction to MATLAB Programming and Numerical Methods for Engineers 1st Ed...
Testes automatizados o time e o cliente saem ganhando! @ Agile Vale 2014
Testes automatizados o time e o cliente saem ganhando! @ Agile Vale 2014
Run Your Business 6X Faster at Lower Costs!
Run Your Business 6X Faster at Lower Costs!
Data Mining: Concepts and Techniques (3rd ed.)— Chapter 5
Data Mining: Concepts and Techniques (3rd ed.)— Chapter 5
05 practice paper_3_h_set_a
05 practice paper_3_h_set_a
Scilabisnotnaive
Scilabisnotnaive
Scilab is not naive
Scilab is not naive
Teoria y problemas de numeros racionales qa412 ccesa007
Teoria y problemas de numeros racionales qa412 ccesa007
0580_w14_qp_22
0580_w14_qp_22
igcse_edexcel_math-_gold_qp1_-igcse_9-1_.pdf
igcse_edexcel_math-_gold_qp1_-igcse_9-1_.pdf
0580 s17 qp_42 exam - copy
0580 s17 qp_42 exam - copy
Assembly Codes in C Programmes - A Short Notes by Arun Umrao
Assembly Codes in C Programmes - A Short Notes by Arun Umrao
Tdd for BT E2E test community
Tdd for BT E2E test community
CYB 130 Education Specialist |tutorialrank.com
CYB 130 Education Specialist |tutorialrank.com
Teoria y problemas de numeros racionales qa312 ccesa007
Teoria y problemas de numeros racionales qa312 ccesa007
0580 s15 qp_11 (1)
0580 s15 qp_11 (1)
Monte Carlo Simulation for project estimates v1.0
Monte Carlo Simulation for project estimates v1.0
Microsoft interview walkthrough
Microsoft interview walkthrough
PA 1c. Decision VariablesabcdCalculated values0.21110.531110.09760.docx
PA 1c. Decision VariablesabcdCalculated values0.21110.531110.09760.docx
Unsupervised learning
Unsupervised learning
Dernier
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
Call Girls in Nagpur High Profile
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
ranjana rawat
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
ranjana rawat
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
ranjana rawat
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
ranjana rawat
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls in Nagpur High Profile
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Christo Ananth
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Dr.Costas Sachpazis
Extrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
120cr0395
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Call Girls in Nagpur High Profile
result management system report for college project
result management system report for college project
Tonystark477637
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
9953056974 Low Rate Call Girls In Saket, Delhi NCR
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
sivaprakash250
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur High Profile
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
SIVASHANKAR N
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
Asutosh Ranjan
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
ranjana rawat
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
Soham Mondal
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
M Maged Hegazy, LLM, MBA, CCP, P3O
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSIS
rknatarajan
Dernier
(20)
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Extrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
result management system report for college project
result management system report for college project
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSIS
ABC Size - An Easy Code Complexity Metric
1.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ABC Size Dave Doolin A
code complexity metric, easy as 1-2-3. April 21, 2024 ABC Sise
2.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ABC Size Assignment, Branch,
Condition Definition of ABC Size: √ A2 +B2 +C2 A: Assignment B: Branch (method calls) C: Conditional ABC Sise
3.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rubocop ftw For demonstration purposes,
we’ll set Metrics/AbcSize to 0. 1 # Just enough rubocop for demonstration 2 3 AllCops: 4 NewCops: enable 5 6 Style/FrozenStringLiteralComment: 7 Enabled: false 8 9 # Set to 0 to force output 10 Metrics/AbcSize: 11 Max: 0 ABC Sise
4.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example Let’s count! 1 #
Demonstration of ABC Size 2 class AbcSize 3 def demonstrate 4 a = 'foo' 5 b = 'bar' 6 c = rand(2).even? ? 'baz' : 'quux' 7 a + b + c # a.+ b.+ c 8 end 9 end ABC Sise
5.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example Let’s count! 1 #
Demonstration of ABC Size 2 class AbcSize 3 def demonstrate 4 a = 'foo' 5 b = 'bar' 6 c = rand(2).even? ? 'baz' : 'quux' 7 a + b + c # a.+ b.+ c 8 end 9 end Assignments: ABC Sise
6.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example Let’s count! 1 #
Demonstration of ABC Size 2 class AbcSize 3 def demonstrate 4 a = 'foo' 5 b = 'bar' 6 c = rand(2).even? ? 'baz' : 'quux' 7 a + b + c # a.+ b.+ c 8 end 9 end Assignments: 3 ABC Sise
7.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example Let’s count! 1 #
Demonstration of ABC Size 2 class AbcSize 3 def demonstrate 4 a = 'foo' 5 b = 'bar' 6 c = rand(2).even? ? 'baz' : 'quux' 7 a + b + c # a.+ b.+ c 8 end 9 end Assignments: 3 Branches: ABC Sise
8.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example Let’s count! 1 #
Demonstration of ABC Size 2 class AbcSize 3 def demonstrate 4 a = 'foo' 5 b = 'bar' 6 c = rand(2).even? ? 'baz' : 'quux' 7 a + b + c # a.+ b.+ c 8 end 9 end Assignments: 3 Branches: 4 ABC Sise
9.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example Let’s count! 1 #
Demonstration of ABC Size 2 class AbcSize 3 def demonstrate 4 a = 'foo' 5 b = 'bar' 6 c = rand(2).even? ? 'baz' : 'quux' 7 a + b + c # a.+ b.+ c 8 end 9 end Assignments: 3 Branches: 4 Conditionals: ABC Sise
10.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example Let’s count! 1 #
Demonstration of ABC Size 2 class AbcSize 3 def demonstrate 4 a = 'foo' 5 b = 'bar' 6 c = rand(2).even? ? 'baz' : 'quux' 7 a + b + c # a.+ b.+ c 8 end 9 end Assignments: 3 Branches: 4 Conditionals: 1 ABC Sise
11.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example Let’s count! 1 #
Demonstration of ABC Size 2 class AbcSize 3 def demonstrate 4 a = 'foo' 5 b = 'bar' 6 c = rand(2).even? ? 'baz' : 'quux' 7 a + b + c # a.+ b.+ c 8 end 9 end Assignments: 3 Branches: 4 Conditionals: 1 AbcSize: ABC Sise
12.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example Let’s count! 1 #
Demonstration of ABC Size 2 class AbcSize 3 def demonstrate 4 a = 'foo' 5 b = 'bar' 6 c = rand(2).even? ? 'baz' : 'quux' 7 a + b + c # a.+ b.+ c 8 end 9 end Assignments: 3 Branches: 4 Conditionals: 1 AbcSize: √ 26 ≈ 5.1 ABC Sise
13.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . What does Rubocop
say? code/abc_size.rb : 6 : 3 : C: Metrics/AbcSize : Assignment Branch Condition s i z e f o r demonstrate i s too high . [<3, 4 , 1> 5.1/0] ABC Sise
14.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reducing ABC Size For
Ruby, use Rubocop The main way to reduce ABC size is refactoring. It’s that simple. ABC Sise
15.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reducing ABC Size For
Ruby, use Rubocop The main way to reduce ABC size is refactoring. It’s that simple. Well-factored programs tend to have lower ABC Size. ABC Sise
16.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reducing ABC Size For
Ruby, use Rubocop The main way to reduce ABC size is refactoring. It’s that simple. Well-factored programs tend to have lower ABC Size. It’s really that simple. ABC Sise
17.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . One major caveat... ...you
have to do the work THE MOST IMPORTANT PART IS TO ENABLE THE METRIC! ABC Sise
18.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . One major caveat... ...you
have to do the work THE MOST IMPORTANT PART IS TO ENABLE THE METRIC! 1 Metrics/AbcSize: 2 Enabled: true 3 Max: 15 # Rubocop default ABC Sise
19.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Other complexity measures Same
code, different information Others for later: • Cyclomatic (McCabe) Complexity • Perceived Complexity • LCOM (Lack of Cohesion of Methods) ABC Sise
20.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Have fun! and remember ABC
is a simple metric, it’s not a silver bullet. Not every method is amenable to low ABC size. It’s a tool, and very good tool at that. ABC Sise
21.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . References • ABC Software
Metric • Rubocop default.yml • C2 Wiki: AbcMetric ABC Sise
22.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Questions? ABC Sise
Télécharger maintenant