designite – software design quality assessment tool

Post on 08-Feb-2017

264 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

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

Tushar Sharma http://www.tusharma.in

tushar@aueb.gr

http://www.designite-tools.com

top related