Top Banner
What if Clippy Would Criticize Your Code? Yuriy Tymchuk R A E E L V
51

What if Clippy Would Criticize Your Code? (benevol2015)

Feb 14, 2017

Download

Software

Yuriy Tymchuk
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: What if Clippy Would Criticize Your Code? (benevol2015)

What if Clippy Would Criticize Your Code?

Yuriy TymchukR AE E LV

Page 2: What if Clippy Would Criticize Your Code? (benevol2015)

@yuriy_tymchuk

What if Clippy Would Criticize Your Code?

R AE E LV

Sometimes I just popup for no reason at all. Like now.

Page 3: What if Clippy Would Criticize Your Code? (benevol2015)

@yuriy_tymchuk

What if Clippy Would Criticize Your Code?

R AE E LV

Criticize Your Code?

Page 4: What if Clippy Would Criticize Your Code? (benevol2015)

Code Quality

Page 5: What if Clippy Would Criticize Your Code? (benevol2015)

Code Quality

How easy it is tounderstandmodifytest

the software

ISO/IEC, ISO/IEC 9126. Software Engineering – Product quality 6.5. ISO/IEC, 2001

(maintainability)

Page 6: What if Clippy Would Criticize Your Code? (benevol2015)

Code Review

A. Bacchelli, C. Bird. Expectations, outcomes, and challenges of modern code review. In Proceedings of ICSE’13, pp. 712–721, IEEE, 2013

Page 7: What if Clippy Would Criticize Your Code? (benevol2015)

Static Analyzer

Page 8: What if Clippy Would Criticize Your Code? (benevol2015)

Static Analyzer

Page 9: What if Clippy Would Criticize Your Code? (benevol2015)

Quality Rules

Static Analyzer

Page 10: What if Clippy Would Criticize Your Code? (benevol2015)

Quality Rules

Source Code

Static Analyzer

Page 11: What if Clippy Would Criticize Your Code? (benevol2015)

Quality Rules

Critics

Static Analyzer

Page 12: What if Clippy Would Criticize Your Code? (benevol2015)

Find Bugs

Page 13: What if Clippy Would Criticize Your Code? (benevol2015)

Visual Design Inspection

Y. Tymchuk, A. Mocci, and M. Lanza. Code Review: Veni, ViDI, Vici. In Proceedings of SANER’15, pp. 151-160, IEEE, 2015

Page 14: What if Clippy Would Criticize Your Code? (benevol2015)

Y. Tymchuk, A. Mocci, and M. Lanza. Code Review: Veni, ViDI, Vici. In Proceedings of SANER’15, pp. 151-160, IEEE, 2015 Y. Tymchuk, A. Mocci, and M. Lanza. Vidi: The Visual Design Inspector. In Proceedings of ICSE’15, to be published, IEEE, 2015

ViDI

Page 15: What if Clippy Would Criticize Your Code? (benevol2015)
Page 16: What if Clippy Would Criticize Your Code? (benevol2015)

packages 400 classes 5.5k methods 90k

Page 17: What if Clippy Would Criticize Your Code? (benevol2015)

Pharo 4: patches / months ≈ patches/day1726 12 5Pharo 5: patches / months ≈ patches/day1560 7.5 7

packages 400 classes 5.5k methods 90k

Page 18: What if Clippy Would Criticize Your Code? (benevol2015)

ViDI is …

Page 19: What if Clippy Would Criticize Your Code? (benevol2015)

Disconnected from Development

Page 20: What if Clippy Would Criticize Your Code? (benevol2015)

Yes, I will help you to write code!

Page 21: What if Clippy Would Criticize Your Code? (benevol2015)

Static Analyzer Interface

FindBugs IntelliJ Code Analysis

Page 22: What if Clippy Would Criticize Your Code? (benevol2015)

Static Analyzer Interface

FindBugs IntelliJ Code Analysis

standalone/on demand embedded/intrusive

Page 23: What if Clippy Would Criticize Your Code? (benevol2015)

Static Analyzer Interface

Critics Browser

standalone/on demand embedded/intrusive

in Pharo

Page 24: What if Clippy Would Criticize Your Code? (benevol2015)

Critics Browser

Page 25: What if Clippy Would Criticize Your Code? (benevol2015)

Critics Browser Survey46 participants

Page 26: What if Clippy Would Criticize Your Code? (benevol2015)

Critics Browser Survey

Page 27: What if Clippy Would Criticize Your Code? (benevol2015)

Critics Browser Survey

Page 28: What if Clippy Would Criticize Your Code? (benevol2015)

QualityAssistant

Page 29: What if Clippy Would Criticize Your Code? (benevol2015)

QualityAssistant in Code Browser

Page 30: What if Clippy Would Criticize Your Code? (benevol2015)

QualityAssistant in Code Browser

Page 31: What if Clippy Would Criticize Your Code? (benevol2015)

QualityAssistant in Inspector

Page 32: What if Clippy Would Criticize Your Code? (benevol2015)

QualityAssistant in Spotter

Page 33: What if Clippy Would Criticize Your Code? (benevol2015)

Pharo 4: patches / months ≈ patches/day1726 12 5Pharo 5: patches / months ≈ patches/day1560 7.5 7

packages 400 classes 5.5k methods 90k

Page 34: What if Clippy Would Criticize Your Code? (benevol2015)

Pharo 4: patches / months ≈ patches/day1726 12 5Pharo 5: patches / months ≈ patches/day1560 7.5 7

packages 400 classes 5.5k methods 90k

Page 35: What if Clippy Would Criticize Your Code? (benevol2015)

QualityAssistant Survey29 participants

Page 36: What if Clippy Would Criticize Your Code? (benevol2015)

QualityAssistant Survey

Page 37: What if Clippy Would Criticize Your Code? (benevol2015)

Browser Inspector Spotter

QualityAssistant Survey

Page 38: What if Clippy Would Criticize Your Code? (benevol2015)

QualityAssistant Survey

Page 39: What if Clippy Would Criticize Your Code? (benevol2015)

Critics Browser QualityAssistant

Page 40: What if Clippy Would Criticize Your Code? (benevol2015)

Critics Browser QualityAssistant

Page 41: What if Clippy Would Criticize Your Code? (benevol2015)

Critics Browser QualityAssistant

Page 42: What if Clippy Would Criticize Your Code? (benevol2015)

Critics Browser QualityAssistant

Page 43: What if Clippy Would Criticize Your Code? (benevol2015)

Critics Browser QualityAssistant

Page 44: What if Clippy Would Criticize Your Code? (benevol2015)

Critics Browser QualityAssistantau

to"x

ban

igno

re

ban

igno

rera

tiona

le

highli

ght

diff

auto"x

ban

ban i

n s

cope

Page 45: What if Clippy Would Criticize Your Code? (benevol2015)
Page 46: What if Clippy Would Criticize Your Code? (benevol2015)

31%

10%31%

7%3%

17%

48%

14%

21%

17% Don’t know QANegativeSlightly NegativeNeutralSlightly PositivePositive

removal of “Missing yourself”

addition of “notNilDo: -> notNil:”

QualityAssistant-In!uenced Changes

Page 47: What if Clippy Would Criticize Your Code? (benevol2015)

Developers Like QualityAssistant

Page 48: What if Clippy Would Criticize Your Code? (benevol2015)

Developers Like QualityAssistant

38%

24%

14%

3%3%

17%

“!nd QualityAssistant very useful”

Page 49: What if Clippy Would Criticize Your Code? (benevol2015)

38%

24%

14%

3%3%

17%

48%

14%

21%

17%

“!nd QualityAssistant very useful”

“!nd introduction of a new rule in"uenced by QualityAssistant to be positive”

Developers Like QualityAssistant

Page 50: What if Clippy Would Criticize Your Code? (benevol2015)

38%

24%

14%

3%3%

17%

48%

14%

21%

17%

“!nd QualityAssistant very useful”

“!nd introduction of a new rule in"uenced by QualityAssistant to be positive”

Developers Like QualityAssistant

Page 51: What if Clippy Would Criticize Your Code? (benevol2015)

@yuriy_tymchuk

38%

24%

14%

3%3%

17%

48%

14%

21%

17%

“!nd QualityAssistant very useful”

“!nd introduction of a new rule in"uenced by QualityAssistant to be positive”

Developers Like QualityAssistant