when qualityassistant meets pharo [enforced code critiques motivate more valuable rules] (iwst2016)
TRANSCRIPT
![Page 1: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/1.jpg)
@yuriy_tymchuk
When QualityAssistant Meets Pharo Enforced Code Critiques Motivate
More Valuable Rules
, Mohammad Ghafari, Oscar Nierstrasz Software Composition Group @ University of Bern
![Page 2: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/2.jpg)
The Concept
![Page 3: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/3.jpg)
The Concept
Rule
![Page 4: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/4.jpg)
The Concept
Rule
![Page 5: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/5.jpg)
The Concept
Rule Critique
produces
![Page 6: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/6.jpg)
The Concept
Rule Critique
produces
![Page 7: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/7.jpg)
The Concept
Rule Critique
[|]Code
produces
improves
![Page 8: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/8.jpg)
The Concept
Rule Critique
[|]Code
produces
improves (feedback)
improves
![Page 9: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/9.jpg)
The Concept
Rule Critique
[|]Code
produces
improves (feedback)
improves
![Page 10: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/10.jpg)
The Concept
Rule Critique
[|]Code
produces
improves
![Page 11: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/11.jpg)
The Concept
Rule Critique
[|]Code
produces
improves
![Page 12: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/12.jpg)
The Existing CriticBrowser
![Page 13: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/13.jpg)
Newly Introduced QualityAssistant
![Page 14: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/14.jpg)
SmallLint Issues per Milestone
0
10
20
30
40
50
Pharo 3 Pharo 4 Pharo 5 Pharo 6*
![Page 15: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/15.jpg)
Changes in Rules
![Page 16: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/16.jpg)
Changes in Rules
Fixed
![Page 17: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/17.jpg)
Changes in Rules
Fixed Removed
![Page 18: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/18.jpg)
Added
Changes in Rules
Fixed Removed
![Page 19: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/19.jpg)
Fixed
![Page 20: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/20.jpg)
Fixed
(Collection>>#add:) protocol #adding
![Page 21: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/21.jpg)
Fixed
(Collection>>#add:) protocol
(ArrayedCollection>>#add:) protocol #adding
#adding
![Page 22: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/22.jpg)
Fixed
(Collection>>#add:) protocol
(ArrayedCollection>>#add:) protocol #adding
#accessing
![Page 23: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/23.jpg)
Fixed
(Collection>>#add:) protocol
(ArrayedCollection>>#add:) protocol #adding
#accessing
![Page 24: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/24.jpg)
Fixed
(Collection>>#add:) protocol#'as yet unclassified'
(ArrayedCollection>>#add:) protocol #adding
![Page 25: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/25.jpg)
Fixed
(Collection>>#add:) protocol#'as yet unclassified'
(ArrayedCollection>>#add:) protocol #adding
Trivial Bug
![Page 26: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/26.jpg)
Fixed
![Page 27: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/27.jpg)
Fixed
RBModi!esCollectionRule
![Page 28: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/28.jpg)
Fixed
RBModi!esCollectionRule
Horrible Bug
![Page 29: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/29.jpg)
Removed
![Page 30: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/30.jpg)
Removed
Probably missing ‘; yourself’
Non-blocks in special messages
References an abstract class
![Page 31: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/31.jpg)
Removed
Probably missing ‘; yourself’
Non-blocks in special messages
References an abstract classsize = 1 ifTrue: ’:’ ifFalse: ’s:’
![Page 32: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/32.jpg)
Removed
Probably missing ‘; yourself’
Non-blocks in special messages
References an abstract classString new
size = 1 ifTrue: ’:’ ifFalse: ’s:’
![Page 33: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/33.jpg)
Removed
Probably missing ‘; yourself’
Non-blocks in special messages
References an abstract classString new
size = 1 ifTrue: ’:’ ifFalse: ’s:’
Educational
![Page 34: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/34.jpg)
Added
![Page 35: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/35.jpg)
Added
assert: a = b
ifNotNilDo: ifNotNil:
Smalltalk at: Smalltalk globals at:
assert: a equals: b
![Page 36: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/36.jpg)
Added
assert: a = b
ifNotNilDo: ifNotNil:
Smalltalk at: Smalltalk globals at:
assert: a equals: b
Migration
![Page 37: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/37.jpg)
Added
assert: a = b
ifNotNilDo: ifNotNil:
Smalltalk at: Smalltalk globals at:
assert: a equals: b
Migration
Recipe: use rewrite rules
![Page 38: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/38.jpg)
Added
![Page 39: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/39.jpg)
Added
BoxedFloat64 reference to
![Page 40: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/40.jpg)
Added
BoxedFloat64 reference to
Private Access
![Page 41: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/41.jpg)
Added
BoxedFloat64 reference to
Recipe: annotate/maintain a collection of system classes/methods
Private Access
![Page 42: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/42.jpg)
Added
![Page 43: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/43.jpg)
Added
b := RTMondrian new. b edges connectFrom: #superclass. b nodes: RTShape withAllSubclasses.
![Page 44: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/44.jpg)
Added
b := RTMondrian new. b edges connectFrom: #superclass. b nodes: RTShape withAllSubclasses.
b := RTMondrian new. b edges connectFrom: #superclass. b nodes: RTShape withAllSubclasses.
![Page 45: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/45.jpg)
Added
b := RTMondrian new. b edges connectFrom: #superclass. b nodes: RTShape withAllSubclasses.
Invocation order
b := RTMondrian new. b edges connectFrom: #superclass. b nodes: RTShape withAllSubclasses.
![Page 46: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/46.jpg)
Added
b := RTMondrian new. b edges connectFrom: #superclass. b nodes: RTShape withAllSubclasses.
Recipe:initialize super initialize. self add: #edges requiresPreSend: #nodes:.
Invocation Order
b := RTMondrian new. b edges connectFrom: #superclass. b nodes: RTShape withAllSubclasses.
![Page 47: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/47.jpg)
Added
![Page 48: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/48.jpg)
Added
ReAbstractRule class >> #checksPackage; >> #checksClass; >> #checksMethod; >> #checksNode
![Page 49: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/49.jpg)
Added
ReAbstractRule class >> #checksPackage; >> #checksClass; >> #checksMethod; >> #checksNode
true?
![Page 50: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/50.jpg)
Added
ReAbstractRule class >> #checksPackage; >> #checksClass; >> #checksMethod; >> #checksNode
true?
Class Structure
![Page 51: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/51.jpg)
Added
ReAbstractRule class >> #checksPackage; >> #checksClass; >> #checksMethod; >> #checksNode
true?
Recipe:(aClass inheritsFrom: ReAbstractRule) and: [ selectors anySatisfy: [ :s | aClass perform: s ] ]
Class Structure
![Page 52: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/52.jpg)
Added
![Page 53: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/53.jpg)
Added
gtInspectorMethodsIn: composite <gtInspectorPresentationOrder: 20> | methods | methods := (self methods collect: #asRingDefinition) sorted: [ :x :y | x selector < y selector ] composite list title: 'Methods'; display: methods; format: #selector; tags: [ :each | {each methodClass name} ]
![Page 54: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/54.jpg)
Added
gtInspectorMethodsIn: composite <gtInspectorPresentationOrder: 20> | methods | methods := (self methods collect: #asRingDefinition) sorted: [ :x :y | x selector < y selector ] composite list title: 'Methods'; display: methods; format: #selector; tags: [ :each | {each methodClass name} ]
![Page 55: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/55.jpg)
Added
gtInspectorMethodsIn: composite <gtInspectorPresentationOrder: 20> composite list title: 'Methods'; display: ((self methods collect: #asRingDefinition) sorted: [ :x :y | x selector < y selector ]);
format: #selector; tags: [ :each | {each methodClass name} ]
![Page 56: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/56.jpg)
Added
gtInspectorMethodsIn: composite <gtInspectorPresentationOrder: 20> composite list title: 'Methods'; display: [ (self methods collect: #asRingDefinition) sorted: [ :x :y | x selector < y selector ] ]; format: #selector; tags: [ :each | {each methodClass name} ]
![Page 57: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/57.jpg)
Added Lazy evaluation
gtInspectorMethodsIn: composite <gtInspectorPresentationOrder: 20> composite list title: 'Methods'; display: [ (self methods collect: #asRingDefinition) sorted: [ :x :y | x selector < y selector ] ]; format: #selector; tags: [ :each | {each methodClass name} ]
![Page 58: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/58.jpg)
gtInspectorMethodsIn: composite <gtInspectorPresentationOrder: 20> composite list title: 'Methods'; display: [ (self methods collect: #asRingDefinition) sorted: [ :x :y | x selector < y selector ] ]; format: #selector; tags: [ :each | {each methodClass name} ]
Added Lazy evaluation
Recipe:presentation: aPresentation isTheLeftmostRecepientIn: aStatement
^ (aStatement isMessage or: [ aStatement isCascade ]) and: [ aStatement leftmostChainReceiver = aPresentation ]
![Page 59: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/59.jpg)
Feedback
![Page 60: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/60.jpg)
Feedback
http://renraku.inf.usi.ch/rules
![Page 61: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/61.jpg)
Feedbackhttp://renraku.inf.usi.ch/rules
![Page 62: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/62.jpg)
Feedbackhttp://renraku.inf.usi.ch/rules
![Page 63: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/63.jpg)
Feedbackhttp://renraku.inf.usi.ch/rules
![Page 64: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/64.jpg)
Feedbackhttp://renraku.inf.usi.ch/rules
![Page 65: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/65.jpg)
@yuriy_tymchuk
When QualityAssistant Meets Pharo Enforced Code Critiques Motivate
More Valuable Rules
, Mohammad Ghafari, Oscar Nierstrasz Software Composition Group @ University of Bern
![Page 66: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/66.jpg)
@yuriy_tymchuk
When QualityAssistant Meets Pharo Enforced Code Critiques Motivate
More Valuable Rules
, Mohammad Ghafari, Oscar Nierstrasz Software Composition Group @ University of Bern
Important Fixes
![Page 67: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/67.jpg)
@yuriy_tymchuk
When QualityAssistant Meets Pharo Enforced Code Critiques Motivate
More Valuable Rules
, Mohammad Ghafari, Oscar Nierstrasz Software Composition Group @ University of Bern
Important Fixes
Educational Rules Removed
![Page 68: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/68.jpg)
@yuriy_tymchuk
When QualityAssistant Meets Pharo Enforced Code Critiques Motivate
More Valuable Rules
, Mohammad Ghafari, Oscar Nierstrasz Software Composition Group @ University of Bern
Important Fixes
Educational Rules Removed
Domain Rules Added
![Page 69: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/69.jpg)
@yuriy_tymchuk
When QualityAssistant Meets Pharo Enforced Code Critiques Motivate
More Valuable Rules
, Mohammad Ghafari, Oscar Nierstrasz Software Composition Group @ University of Bern
Important Fixes
Educational Rules Removed
Domain Rules Added
Migration
![Page 70: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/70.jpg)
@yuriy_tymchuk
When QualityAssistant Meets Pharo Enforced Code Critiques Motivate
More Valuable Rules
, Mohammad Ghafari, Oscar Nierstrasz Software Composition Group @ University of Bern
Important Fixes
Educational Rules Removed
Domain Rules Added
Migration Private access
![Page 71: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/71.jpg)
@yuriy_tymchuk
When QualityAssistant Meets Pharo Enforced Code Critiques Motivate
More Valuable Rules
, Mohammad Ghafari, Oscar Nierstrasz Software Composition Group @ University of Bern
Important Fixes
Educational Rules Removed
Domain Rules Added
Migration Private access Invocation order
![Page 72: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/72.jpg)
@yuriy_tymchuk
When QualityAssistant Meets Pharo Enforced Code Critiques Motivate
More Valuable Rules
, Mohammad Ghafari, Oscar Nierstrasz Software Composition Group @ University of Bern
Important Fixes
Educational Rules Removed
Domain Rules Added
Migration Private access Invocation order Class structure
![Page 73: When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valuable Rules] (iwst2016)](https://reader031.vdocuments.mx/reader031/viewer/2022030310/58f03e1a1a28abeb7f8b45c1/html5/thumbnails/73.jpg)
@yuriy_tymchuk
When QualityAssistant Meets Pharo Enforced Code Critiques Motivate
More Valuable Rules
, Mohammad Ghafari, Oscar Nierstrasz Software Composition Group @ University of Bern
Important Fixes
Educational Rules Removed
Domain Rules Added
Migration Private access Invocation order Class structure Lazy evaluation