SlideShare a Scribd company logo
1 of 30
Download to read offline
ViDI
Visual Design Inspector
R AE E LV
Yuriy Tymchuk
Michele Lanza
Quality
A Bit About Health
SOMETHING IS WRONG!!!
Weight (kg)
75
81
88
94
100
Fat Weight (%)
0
4
9
13
17
What are you
getting rid of?
Calcium Level in a Body
Calcium Level in a Body
DANGER!
blocked veins
torn tissue
broken bone
lethal
intoxication
TIME TO LIVE: 2H
Code quality state of art?
Package
Class
Method
Package
Class
Method
Foreign Class
Package
Class
Method
Foreign Class
Less Critics
Package
Class
Method
Foreign Class
More Critics
Less Critics
Is SmallLint good?
Can you spot the quality difference?
SmallLint can!
✓❌
aClass is large
(NumberOfMethods veryHighFor: aClass) or:
(NumberOfInstVars veryHighFor: aClass) or: (
(NumberOfMethods highFor: aClass) and:
(NumberOfInstVars highFor: aClass)
)
aClass is large
(NumberOfMethods veryHighFor: aClass) or:
(NumberOfInstVars veryHighFor: aClass) or: (
(NumberOfMethods highFor: aClass) and:
(NumberOfInstVars highFor: aClass)
)
0 10.5
aClass is large
(NumberOfMethods veryHighFor: aClass) or:
(NumberOfInstVars veryHighFor: aClass) or: (
(NumberOfMethods highFor: aClass) and:
(NumberOfInstVars highFor: aClass)
)
0 10.5 ?
Gotham DEMO
and more…
http://vidi.inf.usi.ch
https://github.com/Uko/Vidi
yuriy.tymchuk@usi.ch
@yuriy_tymchuk
"

More Related Content

More from Yuriy Tymchuk

JIT Feedback — what Experienced Developers like about Static Analysis (icpc2018)
JIT Feedback — what Experienced Developers like about Static Analysis (icpc2018)JIT Feedback — what Experienced Developers like about Static Analysis (icpc2018)
JIT Feedback — what Experienced Developers like about Static Analysis (icpc2018)Yuriy Tymchuk
 
Pharo Quality Engine: The Last Strokes (esug2017)
Pharo Quality Engine: The Last Strokes (esug2017)Pharo Quality Engine: The Last Strokes (esug2017)
Pharo Quality Engine: The Last Strokes (esug2017)Yuriy Tymchuk
 
The False False Positives of Static Analysis (sattose2017)
The False False Positives of Static Analysis (sattose2017)The False False Positives of Static Analysis (sattose2017)
The False False Positives of Static Analysis (sattose2017)Yuriy Tymchuk
 
Walls, Pillars and Beams: A 3D Decomposition of Quality Anomalies (vissoft2016)
Walls, Pillars and Beams: A 3D Decomposition of Quality Anomalies (vissoft2016)Walls, Pillars and Beams: A 3D Decomposition of Quality Anomalies (vissoft2016)
Walls, Pillars and Beams: A 3D Decomposition of Quality Anomalies (vissoft2016)Yuriy Tymchuk
 
When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valu...
When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valu...When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valu...
When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valu...Yuriy Tymchuk
 
Stories About Renraku — the new Quality Model of Pharo (esug2016)
Stories About Renraku — the new Quality Model of Pharo (esug2016)Stories About Renraku — the new Quality Model of Pharo (esug2016)
Stories About Renraku — the new Quality Model of Pharo (esug2016)Yuriy Tymchuk
 
Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Про що не говорять програмісти, про що мовчать науковці (UCU2015)Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Про що не говорять програмісти, про що мовчать науковці (UCU2015)Yuriy Tymchuk
 
What if Clippy Would Criticize Your Code? (benevol2015)
What if Clippy Would Criticize Your Code? (benevol2015)What if Clippy Would Criticize Your Code? (benevol2015)
What if Clippy Would Criticize Your Code? (benevol2015)Yuriy Tymchuk
 
Code Review: Veni, ViDI, Vici (saner15)
Code Review: Veni, ViDI, Vici (saner15)Code Review: Veni, ViDI, Vici (saner15)
Code Review: Veni, ViDI, Vici (saner15)Yuriy Tymchuk
 
Graphics and Visualization (Pharo Days 2015)
Graphics and Visualization (Pharo Days 2015)Graphics and Visualization (Pharo Days 2015)
Graphics and Visualization (Pharo Days 2015)Yuriy Tymchuk
 
FAST Master's Defense (UA)
FAST Master's Defense (UA)FAST Master's Defense (UA)
FAST Master's Defense (UA)Yuriy Tymchuk
 
Signs of Caries at SmalltalkHub (mooseday13/2)
Signs of Caries at SmalltalkHub (mooseday13/2)Signs of Caries at SmalltalkHub (mooseday13/2)
Signs of Caries at SmalltalkHub (mooseday13/2)Yuriy Tymchuk
 
FAST Resolution (benevol13)
FAST Resolution (benevol13)FAST Resolution (benevol13)
FAST Resolution (benevol13)Yuriy Tymchuk
 
Modeling ASTs with FAST (mooseday13)
Modeling ASTs with FAST (mooseday13)Modeling ASTs with FAST (mooseday13)
Modeling ASTs with FAST (mooseday13)Yuriy Tymchuk
 

More from Yuriy Tymchuk (14)

JIT Feedback — what Experienced Developers like about Static Analysis (icpc2018)
JIT Feedback — what Experienced Developers like about Static Analysis (icpc2018)JIT Feedback — what Experienced Developers like about Static Analysis (icpc2018)
JIT Feedback — what Experienced Developers like about Static Analysis (icpc2018)
 
Pharo Quality Engine: The Last Strokes (esug2017)
Pharo Quality Engine: The Last Strokes (esug2017)Pharo Quality Engine: The Last Strokes (esug2017)
Pharo Quality Engine: The Last Strokes (esug2017)
 
The False False Positives of Static Analysis (sattose2017)
The False False Positives of Static Analysis (sattose2017)The False False Positives of Static Analysis (sattose2017)
The False False Positives of Static Analysis (sattose2017)
 
Walls, Pillars and Beams: A 3D Decomposition of Quality Anomalies (vissoft2016)
Walls, Pillars and Beams: A 3D Decomposition of Quality Anomalies (vissoft2016)Walls, Pillars and Beams: A 3D Decomposition of Quality Anomalies (vissoft2016)
Walls, Pillars and Beams: A 3D Decomposition of Quality Anomalies (vissoft2016)
 
When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valu...
When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valu...When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valu...
When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valu...
 
Stories About Renraku — the new Quality Model of Pharo (esug2016)
Stories About Renraku — the new Quality Model of Pharo (esug2016)Stories About Renraku — the new Quality Model of Pharo (esug2016)
Stories About Renraku — the new Quality Model of Pharo (esug2016)
 
Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Про що не говорять програмісти, про що мовчать науковці (UCU2015)Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Про що не говорять програмісти, про що мовчать науковці (UCU2015)
 
What if Clippy Would Criticize Your Code? (benevol2015)
What if Clippy Would Criticize Your Code? (benevol2015)What if Clippy Would Criticize Your Code? (benevol2015)
What if Clippy Would Criticize Your Code? (benevol2015)
 
Code Review: Veni, ViDI, Vici (saner15)
Code Review: Veni, ViDI, Vici (saner15)Code Review: Veni, ViDI, Vici (saner15)
Code Review: Veni, ViDI, Vici (saner15)
 
Graphics and Visualization (Pharo Days 2015)
Graphics and Visualization (Pharo Days 2015)Graphics and Visualization (Pharo Days 2015)
Graphics and Visualization (Pharo Days 2015)
 
FAST Master's Defense (UA)
FAST Master's Defense (UA)FAST Master's Defense (UA)
FAST Master's Defense (UA)
 
Signs of Caries at SmalltalkHub (mooseday13/2)
Signs of Caries at SmalltalkHub (mooseday13/2)Signs of Caries at SmalltalkHub (mooseday13/2)
Signs of Caries at SmalltalkHub (mooseday13/2)
 
FAST Resolution (benevol13)
FAST Resolution (benevol13)FAST Resolution (benevol13)
FAST Resolution (benevol13)
 
Modeling ASTs with FAST (mooseday13)
Modeling ASTs with FAST (mooseday13)Modeling ASTs with FAST (mooseday13)
Modeling ASTs with FAST (mooseday13)
 

Recently uploaded

HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 

Recently uploaded (20)

HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 

ViDI - The Visual Design Inspector (fosdem2015)