SlideShare ist ein Scribd-Unternehmen logo
1 von 21
On Automatically Collectable Metrics 
for Software 
Maintainability Evaluation 
Jan-Peter Ostberg 
& 
Stefan Wagner
Maintenance Worker 
Assessment of 
Maintenance Work
(metrics maintenance) OR 
(maintenance measure) AND 
Software OR 
maintainability
12 
11 
10 
9 
8 
7 
6 
5 
4 
3 
2 
1 
0
What defines a good measure?
Easy to understand… 
…, but also accurate.
Easy to Use
Often mentioned metrics… 
… but not practical ones.
McCabe 
if( P1 ){ 
if( P2 ){ 
expression2; 
}else{ 
expression3; 
}else{ 
expression1;} 
if((P1 && P2 && !P3)||(P1 && P3 && P4)){ 
if((P5 && P6 && P7)||(!P5 && !P7)){ 
expression2; 
}else{ 
expression3; 
}else{ 
expression1;} 
Code on bottom is 
clearly more complex. 
McCabe for both = 3
Halstead Software Science 
Program Volume: V = N x log2 h 
h N 
1 2 
2 h 
2 
D   
Implementation time: 
D V 
18 
T 
 
 
18 
elementary 
decisions per 
second 
Difficulty of a Program:
Lines of Code 
What is the LoC value here? 
public String tellMeEqual (int a, int b){ 
String result = „undefined“; 
if (a > b){ 
result = „a is larger“; 
} else { 
if(a == b) { 
result = „a is equal“; 
} else { 
result = „b is larger“; 
} 
} 
return result; 
} 
13? 
5?
Lines of Code
Maintainability Index 
HalsteadVolume McCabe 
 171  5.2  ln( )  0.23 
 
LoC CommentPercentage 
     
16.2 ln( ) (50 sin( 2.46 ) 
)) 
100 
171 
Simplified Version: 
 MAX(0, (1715.2log(HalsteadVolume) 0.23McCabe16.2log(LoC)
We need 
better 
ways to 
measure 
our 
software!
Suggestion: Nesting Depth 
if(P==1){ 
expression1; 
}else{ 
if(P==2){ 
expression2; 
}else{ 
if(P==3){ 
expression3;} 
} 
} 
Nesting depth = 3 
Switch(P){ 
case 1: 
expression1; 
break; 
case 2: 
expression2; 
break; 
case 3: 
expression3; 
break;} 
Nesting depth = 1
giphy.com 
Suggestion: Clone-Ration 
„…every second 
unintentional 
inconsistency between 
clones constitutes to a 
fault…” 
Juergens et al. „Do code clones matter?“
Suggestion: Bug-Patterns 
• Bug-Detection-Tools 
are getting really 
good. 
• Low amount of 
findings implies 
better 
maintainability
Suggestion: Test Results and Coverage 
http://testing.gobanana.co.uk 
• More tests + high 
coverage implies code is 
test-friendly 
• Ignored test results are 
a hint for not 
understood code parts 
• Tests encourage the 
maintenance of code
Conclusion 
• The blindfolded usage of maintenance metrics is problematic. 
• There are useful and accurate maintenance metrics. 
• The metrics should be collected automatically.
For more, please read our paper!
Thank you for your attention!

Weitere ähnliche Inhalte

Was ist angesagt?

System integration through queues
System integration through queuesSystem integration through queues
System integration through queuesGianluca Padovani
 
OS Process Synchronization, semaphore and Monitors
OS Process Synchronization, semaphore and MonitorsOS Process Synchronization, semaphore and Monitors
OS Process Synchronization, semaphore and Monitorssgpraju
 
Black-box Behavioral Model Inference for Autopilot Software Systems
Black-box Behavioral Model Inference for Autopilot Software SystemsBlack-box Behavioral Model Inference for Autopilot Software Systems
Black-box Behavioral Model Inference for Autopilot Software SystemsMohammad Jafar Mashhadi
 
Hybrid Deep Neural Networks to Infer State Models of Black-Box Systems​
Hybrid Deep Neural Networks to Infer State Models of Black-Box Systems​Hybrid Deep Neural Networks to Infer State Models of Black-Box Systems​
Hybrid Deep Neural Networks to Infer State Models of Black-Box Systems​Mohammad Jafar Mashhadi
 
An Empirical Study On Practicality Of Specification Mining Algorithms On A Re...
An Empirical Study On Practicality Of Specification Mining Algorithms On A Re...An Empirical Study On Practicality Of Specification Mining Algorithms On A Re...
An Empirical Study On Practicality Of Specification Mining Algorithms On A Re...Mohammad Jafar Mashhadi
 
Notes: Verilog Part 1 - Overview - Hierarchical Modeling Concepts - Basics
Notes: Verilog Part 1 - Overview - Hierarchical Modeling Concepts - BasicsNotes: Verilog Part 1 - Overview - Hierarchical Modeling Concepts - Basics
Notes: Verilog Part 1 - Overview - Hierarchical Modeling Concepts - BasicsJay Baxi
 
Clean code
Clean codeClean code
Clean codeTony Vu
 
ClockSystem: Embedding Time in Smalltalk
ClockSystem: Embedding Time in SmalltalkClockSystem: Embedding Time in Smalltalk
ClockSystem: Embedding Time in SmalltalkESUG
 
Good news, everybody! Guile 2.2 performance notes (FOSDEM 2016)
Good news, everybody! Guile 2.2 performance notes (FOSDEM 2016)Good news, everybody! Guile 2.2 performance notes (FOSDEM 2016)
Good news, everybody! Guile 2.2 performance notes (FOSDEM 2016)Igalia
 
Peterson Critical Section Problem Solution
Peterson Critical Section Problem SolutionPeterson Critical Section Problem Solution
Peterson Critical Section Problem SolutionBipul Chandra Kar
 
Solution of a Problem in Concurrent Programming Control : Notes
Solution of a Problem in Concurrent Programming Control : NotesSolution of a Problem in Concurrent Programming Control : Notes
Solution of a Problem in Concurrent Programming Control : NotesSubhajit Sahu
 
ECMAScript 2017
ECMAScript 2017ECMAScript 2017
ECMAScript 2017max peng
 

Was ist angesagt? (19)

An effective RC4 Stream Cipher
An effective RC4 Stream CipherAn effective RC4 Stream Cipher
An effective RC4 Stream Cipher
 
OS_Ch7
OS_Ch7OS_Ch7
OS_Ch7
 
System integration through queues
System integration through queuesSystem integration through queues
System integration through queues
 
C# p7
C# p7C# p7
C# p7
 
OS Process Synchronization, semaphore and Monitors
OS Process Synchronization, semaphore and MonitorsOS Process Synchronization, semaphore and Monitors
OS Process Synchronization, semaphore and Monitors
 
Black-box Behavioral Model Inference for Autopilot Software Systems
Black-box Behavioral Model Inference for Autopilot Software SystemsBlack-box Behavioral Model Inference for Autopilot Software Systems
Black-box Behavioral Model Inference for Autopilot Software Systems
 
Hybrid Deep Neural Networks to Infer State Models of Black-Box Systems​
Hybrid Deep Neural Networks to Infer State Models of Black-Box Systems​Hybrid Deep Neural Networks to Infer State Models of Black-Box Systems​
Hybrid Deep Neural Networks to Infer State Models of Black-Box Systems​
 
An Empirical Study On Practicality Of Specification Mining Algorithms On A Re...
An Empirical Study On Practicality Of Specification Mining Algorithms On A Re...An Empirical Study On Practicality Of Specification Mining Algorithms On A Re...
An Empirical Study On Practicality Of Specification Mining Algorithms On A Re...
 
Notes: Verilog Part 1 - Overview - Hierarchical Modeling Concepts - Basics
Notes: Verilog Part 1 - Overview - Hierarchical Modeling Concepts - BasicsNotes: Verilog Part 1 - Overview - Hierarchical Modeling Concepts - Basics
Notes: Verilog Part 1 - Overview - Hierarchical Modeling Concepts - Basics
 
Clean code
Clean codeClean code
Clean code
 
ClockSystem: Embedding Time in Smalltalk
ClockSystem: Embedding Time in SmalltalkClockSystem: Embedding Time in Smalltalk
ClockSystem: Embedding Time in Smalltalk
 
Compiler lec 2
Compiler lec 2Compiler lec 2
Compiler lec 2
 
Lecture 10
Lecture 10Lecture 10
Lecture 10
 
Good news, everybody! Guile 2.2 performance notes (FOSDEM 2016)
Good news, everybody! Guile 2.2 performance notes (FOSDEM 2016)Good news, everybody! Guile 2.2 performance notes (FOSDEM 2016)
Good news, everybody! Guile 2.2 performance notes (FOSDEM 2016)
 
Peterson Critical Section Problem Solution
Peterson Critical Section Problem SolutionPeterson Critical Section Problem Solution
Peterson Critical Section Problem Solution
 
Solution of a Problem in Concurrent Programming Control : Notes
Solution of a Problem in Concurrent Programming Control : NotesSolution of a Problem in Concurrent Programming Control : Notes
Solution of a Problem in Concurrent Programming Control : Notes
 
Coupling
CouplingCoupling
Coupling
 
ECMAScript 2017
ECMAScript 2017ECMAScript 2017
ECMAScript 2017
 
Johnson Trotter Algorithm(Permutation)
Johnson Trotter Algorithm(Permutation)Johnson Trotter Algorithm(Permutation)
Johnson Trotter Algorithm(Permutation)
 

Andere mochten auch

Iwsm2014 lies damned lies & software metrics (charles symons)
Iwsm2014   lies damned lies & software metrics (charles symons)Iwsm2014   lies damned lies & software metrics (charles symons)
Iwsm2014 lies damned lies & software metrics (charles symons)Nesma
 
Cost Engineering in Aerospace and Defense
Cost Engineering in Aerospace and DefenseCost Engineering in Aerospace and Defense
Cost Engineering in Aerospace and DefenseNesma
 
Iwsm2014 analysis of the per-unit work effort and per-unit work cost of the...
Iwsm2014   analysis of the per-unit work effort and per-unit work cost of the...Iwsm2014   analysis of the per-unit work effort and per-unit work cost of the...
Iwsm2014 analysis of the per-unit work effort and per-unit work cost of the...Nesma
 
Nesma autumn conference - Outsourcing needs software measurement - Werner Hei...
Nesma autumn conference - Outsourcing needs software measurement - Werner Hei...Nesma autumn conference - Outsourcing needs software measurement - Werner Hei...
Nesma autumn conference - Outsourcing needs software measurement - Werner Hei...Nesma
 
Iwsm2014 conference diner (eric van der vliet)
Iwsm2014   conference diner (eric van der vliet)Iwsm2014   conference diner (eric van der vliet)
Iwsm2014 conference diner (eric van der vliet)Nesma
 
Iwsm2014 defect density measurements using cosmic (thomas fehlmann)
Iwsm2014   defect density measurements using cosmic (thomas fehlmann)Iwsm2014   defect density measurements using cosmic (thomas fehlmann)
Iwsm2014 defect density measurements using cosmic (thomas fehlmann)Nesma
 
Estimation in the Tendering Process - Frank Vogelezang
Estimation in the Tendering Process - Frank VogelezangEstimation in the Tendering Process - Frank Vogelezang
Estimation in the Tendering Process - Frank VogelezangNesma
 
Iwsm2014 sizing the entire development process (mauricio aguiar & luigi bug...
Iwsm2014   sizing the entire development process (mauricio aguiar & luigi bug...Iwsm2014   sizing the entire development process (mauricio aguiar & luigi bug...
Iwsm2014 sizing the entire development process (mauricio aguiar & luigi bug...Nesma
 
IWSM2014 MEGSUS14 - A general overview of software sustainability measureme...
IWSM2014   MEGSUS14 - A general overview of software sustainability measureme...IWSM2014   MEGSUS14 - A general overview of software sustainability measureme...
IWSM2014 MEGSUS14 - A general overview of software sustainability measureme...Nesma
 
Begroten als het model = de applicatie = de documentatie - Gerard Ohm - NESMA...
Begroten als het model = de applicatie = de documentatie - Gerard Ohm - NESMA...Begroten als het model = de applicatie = de documentatie - Gerard Ohm - NESMA...
Begroten als het model = de applicatie = de documentatie - Gerard Ohm - NESMA...Nesma
 
Iwsm2014 identifying and managing complex modules in executable software de...
Iwsm2014   identifying and managing complex modules in executable software de...Iwsm2014   identifying and managing complex modules in executable software de...
Iwsm2014 identifying and managing complex modules in executable software de...Nesma
 
Metrics & Beheer
Metrics & BeheerMetrics & Beheer
Metrics & BeheerNesma
 
Status van de brede review gebruiksgids SOA - Martin Jacobs - NESMA najaarsbi...
Status van de brede review gebruiksgids SOA - Martin Jacobs - NESMA najaarsbi...Status van de brede review gebruiksgids SOA - Martin Jacobs - NESMA najaarsbi...
Status van de brede review gebruiksgids SOA - Martin Jacobs - NESMA najaarsbi...Nesma
 
NESMA 2020
NESMA 2020NESMA 2020
NESMA 2020Nesma
 
Posters presented at the NESMA fall conference
Posters presented at the NESMA fall conferencePosters presented at the NESMA fall conference
Posters presented at the NESMA fall conferenceNesma
 
Iwsm2014 measuring the functional size of mobile apps with cosmic (harold v...
Iwsm2014   measuring the functional size of mobile apps with cosmic (harold v...Iwsm2014   measuring the functional size of mobile apps with cosmic (harold v...
Iwsm2014 measuring the functional size of mobile apps with cosmic (harold v...Nesma
 
IWSM2014 IT confidence - How to ensure that valid and current industry data ...
IWSM2014  IT confidence - How to ensure that valid and current industry data ...IWSM2014  IT confidence - How to ensure that valid and current industry data ...
IWSM2014 IT confidence - How to ensure that valid and current industry data ...Nesma
 
Nesma autumn conference 2015 - Agile x FPA - Reflections about solution in a ...
Nesma autumn conference 2015 - Agile x FPA - Reflections about solution in a ...Nesma autumn conference 2015 - Agile x FPA - Reflections about solution in a ...
Nesma autumn conference 2015 - Agile x FPA - Reflections about solution in a ...Nesma
 
IWSM2014 MEGSUS14 - GQM on energy for SaaS - CETIC
IWSM2014   MEGSUS14 - GQM on energy for SaaS - CETICIWSM2014   MEGSUS14 - GQM on energy for SaaS - CETIC
IWSM2014 MEGSUS14 - GQM on energy for SaaS - CETICNesma
 
Iwsm2014 the effect of highlighting error categories in fsm training on the...
Iwsm2014   the effect of highlighting error categories in fsm training on the...Iwsm2014   the effect of highlighting error categories in fsm training on the...
Iwsm2014 the effect of highlighting error categories in fsm training on the...Nesma
 

Andere mochten auch (20)

Iwsm2014 lies damned lies & software metrics (charles symons)
Iwsm2014   lies damned lies & software metrics (charles symons)Iwsm2014   lies damned lies & software metrics (charles symons)
Iwsm2014 lies damned lies & software metrics (charles symons)
 
Cost Engineering in Aerospace and Defense
Cost Engineering in Aerospace and DefenseCost Engineering in Aerospace and Defense
Cost Engineering in Aerospace and Defense
 
Iwsm2014 analysis of the per-unit work effort and per-unit work cost of the...
Iwsm2014   analysis of the per-unit work effort and per-unit work cost of the...Iwsm2014   analysis of the per-unit work effort and per-unit work cost of the...
Iwsm2014 analysis of the per-unit work effort and per-unit work cost of the...
 
Nesma autumn conference - Outsourcing needs software measurement - Werner Hei...
Nesma autumn conference - Outsourcing needs software measurement - Werner Hei...Nesma autumn conference - Outsourcing needs software measurement - Werner Hei...
Nesma autumn conference - Outsourcing needs software measurement - Werner Hei...
 
Iwsm2014 conference diner (eric van der vliet)
Iwsm2014   conference diner (eric van der vliet)Iwsm2014   conference diner (eric van der vliet)
Iwsm2014 conference diner (eric van der vliet)
 
Iwsm2014 defect density measurements using cosmic (thomas fehlmann)
Iwsm2014   defect density measurements using cosmic (thomas fehlmann)Iwsm2014   defect density measurements using cosmic (thomas fehlmann)
Iwsm2014 defect density measurements using cosmic (thomas fehlmann)
 
Estimation in the Tendering Process - Frank Vogelezang
Estimation in the Tendering Process - Frank VogelezangEstimation in the Tendering Process - Frank Vogelezang
Estimation in the Tendering Process - Frank Vogelezang
 
Iwsm2014 sizing the entire development process (mauricio aguiar & luigi bug...
Iwsm2014   sizing the entire development process (mauricio aguiar & luigi bug...Iwsm2014   sizing the entire development process (mauricio aguiar & luigi bug...
Iwsm2014 sizing the entire development process (mauricio aguiar & luigi bug...
 
IWSM2014 MEGSUS14 - A general overview of software sustainability measureme...
IWSM2014   MEGSUS14 - A general overview of software sustainability measureme...IWSM2014   MEGSUS14 - A general overview of software sustainability measureme...
IWSM2014 MEGSUS14 - A general overview of software sustainability measureme...
 
Begroten als het model = de applicatie = de documentatie - Gerard Ohm - NESMA...
Begroten als het model = de applicatie = de documentatie - Gerard Ohm - NESMA...Begroten als het model = de applicatie = de documentatie - Gerard Ohm - NESMA...
Begroten als het model = de applicatie = de documentatie - Gerard Ohm - NESMA...
 
Iwsm2014 identifying and managing complex modules in executable software de...
Iwsm2014   identifying and managing complex modules in executable software de...Iwsm2014   identifying and managing complex modules in executable software de...
Iwsm2014 identifying and managing complex modules in executable software de...
 
Metrics & Beheer
Metrics & BeheerMetrics & Beheer
Metrics & Beheer
 
Status van de brede review gebruiksgids SOA - Martin Jacobs - NESMA najaarsbi...
Status van de brede review gebruiksgids SOA - Martin Jacobs - NESMA najaarsbi...Status van de brede review gebruiksgids SOA - Martin Jacobs - NESMA najaarsbi...
Status van de brede review gebruiksgids SOA - Martin Jacobs - NESMA najaarsbi...
 
NESMA 2020
NESMA 2020NESMA 2020
NESMA 2020
 
Posters presented at the NESMA fall conference
Posters presented at the NESMA fall conferencePosters presented at the NESMA fall conference
Posters presented at the NESMA fall conference
 
Iwsm2014 measuring the functional size of mobile apps with cosmic (harold v...
Iwsm2014   measuring the functional size of mobile apps with cosmic (harold v...Iwsm2014   measuring the functional size of mobile apps with cosmic (harold v...
Iwsm2014 measuring the functional size of mobile apps with cosmic (harold v...
 
IWSM2014 IT confidence - How to ensure that valid and current industry data ...
IWSM2014  IT confidence - How to ensure that valid and current industry data ...IWSM2014  IT confidence - How to ensure that valid and current industry data ...
IWSM2014 IT confidence - How to ensure that valid and current industry data ...
 
Nesma autumn conference 2015 - Agile x FPA - Reflections about solution in a ...
Nesma autumn conference 2015 - Agile x FPA - Reflections about solution in a ...Nesma autumn conference 2015 - Agile x FPA - Reflections about solution in a ...
Nesma autumn conference 2015 - Agile x FPA - Reflections about solution in a ...
 
IWSM2014 MEGSUS14 - GQM on energy for SaaS - CETIC
IWSM2014   MEGSUS14 - GQM on energy for SaaS - CETICIWSM2014   MEGSUS14 - GQM on energy for SaaS - CETIC
IWSM2014 MEGSUS14 - GQM on energy for SaaS - CETIC
 
Iwsm2014 the effect of highlighting error categories in fsm training on the...
Iwsm2014   the effect of highlighting error categories in fsm training on the...Iwsm2014   the effect of highlighting error categories in fsm training on the...
Iwsm2014 the effect of highlighting error categories in fsm training on the...
 

Ähnlich wie Iwsm2014 on automatically collectable metrics for software maintainability evaluation (jan-peter ostberg & stefan wagner)

Frege Tutorial at JavaOne 2015
Frege Tutorial at JavaOne 2015Frege Tutorial at JavaOne 2015
Frege Tutorial at JavaOne 2015Dierk König
 
JDD2015: Frege - how to program with pure functions - Dierk König
JDD2015: Frege - how to program with pure functions - Dierk KönigJDD2015: Frege - how to program with pure functions - Dierk König
JDD2015: Frege - how to program with pure functions - Dierk KönigPROIDEA
 
Subtle Asynchrony by Jeff Hammond
Subtle Asynchrony by Jeff HammondSubtle Asynchrony by Jeff Hammond
Subtle Asynchrony by Jeff HammondPatrick Diehl
 
Parallelising Dynamic Programming
Parallelising Dynamic ProgrammingParallelising Dynamic Programming
Parallelising Dynamic ProgrammingRaphael Reitzig
 
Brief introduction to Algorithm analysis
Brief introduction to Algorithm analysis Brief introduction to Algorithm analysis
Brief introduction to Algorithm analysis Anantha Ramu
 
Class 16: Making Loops
Class 16: Making LoopsClass 16: Making Loops
Class 16: Making LoopsDavid Evans
 
Software Testing for Data Scientists
Software Testing for Data ScientistsSoftware Testing for Data Scientists
Software Testing for Data ScientistsAjay Ohri
 
Analyzing Firebird 3.0
Analyzing Firebird 3.0Analyzing Firebird 3.0
Analyzing Firebird 3.0PVS-Studio
 
DAA-Unit1.pptx
DAA-Unit1.pptxDAA-Unit1.pptx
DAA-Unit1.pptxNishaS88
 
zkStudy Club: Subquadratic SNARGs in the Random Oracle Model
zkStudy Club: Subquadratic SNARGs in the Random Oracle ModelzkStudy Club: Subquadratic SNARGs in the Random Oracle Model
zkStudy Club: Subquadratic SNARGs in the Random Oracle ModelAlex Pruden
 
01 - DAA - PPT.pptx
01 - DAA - PPT.pptx01 - DAA - PPT.pptx
01 - DAA - PPT.pptxKokilaK25
 
MuVM: Higher Order Mutation Analysis Virtual Machine for C
MuVM: Higher Order Mutation Analysis Virtual Machine for CMuVM: Higher Order Mutation Analysis Virtual Machine for C
MuVM: Higher Order Mutation Analysis Virtual Machine for CSusumu Tokumoto
 
Tesseract. Recognizing Errors in Recognition Software
Tesseract. Recognizing Errors in Recognition SoftwareTesseract. Recognizing Errors in Recognition Software
Tesseract. Recognizing Errors in Recognition SoftwareAndrey Karpov
 
Measuring maintainability; software metrics explained
Measuring maintainability; software metrics explainedMeasuring maintainability; software metrics explained
Measuring maintainability; software metrics explainedDennis de Greef
 

Ähnlich wie Iwsm2014 on automatically collectable metrics for software maintainability evaluation (jan-peter ostberg & stefan wagner) (20)

Frege Tutorial at JavaOne 2015
Frege Tutorial at JavaOne 2015Frege Tutorial at JavaOne 2015
Frege Tutorial at JavaOne 2015
 
JDD2015: Frege - how to program with pure functions - Dierk König
JDD2015: Frege - how to program with pure functions - Dierk KönigJDD2015: Frege - how to program with pure functions - Dierk König
JDD2015: Frege - how to program with pure functions - Dierk König
 
Subtle Asynchrony by Jeff Hammond
Subtle Asynchrony by Jeff HammondSubtle Asynchrony by Jeff Hammond
Subtle Asynchrony by Jeff Hammond
 
Cgc2
Cgc2Cgc2
Cgc2
 
Parallelising Dynamic Programming
Parallelising Dynamic ProgrammingParallelising Dynamic Programming
Parallelising Dynamic Programming
 
Brief introduction to Algorithm analysis
Brief introduction to Algorithm analysis Brief introduction to Algorithm analysis
Brief introduction to Algorithm analysis
 
Class 16: Making Loops
Class 16: Making LoopsClass 16: Making Loops
Class 16: Making Loops
 
CODEsign 2015
CODEsign 2015CODEsign 2015
CODEsign 2015
 
Software Testing for Data Scientists
Software Testing for Data ScientistsSoftware Testing for Data Scientists
Software Testing for Data Scientists
 
Unit 1
Unit 1Unit 1
Unit 1
 
Analyzing Firebird 3.0
Analyzing Firebird 3.0Analyzing Firebird 3.0
Analyzing Firebird 3.0
 
Analyzing Firebird 3.0
Analyzing Firebird 3.0Analyzing Firebird 3.0
Analyzing Firebird 3.0
 
00_Introduction to Java.ppt
00_Introduction to Java.ppt00_Introduction to Java.ppt
00_Introduction to Java.ppt
 
DAA-Unit1.pptx
DAA-Unit1.pptxDAA-Unit1.pptx
DAA-Unit1.pptx
 
zkStudy Club: Subquadratic SNARGs in the Random Oracle Model
zkStudy Club: Subquadratic SNARGs in the Random Oracle ModelzkStudy Club: Subquadratic SNARGs in the Random Oracle Model
zkStudy Club: Subquadratic SNARGs in the Random Oracle Model
 
PVS-Studio vs Clang
PVS-Studio vs ClangPVS-Studio vs Clang
PVS-Studio vs Clang
 
01 - DAA - PPT.pptx
01 - DAA - PPT.pptx01 - DAA - PPT.pptx
01 - DAA - PPT.pptx
 
MuVM: Higher Order Mutation Analysis Virtual Machine for C
MuVM: Higher Order Mutation Analysis Virtual Machine for CMuVM: Higher Order Mutation Analysis Virtual Machine for C
MuVM: Higher Order Mutation Analysis Virtual Machine for C
 
Tesseract. Recognizing Errors in Recognition Software
Tesseract. Recognizing Errors in Recognition SoftwareTesseract. Recognizing Errors in Recognition Software
Tesseract. Recognizing Errors in Recognition Software
 
Measuring maintainability; software metrics explained
Measuring maintainability; software metrics explainedMeasuring maintainability; software metrics explained
Measuring maintainability; software metrics explained
 

Mehr von Nesma

2024-04 - Nesma webinar - Benchmarking.pdf
2024-04 - Nesma webinar - Benchmarking.pdf2024-04 - Nesma webinar - Benchmarking.pdf
2024-04 - Nesma webinar - Benchmarking.pdfNesma
 
Agile Team Performance Measurement webinar
Agile Team Performance Measurement webinarAgile Team Performance Measurement webinar
Agile Team Performance Measurement webinarNesma
 
Software Cost Estimation webinar January 2024.pdf
Software Cost Estimation webinar January 2024.pdfSoftware Cost Estimation webinar January 2024.pdf
Software Cost Estimation webinar January 2024.pdfNesma
 
Nesma event June '23 - How to use objective metrics as a basis for agile cost...
Nesma event June '23 - How to use objective metrics as a basis for agile cost...Nesma event June '23 - How to use objective metrics as a basis for agile cost...
Nesma event June '23 - How to use objective metrics as a basis for agile cost...Nesma
 
Nesma event June '23 - NEN Practice Guideline - NPR.pdf
Nesma event June '23 - NEN Practice Guideline - NPR.pdfNesma event June '23 - NEN Practice Guideline - NPR.pdf
Nesma event June '23 - NEN Practice Guideline - NPR.pdfNesma
 
Nesma event June '23 - Easy Function Sizing - Introduction.pdf
Nesma event June '23 - Easy Function Sizing - Introduction.pdfNesma event June '23 - Easy Function Sizing - Introduction.pdf
Nesma event June '23 - Easy Function Sizing - Introduction.pdfNesma
 
Automotive Software Cost Estimation - The UCE Approach - Emmanuel Mary
Automotive Software Cost Estimation - The UCE Approach - Emmanuel MaryAutomotive Software Cost Estimation - The UCE Approach - Emmanuel Mary
Automotive Software Cost Estimation - The UCE Approach - Emmanuel MaryNesma
 
The COSMIC battle between David and Goliath - Paul Hussein
The COSMIC battle between David and Goliath - Paul HusseinThe COSMIC battle between David and Goliath - Paul Hussein
The COSMIC battle between David and Goliath - Paul HusseinNesma
 
Succesful Estimating - It's how you tell the story - Amritpal Singh Agar
Succesful Estimating - It's how you tell the story - Amritpal Singh AgarSuccesful Estimating - It's how you tell the story - Amritpal Singh Agar
Succesful Estimating - It's how you tell the story - Amritpal Singh AgarNesma
 
(Increasing) Predictability of large Government ICT Projects - Koos Veefkind
(Increasing) Predictability of large Government ICT Projects - Koos Veefkind(Increasing) Predictability of large Government ICT Projects - Koos Veefkind
(Increasing) Predictability of large Government ICT Projects - Koos VeefkindNesma
 
CEBoK for Software Past Present Future - Megan Jones
CEBoK for Software Past Present Future - Megan JonesCEBoK for Software Past Present Future - Megan Jones
CEBoK for Software Past Present Future - Megan JonesNesma
 
Agile Development and Agile Cost Estimation - A return to basic principles - ...
Agile Development and Agile Cost Estimation - A return to basic principles - ...Agile Development and Agile Cost Estimation - A return to basic principles - ...
Agile Development and Agile Cost Estimation - A return to basic principles - ...Nesma
 
Resolving Cost Management and Key Pitfalls of Agile Software Development - Da...
Resolving Cost Management and Key Pitfalls of Agile Software Development - Da...Resolving Cost Management and Key Pitfalls of Agile Software Development - Da...
Resolving Cost Management and Key Pitfalls of Agile Software Development - Da...Nesma
 
Project Succes is a Choice - Joop Schefferlie
Project Succes is a Choice - Joop SchefferlieProject Succes is a Choice - Joop Schefferlie
Project Succes is a Choice - Joop SchefferlieNesma
 
Afrekenen met functiepunten
Afrekenen met functiepuntenAfrekenen met functiepunten
Afrekenen met functiepuntenNesma
 
Agile teams get a grip - martijn groenewegen
Agile teams   get a grip - martijn groenewegenAgile teams   get a grip - martijn groenewegen
Agile teams get a grip - martijn groenewegenNesma
 
The fact that your poject is agile is not (necessarily) a cost driver arlen...
The fact that your poject is agile is not (necessarily) a cost driver   arlen...The fact that your poject is agile is not (necessarily) a cost driver   arlen...
The fact that your poject is agile is not (necessarily) a cost driver arlen...Nesma
 
Software sizing as an essential measure past present and future - Dan Galorat...
Software sizing as an essential measure past present and future - Dan Galorat...Software sizing as an essential measure past present and future - Dan Galorat...
Software sizing as an essential measure past present and future - Dan Galorat...Nesma
 
A benchmark based approach to determine language verbosity - Hans Kuijpers - ...
A benchmark based approach to determine language verbosity - Hans Kuijpers - ...A benchmark based approach to determine language verbosity - Hans Kuijpers - ...
A benchmark based approach to determine language verbosity - Hans Kuijpers - ...Nesma
 
Software sizing the cornerstone for iceaa's scebok - Carol Dekkers
Software sizing the cornerstone for iceaa's scebok - Carol DekkersSoftware sizing the cornerstone for iceaa's scebok - Carol Dekkers
Software sizing the cornerstone for iceaa's scebok - Carol DekkersNesma
 

Mehr von Nesma (20)

2024-04 - Nesma webinar - Benchmarking.pdf
2024-04 - Nesma webinar - Benchmarking.pdf2024-04 - Nesma webinar - Benchmarking.pdf
2024-04 - Nesma webinar - Benchmarking.pdf
 
Agile Team Performance Measurement webinar
Agile Team Performance Measurement webinarAgile Team Performance Measurement webinar
Agile Team Performance Measurement webinar
 
Software Cost Estimation webinar January 2024.pdf
Software Cost Estimation webinar January 2024.pdfSoftware Cost Estimation webinar January 2024.pdf
Software Cost Estimation webinar January 2024.pdf
 
Nesma event June '23 - How to use objective metrics as a basis for agile cost...
Nesma event June '23 - How to use objective metrics as a basis for agile cost...Nesma event June '23 - How to use objective metrics as a basis for agile cost...
Nesma event June '23 - How to use objective metrics as a basis for agile cost...
 
Nesma event June '23 - NEN Practice Guideline - NPR.pdf
Nesma event June '23 - NEN Practice Guideline - NPR.pdfNesma event June '23 - NEN Practice Guideline - NPR.pdf
Nesma event June '23 - NEN Practice Guideline - NPR.pdf
 
Nesma event June '23 - Easy Function Sizing - Introduction.pdf
Nesma event June '23 - Easy Function Sizing - Introduction.pdfNesma event June '23 - Easy Function Sizing - Introduction.pdf
Nesma event June '23 - Easy Function Sizing - Introduction.pdf
 
Automotive Software Cost Estimation - The UCE Approach - Emmanuel Mary
Automotive Software Cost Estimation - The UCE Approach - Emmanuel MaryAutomotive Software Cost Estimation - The UCE Approach - Emmanuel Mary
Automotive Software Cost Estimation - The UCE Approach - Emmanuel Mary
 
The COSMIC battle between David and Goliath - Paul Hussein
The COSMIC battle between David and Goliath - Paul HusseinThe COSMIC battle between David and Goliath - Paul Hussein
The COSMIC battle between David and Goliath - Paul Hussein
 
Succesful Estimating - It's how you tell the story - Amritpal Singh Agar
Succesful Estimating - It's how you tell the story - Amritpal Singh AgarSuccesful Estimating - It's how you tell the story - Amritpal Singh Agar
Succesful Estimating - It's how you tell the story - Amritpal Singh Agar
 
(Increasing) Predictability of large Government ICT Projects - Koos Veefkind
(Increasing) Predictability of large Government ICT Projects - Koos Veefkind(Increasing) Predictability of large Government ICT Projects - Koos Veefkind
(Increasing) Predictability of large Government ICT Projects - Koos Veefkind
 
CEBoK for Software Past Present Future - Megan Jones
CEBoK for Software Past Present Future - Megan JonesCEBoK for Software Past Present Future - Megan Jones
CEBoK for Software Past Present Future - Megan Jones
 
Agile Development and Agile Cost Estimation - A return to basic principles - ...
Agile Development and Agile Cost Estimation - A return to basic principles - ...Agile Development and Agile Cost Estimation - A return to basic principles - ...
Agile Development and Agile Cost Estimation - A return to basic principles - ...
 
Resolving Cost Management and Key Pitfalls of Agile Software Development - Da...
Resolving Cost Management and Key Pitfalls of Agile Software Development - Da...Resolving Cost Management and Key Pitfalls of Agile Software Development - Da...
Resolving Cost Management and Key Pitfalls of Agile Software Development - Da...
 
Project Succes is a Choice - Joop Schefferlie
Project Succes is a Choice - Joop SchefferlieProject Succes is a Choice - Joop Schefferlie
Project Succes is a Choice - Joop Schefferlie
 
Afrekenen met functiepunten
Afrekenen met functiepuntenAfrekenen met functiepunten
Afrekenen met functiepunten
 
Agile teams get a grip - martijn groenewegen
Agile teams   get a grip - martijn groenewegenAgile teams   get a grip - martijn groenewegen
Agile teams get a grip - martijn groenewegen
 
The fact that your poject is agile is not (necessarily) a cost driver arlen...
The fact that your poject is agile is not (necessarily) a cost driver   arlen...The fact that your poject is agile is not (necessarily) a cost driver   arlen...
The fact that your poject is agile is not (necessarily) a cost driver arlen...
 
Software sizing as an essential measure past present and future - Dan Galorat...
Software sizing as an essential measure past present and future - Dan Galorat...Software sizing as an essential measure past present and future - Dan Galorat...
Software sizing as an essential measure past present and future - Dan Galorat...
 
A benchmark based approach to determine language verbosity - Hans Kuijpers - ...
A benchmark based approach to determine language verbosity - Hans Kuijpers - ...A benchmark based approach to determine language verbosity - Hans Kuijpers - ...
A benchmark based approach to determine language verbosity - Hans Kuijpers - ...
 
Software sizing the cornerstone for iceaa's scebok - Carol Dekkers
Software sizing the cornerstone for iceaa's scebok - Carol DekkersSoftware sizing the cornerstone for iceaa's scebok - Carol Dekkers
Software sizing the cornerstone for iceaa's scebok - Carol Dekkers
 

Kürzlich hochgeladen

Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...kalichargn70th171
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...software pro Development
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfryanfarris8
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfVishalKumarJha10
 

Kürzlich hochgeladen (20)

Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 

Iwsm2014 on automatically collectable metrics for software maintainability evaluation (jan-peter ostberg & stefan wagner)

  • 1. On Automatically Collectable Metrics for Software Maintainability Evaluation Jan-Peter Ostberg & Stefan Wagner
  • 2. Maintenance Worker Assessment of Maintenance Work
  • 3. (metrics maintenance) OR (maintenance measure) AND Software OR maintainability
  • 4. 12 11 10 9 8 7 6 5 4 3 2 1 0
  • 5. What defines a good measure?
  • 6. Easy to understand… …, but also accurate.
  • 8. Often mentioned metrics… … but not practical ones.
  • 9. McCabe if( P1 ){ if( P2 ){ expression2; }else{ expression3; }else{ expression1;} if((P1 && P2 && !P3)||(P1 && P3 && P4)){ if((P5 && P6 && P7)||(!P5 && !P7)){ expression2; }else{ expression3; }else{ expression1;} Code on bottom is clearly more complex. McCabe for both = 3
  • 10. Halstead Software Science Program Volume: V = N x log2 h h N 1 2 2 h 2 D   Implementation time: D V 18 T   18 elementary decisions per second Difficulty of a Program:
  • 11. Lines of Code What is the LoC value here? public String tellMeEqual (int a, int b){ String result = „undefined“; if (a > b){ result = „a is larger“; } else { if(a == b) { result = „a is equal“; } else { result = „b is larger“; } } return result; } 13? 5?
  • 13. Maintainability Index HalsteadVolume McCabe  171  5.2  ln( )  0.23  LoC CommentPercentage      16.2 ln( ) (50 sin( 2.46 ) )) 100 171 Simplified Version:  MAX(0, (1715.2log(HalsteadVolume) 0.23McCabe16.2log(LoC)
  • 14. We need better ways to measure our software!
  • 15. Suggestion: Nesting Depth if(P==1){ expression1; }else{ if(P==2){ expression2; }else{ if(P==3){ expression3;} } } Nesting depth = 3 Switch(P){ case 1: expression1; break; case 2: expression2; break; case 3: expression3; break;} Nesting depth = 1
  • 16. giphy.com Suggestion: Clone-Ration „…every second unintentional inconsistency between clones constitutes to a fault…” Juergens et al. „Do code clones matter?“
  • 17. Suggestion: Bug-Patterns • Bug-Detection-Tools are getting really good. • Low amount of findings implies better maintainability
  • 18. Suggestion: Test Results and Coverage http://testing.gobanana.co.uk • More tests + high coverage implies code is test-friendly • Ignored test results are a hint for not understood code parts • Tests encourage the maintenance of code
  • 19. Conclusion • The blindfolded usage of maintenance metrics is problematic. • There are useful and accurate maintenance metrics. • The metrics should be collected automatically.
  • 20. For more, please read our paper!
  • 21. Thank you for your attention!

Hinweis der Redaktion

  1. Um Software zu vermessen brauchen wir Metriken Das ist keine neue Erkenntnis, daher haben wir gesucht. Was könnten Prctioniers / Students finden?
  2. First 40 hits Left us with 16 papers
  3. Nennungen Überhaupt not wendig?
  4. Should be easy to use, should be expressive Help you!
  5. and as people in IT don‘t like to do things twice, best automatical
  6. Edges – nodes +2
  7. What is a programms Volume? Can anybody imagin that? Pro Gamers were measured to make 400 actions per minute -> 6.7 actions per second!! N = Programm lemgth (total number of Operators + total number of Operands) eta = Programms vocabulary (distinct # operators + distinct # operands)
  8. A unstructered pice of code can have less LoC, but be less more maintaiable, then a good structred code with more LoC.
  9. Problematisch unreflektiert zu übernehmen Es gibt aber gute Bewustsein für sinnvolle metricen Automatisch erfassbar, das sonst ehr keiner
  10. Ist fun. I promise…