Stories About Renraku — the new Quality Model of Pharo

Post on 10-Feb-2017

218 views 2 download

Transcript of Stories About Renraku — the new Quality Model of Pharo

Stories About Renraku —the new Quality Model of Pharo

@yuriy_tymchukSoftware Composition Group

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

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

A Mistake

A Mistake can be Solved EarlyA Mistake

How do you !nd QualityAssistant?

Very disturbingDisturbingSometimes DisturbingNot influentialSometimes UsefulUsefulVery useful

How do you !nd QualityAssistant?

Very disturbingDisturbingSometimes DisturbingNot influentialSometimes UsefulUsefulVery useful

46%

29%

17%

4%4%

How do you !nd QualityAssistant?

46%

29%

17%

4%4%

Very disturbingDisturbingSometimes DisturbingNot influentialSometimes UsefulUsefulVery useful

How often do you use CriticBrowser?

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?

Renraku

ONE DOES NOT SIMPLY

“SHOW” RENRAKU

The Origin

Renraku

��

Renraku

[|]Rule Code

Renraku

[|]CritiqueRule Code

The Vocabulary

Renraku

[|]Rule CodeCritique

English Language

CritiqueCritic

English Language

CritiqueCritic

English Language

CritiqueCritic

Huge Refactoring

CritiqueCritic

ReTrivialCritic ReTrivialCritique

Our Dog Food is Good

Our Dog Food is Good!

Death and Life

xx

Who Shoots the Assistant?

Who is the Assistant?

Who is the Assistant?

This is not QualityAssistant

This is not QualityAssistant

Usage Contracts (2013)

Angela Lozano, Kim Mens, Andy Kellens

Usage Contracts (2013)

Angela Lozano, Kim Mens, Andy Kellens

Polycriticism

Issue Tracker Connection

Issue Tracker Connection

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

Issue Tracker Connection

Sure!

Issue Tracker Connection

Sure!

Just follow the Renraku protocol

External Properties for Editor

by Juraj Kubelka

External Properties for Editor

by Juraj Kubelka

Feedback Loop

Feedback

RBInstVarInSubclassesRule

RBInstVarInSubclassesRule„I have no idea what this rules does“

RBInstVarInSubclassesRule„I have no idea what this rules does“

RBInstVarInSubclassesRule„I have no idea what this rules does“

RBInstVarInSubclassesRule„I have no idea what this rules does“

RBInstVarInSubclassesRule„I have no idea what this rules does“

RBInstVarInSubclassesRule„I have no idea what this rules does“

The Demand Shapes the Model

Started by the Message Browser

We Need an Interval

self target class

We Need an Interval

self target class

Transform.

ParseTree

Block

Types of Rules

Transform.

ParseTree

Block

Transform.

ParseTree

Block

Transform.

ParseTree

Block

Types of Rules

Types of Rules

Transform.

ParseTree

Block

Types of Rules

Transform.

ParseTree

Block

'Smalltalk ui icons iconNamed: `#aSymbol'

Types of Rules

Transform.

ParseTree

Block

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

'Smalltalk ui icons iconNamed: `#aSymbol'

Types of Rules

Transform.

ParseTree

Block

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

'Smalltalk ui icons iconNamed: `#aSymbol'

Types of Rules

Transform.

ParseTree

Block

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

'Smalltalk ui icons iconNamed: `#aSymbol'

'`#aSymbol asIcon'

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 ].

Node-based Critiques

Node-based Critiques

Node-based Critiques

Node-based Critiques

Transform.

ParseTree

Block

Transform.

ParseTree

Block

Interval Support

The Point of No Return

CriticBrowser on Renraku

Old Highlight

Highlight Based on AST

Useless Output

Custom Auto!x

Auto!x by Refactoring…

Same Preview as in QA

Auto!x by Refactoring…

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

Architectural Action

Architectural Action

Architectural Action

Documentation :)

System’s Help Browser

Here’s to the Contributors!

Marcus Denker

Here’s to the Contributors!

Nicolai HessMarcus Denker Henrik Nergaard

Here’s to the Contributors!

Nicolai HessMarcus Denker Henrik Nergaard

and others…

Here’s to the Contributors!

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

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

46%

29%

17%

4%4%

46%

29%

17%

4%4%

Actionability

46%

29%

17%

4%4%

ActionabilityCritiques in Monkey

46%

29%

17%

4%4%

ActionabilityCritiques in Monkey

Better Feedback

46%

29%

17%

4%4%

Code Properties

ActionabilityCritiques in Monkey

Better Feedback

46%

29%

17%

4%4%

Code Properties

ActionabilityCritiques in Monkey

Object Critiques

Better Feedback

46%

29%

17%

4%4%

Code Properties

ActionabilityCritiques in Monkey

Object CritiquesCritiques in Debugger

Better Feedback

46%

29%

17%

4%4%

Code Properties

ActionabilityCritiques in Monkey

Object CritiquesCritiques in Debugger

Better FeedbackRule Developer-friendliness

46%

29%

17%

4%4%

Code Properties

ActionabilityCritiques in Monkey

Object Critiques

Usage Analysis

Critiques in Debugger

Better FeedbackRule Developer-friendliness

Usage Analysis

46%

29%

17%

4%4%

Object Critiques

Better Feedback

Code Properties

Critiques in Debugger

ActionabilityCritiques in Monkey

Rule Developer-friendliness

Continuos Refactoring

��

RENRAKU

object-agnostic

tool-agnostic

engine-agnostic

yet connecting everything

@yuriy_tymchuk

Stories About Renraku —the new Quality Model of Pharo