Stories About Renraku — the new Quality Model of Pharo (esug2016)

103
Stories About Renraku — the new Quality Model of Pharo @yuriy_tymchuk Software Composition Group

Transcript of Stories About Renraku — the new Quality Model of Pharo (esug2016)

Page 1: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Stories About Renraku —the new Quality Model of Pharo

@yuriy_tymchukSoftware Composition Group

Page 2: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Now. YT 25yoNow. YT 24yo

2006. YT 15yo

UnikernelFreelance Team

Helpdesk / Network Administrator ISP UARNet

Interlogic outsourcing SW company

Innocode SW company

Physics and Mathematics Lyceum

Minor Academy of Sciences of Ukraine

Bachelor in Informatics MScInf.

Ph.D.Lugano

RMoD internship

Page 3: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Now. YT 25yoNow. YT 24yo

2006. YT 15yo

UnikernelFreelance Team

Helpdesk / Network Administrator ISP UARNet

Interlogic outsourcing SW company

Innocode SW company

Physics and Mathematics Lyceum

Minor Academy of Sciences of Ukraine

Bachelor in Informatics MScInf.

Ph.D.Lugano

RMoD internship

Ph.D.Bern

Page 4: Stories About Renraku — the new Quality Model of Pharo (esug2016)
Page 5: Stories About Renraku — the new Quality Model of Pharo (esug2016)

A Mistake

Page 6: Stories About Renraku — the new Quality Model of Pharo (esug2016)

A Mistake can be Solved EarlyA Mistake

Page 7: Stories About Renraku — the new Quality Model of Pharo (esug2016)
Page 8: Stories About Renraku — the new Quality Model of Pharo (esug2016)

How do you !nd QualityAssistant?

Page 9: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Very disturbingDisturbingSometimes DisturbingNot influentialSometimes UsefulUsefulVery useful

How do you !nd QualityAssistant?

Page 10: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Very disturbingDisturbingSometimes DisturbingNot influentialSometimes UsefulUsefulVery useful

46%

29%

17%

4%4%

How do you !nd QualityAssistant?

Page 11: Stories About Renraku — the new Quality Model of Pharo (esug2016)

46%

29%

17%

4%4%

Very disturbingDisturbingSometimes DisturbingNot influentialSometimes UsefulUsefulVery useful

How often do you use CriticBrowser?

Page 12: Stories About Renraku — the new Quality Model of Pharo (esug2016)

46%

29%

17%

4%4%

Very disturbingDisturbingSometimes DisturbingNot influentialSometimes UsefulUsefulVery useful

Don't KnowNeverYearlyMonthlyWeeklyDaily

24%

24%22%

11%

11%9%

How often do you use CriticBrowser?

Page 13: Stories About Renraku — the new Quality Model of Pharo (esug2016)
Page 14: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Renraku

Page 15: Stories About Renraku — the new Quality Model of Pharo (esug2016)

ONE DOES NOT SIMPLY

“SHOW” RENRAKU

Page 16: Stories About Renraku — the new Quality Model of Pharo (esug2016)

The Origin

Page 17: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Renraku

��

Page 18: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Renraku

[|]Rule Code

Page 19: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Renraku

[|]CritiqueRule Code

Page 20: Stories About Renraku — the new Quality Model of Pharo (esug2016)

The Vocabulary

Page 21: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Renraku

[|]Rule CodeCritique

Page 22: Stories About Renraku — the new Quality Model of Pharo (esug2016)

English Language

CritiqueCritic

Page 23: Stories About Renraku — the new Quality Model of Pharo (esug2016)

English Language

CritiqueCritic

Page 24: Stories About Renraku — the new Quality Model of Pharo (esug2016)

English Language

CritiqueCritic

Page 25: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Huge Refactoring

CritiqueCritic

ReTrivialCritic ReTrivialCritique

Page 26: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Our Dog Food is Good

Page 27: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Our Dog Food is Good!

Page 28: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Death and Life

Page 29: Stories About Renraku — the new Quality Model of Pharo (esug2016)
Page 30: Stories About Renraku — the new Quality Model of Pharo (esug2016)

xx

Who Shoots the Assistant?

Page 31: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Who is the Assistant?

Page 32: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Who is the Assistant?

Page 33: Stories About Renraku — the new Quality Model of Pharo (esug2016)

This is not QualityAssistant

Page 34: Stories About Renraku — the new Quality Model of Pharo (esug2016)

This is not QualityAssistant

Page 35: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Usage Contracts (2013)

Angela Lozano, Kim Mens, Andy Kellens

Page 36: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Usage Contracts (2013)

Angela Lozano, Kim Mens, Andy Kellens

Page 37: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Polycriticism

Page 38: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Issue Tracker Connection

Page 39: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Issue Tracker Connection

We want to link FogBugs issues to Pharo’s classes and methods. Can we display this information in QualityAssistant?

Page 40: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Issue Tracker Connection

Sure!

Page 41: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Issue Tracker Connection

Sure!

Just follow the Renraku protocol

Page 42: Stories About Renraku — the new Quality Model of Pharo (esug2016)

External Properties for Editor

by Juraj Kubelka

Page 43: Stories About Renraku — the new Quality Model of Pharo (esug2016)

External Properties for Editor

by Juraj Kubelka

Page 44: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Feedback Loop

Page 45: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Feedback

Page 46: Stories About Renraku — the new Quality Model of Pharo (esug2016)

RBInstVarInSubclassesRule

Page 47: Stories About Renraku — the new Quality Model of Pharo (esug2016)

RBInstVarInSubclassesRule„I have no idea what this rules does“

Page 48: Stories About Renraku — the new Quality Model of Pharo (esug2016)

RBInstVarInSubclassesRule„I have no idea what this rules does“

Page 49: Stories About Renraku — the new Quality Model of Pharo (esug2016)

RBInstVarInSubclassesRule„I have no idea what this rules does“

Page 50: Stories About Renraku — the new Quality Model of Pharo (esug2016)

RBInstVarInSubclassesRule„I have no idea what this rules does“

Page 51: Stories About Renraku — the new Quality Model of Pharo (esug2016)

RBInstVarInSubclassesRule„I have no idea what this rules does“

Page 52: Stories About Renraku — the new Quality Model of Pharo (esug2016)

RBInstVarInSubclassesRule„I have no idea what this rules does“

Page 53: Stories About Renraku — the new Quality Model of Pharo (esug2016)

The Demand Shapes the Model

Page 54: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Started by the Message Browser

Page 55: Stories About Renraku — the new Quality Model of Pharo (esug2016)

We Need an Interval

self target class

Page 56: Stories About Renraku — the new Quality Model of Pharo (esug2016)

We Need an Interval

self target class

Page 57: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Transform.

ParseTree

Block

Types of Rules

Transform.

ParseTree

Block

Page 58: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Transform.

ParseTree

Block

Transform.

ParseTree

Block

Types of Rules

Page 59: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Types of Rules

Transform.

ParseTree

Block

Page 60: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Types of Rules

Transform.

ParseTree

Block

'Smalltalk ui icons iconNamed: `#aSymbol'

Page 61: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Types of Rules

Transform.

ParseTree

Block

^ GLMGenericAction new icon: (Smalltalk ui icons iconNamed: #stop); action: [ self halt ].

'Smalltalk ui icons iconNamed: `#aSymbol'

Page 62: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Types of Rules

Transform.

ParseTree

Block

^ GLMGenericAction new icon: (Smalltalk ui icons iconNamed: #stop); action: [ self halt ].

'Smalltalk ui icons iconNamed: `#aSymbol'

Page 63: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Types of Rules

Transform.

ParseTree

Block

^ GLMGenericAction new icon: (Smalltalk ui icons iconNamed: #stop); action: [ self halt ].

'Smalltalk ui icons iconNamed: `#aSymbol'

'`#aSymbol asIcon'

Page 64: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Types of Rules

Transform.

ParseTree

Block

^ GLMGenericAction new icon: (Smalltalk ui icons iconNamed: #stop); action: [ self halt ].

'Smalltalk ui icons iconNamed: `#aSymbol'

'`#aSymbol asIcon'

^ GLMGenericAction new icon: (#stop asIcon); action: [ self halt ].

Page 65: Stories About Renraku — the new Quality Model of Pharo (esug2016)
Page 66: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Node-based Critiques

Page 67: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Node-based Critiques

Page 68: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Node-based Critiques

Page 69: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Node-based Critiques

Page 70: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Transform.

ParseTree

Block

Transform.

ParseTree

Block

Interval Support

Page 71: Stories About Renraku — the new Quality Model of Pharo (esug2016)

The Point of No Return

Page 72: Stories About Renraku — the new Quality Model of Pharo (esug2016)

CriticBrowser on Renraku

Page 73: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Old Highlight

Page 74: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Highlight Based on AST

Page 75: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Useless Output

Page 76: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Custom Auto!x

Page 77: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Auto!x by Refactoring…

Page 78: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Same Preview as in QA

Page 79: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Auto!x by Refactoring…

Page 80: Stories About Renraku — the new Quality Model of Pharo (esug2016)

RePropertyAction new icon: #smallWindow asIcon; description: 'Open dependency analyzer'; action: [ :crit :package | self openDependencyAnalyzerOn: package ]; yourself

Architectural Action

Page 81: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Architectural Action

Page 82: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Architectural Action

Page 83: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Documentation :)

Page 84: Stories About Renraku — the new Quality Model of Pharo (esug2016)

System’s Help Browser

Page 85: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Here’s to the Contributors!

Page 86: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Marcus Denker

Here’s to the Contributors!

Page 87: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Nicolai HessMarcus Denker Henrik Nergaard

Here’s to the Contributors!

Page 88: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Nicolai HessMarcus Denker Henrik Nergaard

and others…

Here’s to the Contributors!

Page 89: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Now. YT 25yo

2006. YT 15yo

UnikernelFreelance Team

Helpdesk / Network Administrator ISP UARNet

Interlogic outsourcing SW company

Innocode SW company

Physics and Mathematics Lyceum

Minor Academy of Sciences of Ukraine

Bachelor in Informatics MScInf.

Ph.D.Lugano

RMoD internship

Ph.D.Bern

Page 90: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Now. YT 25yo

2006. YT 15yo

UnikernelFreelance Team

Helpdesk / Network Administrator ISP UARNet

Interlogic outsourcing SW company

Innocode SW company

Physics and Mathematics Lyceum

Minor Academy of Sciences of Ukraine

Bachelor in Informatics MScInf.

Ph.D.Lugano

RMoD internship

Ph.D.Bern

Page 91: Stories About Renraku — the new Quality Model of Pharo (esug2016)
Page 92: Stories About Renraku — the new Quality Model of Pharo (esug2016)
Page 93: Stories About Renraku — the new Quality Model of Pharo (esug2016)

46%

29%

17%

4%4%

Page 94: Stories About Renraku — the new Quality Model of Pharo (esug2016)

46%

29%

17%

4%4%

Actionability

Page 95: Stories About Renraku — the new Quality Model of Pharo (esug2016)

46%

29%

17%

4%4%

ActionabilityCritiques in Monkey

Page 96: Stories About Renraku — the new Quality Model of Pharo (esug2016)

46%

29%

17%

4%4%

ActionabilityCritiques in Monkey

Better Feedback

Page 97: Stories About Renraku — the new Quality Model of Pharo (esug2016)

46%

29%

17%

4%4%

Code Properties

ActionabilityCritiques in Monkey

Better Feedback

Page 98: Stories About Renraku — the new Quality Model of Pharo (esug2016)

46%

29%

17%

4%4%

Code Properties

ActionabilityCritiques in Monkey

Object Critiques

Better Feedback

Page 99: Stories About Renraku — the new Quality Model of Pharo (esug2016)

46%

29%

17%

4%4%

Code Properties

ActionabilityCritiques in Monkey

Object CritiquesCritiques in Debugger

Better Feedback

Page 100: Stories About Renraku — the new Quality Model of Pharo (esug2016)

46%

29%

17%

4%4%

Code Properties

ActionabilityCritiques in Monkey

Object CritiquesCritiques in Debugger

Better FeedbackRule Developer-friendliness

Page 101: Stories About Renraku — the new Quality Model of Pharo (esug2016)

46%

29%

17%

4%4%

Code Properties

ActionabilityCritiques in Monkey

Object Critiques

Usage Analysis

Critiques in Debugger

Better FeedbackRule Developer-friendliness

Page 102: Stories About Renraku — the new Quality Model of Pharo (esug2016)

Usage Analysis

46%

29%

17%

4%4%

Object Critiques

Better Feedback

Code Properties

Critiques in Debugger

ActionabilityCritiques in Monkey

Rule Developer-friendliness

Continuos Refactoring

Page 103: Stories About Renraku — the new Quality Model of Pharo (esug2016)

��

RENRAKU

object-agnostic

tool-agnostic

engine-agnostic

yet connecting everything

@yuriy_tymchuk

Stories About Renraku —the new Quality Model of Pharo