20
Designite – A Software Design Quality Assessment Tool Tushar Sharma, Pratibha Mishra, Rohit Tiwari

Designite – Software Design Quality Assessment Tool

Embed Size (px)

Citation preview

Page 1: Designite – Software Design Quality Assessment Tool

Designite – A Software Design Quality Assessment

Tool

Tushar Sharma, Pratibha Mishra, Rohit Tiwari

Page 2: Designite – Software Design Quality Assessment Tool

A brief history

Page 3: Designite – Software Design Quality Assessment Tool

Software design – important but inherently complex

Real-life projects frequently suffer from poor design quality and huge technical debt.

Page 4: Designite – Software Design Quality Assessment Tool

Seesaw game of software development

Technical Debt

Maintainability

Page 5: Designite – Software Design Quality Assessment Tool

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.

Page 6: Designite – Software Design Quality Assessment Tool

Existing tools and their limitationsMetrics-based tools

Page 7: Designite – Software Design Quality Assessment Tool

Existing tools and their limitationsSmell detection tools

Page 8: Designite – Software Design Quality Assessment Tool

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

Page 9: Designite – Software Design Quality Assessment Tool

Designite – Architecture

NRefactory

Source Model

Designite Back-end

Designite Front-end

Designite Console

Designite Plug-in (SonarQube)

Page 10: Designite – Software Design Quality Assessment Tool

Design smell detection

Page 11: Designite – Software Design Quality Assessment Tool

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

Page 12: Designite – Software Design Quality Assessment Tool

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

Page 13: Designite – Software Design Quality Assessment Tool

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

Page 14: Designite – Software Design Quality Assessment Tool

Metrics analysis

Page 15: Designite – Software Design Quality Assessment Tool

Dependency analysis

Page 16: Designite – Software Design Quality Assessment Tool

Hotspot analysis

Page 17: Designite – Software Design Quality Assessment Tool

Implementation smells

Page 18: Designite – Software Design Quality Assessment Tool

Evaluation

Page 19: Designite – Software Design Quality Assessment Tool

Contributions

• Research • A tool to help researchers in carrying out

empirical studies

• Practice • A design quality analysis tool to help

practitioners improve design agility

Page 20: Designite – Software Design Quality Assessment Tool

Tushar Sharma http://www.tusharma.in

[email protected]

http://www.designite-tools.com