designite – software design quality assessment tool
TRANSCRIPT
Designite – A Software Design Quality Assessment
Tool
Tushar Sharma, Pratibha Mishra, Rohit Tiwari
A brief history
Software design – important but inherently complex
Real-life projects frequently suffer from poor design quality and huge technical debt.
Seesaw game of software development
Technical Debt
Maintainability
Design smells
“Design smells are certain structures in the design that
indicate violation of fundamental design
principles and negatively impact design quality”.
Identifying design smells and refactoring them could lead us to a better design quality.
Existing tools and their limitationsMetrics-based tools
Existing tools and their limitationsSmell detection tools
Designite
Design Smell
Metrics
Dependency Structure
Matrix
Hotspots
Code Clones
SonarQube Integration
Executive Summary
Export Results
Implementation Smell
Fully functional free academic licenses are offered
for academic researchers
Designite – Architecture
NRefactory
Source Model
Designite Back-end
Designite Front-end
Designite Console
Designite Plug-in (SonarQube)
Design smell detection
Design smell detection
Abstraction Smells •Unnecessary Abstraction • Imperative Abstraction •Multifaceted Abstraction •Unutilized Abstraction •Duplicate Abstraction
Encapsulation Smells • Deficient Encapsulation • Unexploited Encapsulation
Modularization Smells • Broken Modularization • Insufficient Modularization • Hub-like Modularization • Cyclically-dependent Modularization
Hierarchy Smells • Wide Hierarchy • Deep Hierarchy • Multipath Hierarchy • Cyclic Hierarchy • Rebellious Hierarchy • Unfactored Hierarchy • Missing Hierarchy • Broken Hierarchy
Metrics analysis
Metric
LOC (Lines Of Code)
NON (No Of Namespaces)
NOC (No Of Classes)
NOM (No Of Methods)
MV (Metric Violations)
SD (Smell Density)
DUP (Code Duplication)
DDS (Detected Design Smells)
NOF (No Of Fields)
NOPF (No Of Public Fields)
NOPM (No Of Public Methods)
Solution
✓
✓
✓
✓
✓
✓
✓
Project
✓
✓
✓
✓
✓
✓
✓
✓
Class
✓
✓
✓
✓
✓
✓
Method
✓
Metrics analysis
Metric
NOP (No Of Properties)
WMC (Weighted Methods per Class)
NC (No Of Children)
DIT (Depth of Inheritance Tree)
LCOM (Lack of Cohesion among Methods)
Fan-in
Fan-out
CC (Cyclomatic Complexity)
PC (Parameter Count)
Solution
Project Class
✓
✓
✓
✓
✓
✓
✓
Method
✓
✓
Metrics analysis
Dependency analysis
Hotspot analysis
Implementation smells
Evaluation
Contributions
• Research • A tool to help researchers in carrying out
empirical studies
• Practice • A design quality analysis tool to help
practitioners improve design agility