Slide 1

Slide 1 text

Do Energy-oriented Changes Hinder Maintainability? Luís Cruz, Rui Abreu, John Grundy, Li Li, Xin Xia ICSME 2019

Slide 2

Slide 2 text

@luismcruz | ICSME 2019

Slide 3

Slide 3 text

@luismcruz | ICSME 2019 Motivation • If users lose connectivity they might be unable to accomplish important tasks • Users tend to remove apps that drain the phone battery • Developers need to build energy-efficient mobile apps • Improving energy-efficiency is not trivial: requires specialised knowledge and implementing code changes !3

Slide 4

Slide 4 text

@luismcruz | ICSME 2019 Do Energy-oriented Changes Hinder Maintainability? Maintainability of Energy Changes • What is the impact of making energy-oriented code changes on the maintainability of mobile apps? Maintainability Difference v E-2 v E-1 v E Energy Commit v E+1 M(v E-1 ) M(v E ) Parent Commit ∆M !4

Slide 5

Slide 5 text

@luismcruz | ICSME 2019 Do Energy-oriented Changes Hinder Maintainability? Measuring Maintainability • According to ISO/IEC 25010, Maintainability is “the degree of effectiveness and efficiency with which a software product or system can be modified to improve it, correct it or adapt it to changes in environment, and in requirements” • We use the code analysis tool Better Code Hub to assess maintainability • Better Code Hub maps the ISO/IEC 25010 standard on maintainability into a set of guidelines derived from static analysis !5

Slide 6

Slide 6 text

Do Energy-oriented Changes Hinder Maintainability? @luismcruz | ICSME 2019 @luismcruz | ICSME 2019 !6

Slide 7

Slide 7 text

Do Energy-oriented Changes Hinder Maintainability? @luismcruz | ICSME 2019 @luismcruz | ICSME 2019 Threshold Marks !6

Slide 8

Slide 8 text

Do Energy-oriented Changes Hinder Maintainability? @luismcruz | ICSME 2019 Numerical Score of Maintainability for a Software Version Maintainability = 1 3 ✓ SLOCgreen 1 Tyellow Tyellow (SLOCyellow + SLOCorange + SLOCred)+ +SLOCgreen + SLOCyellow 1 Torange Torange (SLOCorange + SLOCred)+ +SLOCgreen + SLOCyellow + SLOCorange 1 Tred Tred SLOCred ◆ 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 !7 Explained in the paper @luismcruz | ICSME 2019

Slide 9

Slide 9 text

Do Energy-oriented Changes Hinder Maintainability? Better Code Hub Maintainability Combine datasets Energy Commits Baseline Commits Bao et al. (2015) Moura et al. (2016) Cruz et al. (2018) Cruz et al. (2019) @luismcruz | ICSME 2019 Energy Code Changes Dataset !8 Moura Bao

Slide 10

Slide 10 text

Do Energy-oriented Changes Hinder Maintainability? Better Code Hub Maintainability Combine datasets Energy Commits Baseline Commits Bao et al. (2015) Moura et al. (2016) Cruz et al. (2018) Cruz et al. (2019) @luismcruz | ICSME 2019 Energy Code Changes Dataset 539 commits
 from 306 mobile apps !8 Moura Bao

Slide 11

Slide 11 text

Do Energy-oriented Changes Hinder Maintainability? Better Code Hub Maintainability Combine datasets Energy Commits Baseline Commits Bao et al. (2015) Moura et al. (2016) Cruz et al. (2018) Cruz et al. (2019) @luismcruz | ICSME 2019 Energy Code Changes Dataset 539 commits
 from 306 mobile apps 539 baseline commits
 from 306 mobile apps !8 Moura Bao

Slide 12

Slide 12 text

@luismcruz | ICSME 2019 Do Energy-oriented Changes Hinder Maintainability? Impact of energy changes on maintainability !9

Slide 13

Slide 13 text

@luismcruz | ICSME 2019 Do Energy-oriented Changes Hinder Maintainability? Impact of energy changes on maintainability !9

Slide 14

Slide 14 text

@luismcruz | ICSME 2019 Do Energy-oriented Changes Hinder Maintainability? Which energy patterns are more likely to affect maintainability? !10

Slide 15

Slide 15 text

@luismcruz | ICSME 2019 Do Energy-oriented Changes Hinder Maintainability? Which energy patterns are more likely to affect maintainability? !10

Slide 16

Slide 16 text

Do Energy-oriented Changes Hinder Maintainability? @luismcruz | ICSME 2019 Typical maintainability issue I https://github.com/einmalfel/PodListen/commit/2ed5a65 4 changed files with 28 additions and 0 deletions. … …

Slide 17

Slide 17 text

Do Energy-oriented Changes Hinder Maintainability? @luismcruz | ICSME 2019 Typical maintainability issue II https://github.com/mozilla/MozStumbler/commit/6ea0268 5 changed files with 66 additions and 14 deletions. @luismcruz | ICSME 2019

Slide 18

Slide 18 text

Do Energy-oriented Changes Hinder Maintainability? Conclusions • Energy-oriented commits significantly decrease software maintainability. • Particularly concerning Power Save Mode and Wakelock Addition patterns: maintainability decreases in 78% and 66% of the cases. • Mobile development frameworks should provide mechanisms to implement energy patterns !13 @luismcruz | ICSME 2019

Slide 19

Slide 19 text

ICST 2020 will be held in Porto, Portugal