SlideShare a Scribd company logo
The	Tale	of	Two	Source-code	Analysis	Tools
Learning	and	experiences
Tushar	Sharma
Athens	University	of	Economics	and	Business	
Funded	by	SENECA	project	under	Marie-Skłodowska Curie	Actions
Tools
Augur Designite
A	change	impact	analysis	tool A	software	design	quality	assessment	tool
(http://www.designite-tools.com)
Tools
Augur Designite
A	change	impact	analysis	tool A	software	design	quality	assessment	tool
Features
• Change	impact	analysis	with	
multiple	granularity	support
o Cutting	across	projects,	
namespaces,	classes,	
methods,	fields,	and	
statements
• Intra-granular	queries
o Supporting	a	query	where	a	
change	and	the	associated	
impact	could	be	on	different	
granularities
Software
System
VSS
Namespaces
(VN) Classes (VC)
Methods (VM)
Local
Variables
(VL)
Fields
(VF)
Statements (VS)
Children
(Ec)
Data
dependency
(Ed)
Structure
dependency
(Es)
Method-
call (Ecall)
Super class
(Esup)
Features
• Change	Impact	Query	Language	(CIQL)
o For	large	scale	batch	querying	– opening	a	new	set	
of	applications	of	CIA
CIQL::get	“<Granularity	(Impact)>”	
[within “<Scope>”]	
[with	“<Depth>”]	where	
“<Entity>”	is	
“<Granularity>”.
Features
• Support	for	extended	dependencies
o Data
o Control
o Semantic
o Environment
Architecture
Tools
Augur Designite
A	change	impact	analysis	tool A	software	design	quality	assessment	tool
Features
• Supports	detection	of	19	design	smells	and	11	
implementation	smells
Features
• Supports	computation	of	various	metrics	with	custom	
thresholds
Features
• Provides	Dependency	Structure	Matrix
Features
• Performs	Trend	Analysis
Learning	and	experiences
The	Big	Gap	
between	Academics	and	Industry
Proposing	a	new	research	program	in	a	corporate	research	
organization	is	not	easy!
The	Big	Gap	
between	Academics	and	Industry
Learning	(as	a	researcher)
- Make	sure	the	availability	of	
artifacts	and	their	broader	
applicability
Parsing	mechanism
Various	options	for	collecting	source	code	information
• String	manipulation
• Reflection
• AST
• Byte	code	analysis
Which	AST	library?
CSParser
Metaspec
#Recognize!
NRefactory
MS	Roslyn
• License
• Features
• Cost
• Community	support
• Future	proof-ness
Parsing	mechanism
Selection	criteria
Architecture
Plug-in	
or	
Independent	application
Console	application
Options
• Use	conditional	compilation	
(using	ConditionalAttribute)
• Duplicate	the	code-base
• Perform	architecture	refactoring
Console	application
Experience:
- Architecture	refactoring	is	expensive	but	effective!
- Support	for	architecture	refactoring	within	IDEs	is	not	
sufficient
Extensibility
Smell	detection	logic	must	be	extensible
i.e.	new	rules	can	be	added	without	any	change	in	
source	code	analysis	logic	and	user	interface
Learning:
- The	role	of	appropriate	design	is	important
Information	dissemination
Producing	useful	information	is	desirable;	
presenting	it	well	to	the	user	is	the	extra	mile.
Information	dissemination
Different	types	of	users,	different	requirements.
Paying	attention	to	user	requirements
Paying	attention	to	user	requirements
References
[1]	Tushar	Sharma,	Pratibha Mishra,	and	Rohit Tiwari.	2016.	
Designite:	a	software	design	quality	assessment	tool.	
In Proceedings	of	the	1st	International	Workshop	on	Bringing	
Architectural	Design	Thinking	into	Developers'	Daily	
Activities (BRIDGE	'16).	ACM,	New	York,	NY,	USA,	1-4.	DOI:	
http://dx.doi.org/10.1145/2896935.2896938
2]	Tushar	Sharma,	Girish	Suryanarayana.	Augur:	
Incorporating	Hidden	Dependencies	and	Variable	Granularity	
in	Change	Impact	Analysis.	Submitted	at	SCAM	2016,	waiting	
for	the	decision.
Thank you!!
Courtesy:	spikedmath.com
Tushar Sharma
tusharsharma@ieee.org
@Sharma__Tushar

More Related Content

PDF
Sub-Method Reflection
PDF
VA Smalltalk Update
PDF
JavaDiff - Java source code diff tool
PPTX
Slides for Houston iPhone Developers' Meetup (April 2012)
 
PDF
How To Make Your Testing More Groovy
PDF
PDF
Open source caqdas what is in the box and what is missing
PPTX
Tool-Support-For-Testing-Section-6.pptx
Sub-Method Reflection
VA Smalltalk Update
JavaDiff - Java source code diff tool
Slides for Houston iPhone Developers' Meetup (April 2012)
 
How To Make Your Testing More Groovy
Open source caqdas what is in the box and what is missing
Tool-Support-For-Testing-Section-6.pptx

Similar to The tail of two source-code analysis tools - Learning and experiences (20)

PDF
Testing: Python, Java, Groovy, etc.
PDF
Software Security - Static Analysis Tools
PDF
VA Smalltalk Update
PDF
Presentation about my Research
PDF
Changes in programmer tools' infrastructure
PDF
Requirements Based Testing
PDF
Parsing and Type checking all 2^10000 configurations of the Linux kernel
PDF
Machine Learning in Static Analysis of Program Source Code
PDF
10.1.1.87.529
PDF
Detection of vulnerabilities in programs with the help of code analyzers
PDF
Open Source Tools and the Software Engineering Process
PDF
Agile Seaside
PDF
Seaside — Agile Software Development
ODP
Joxean Koret - Interactive Static Analysis Tools for Vulnerability Discovery ...
PPT
Assertions a Decade Later (invited talk at ICSE 2002)
PDF
Beyond Static Analysis: Integrating C and C++ Static Analysis with Unit Testi...
PPTX
Using Static Analysis Tools to Become a Superhero Programmer.pptx
PDF
Changes in programmer tools' infrastructure
PDF
Past and today of Metasepi project
PPT
Part5 - enforcing coding standard and best practices with jas forge v1.0
Testing: Python, Java, Groovy, etc.
Software Security - Static Analysis Tools
VA Smalltalk Update
Presentation about my Research
Changes in programmer tools' infrastructure
Requirements Based Testing
Parsing and Type checking all 2^10000 configurations of the Linux kernel
Machine Learning in Static Analysis of Program Source Code
10.1.1.87.529
Detection of vulnerabilities in programs with the help of code analyzers
Open Source Tools and the Software Engineering Process
Agile Seaside
Seaside — Agile Software Development
Joxean Koret - Interactive Static Analysis Tools for Vulnerability Discovery ...
Assertions a Decade Later (invited talk at ICSE 2002)
Beyond Static Analysis: Integrating C and C++ Static Analysis with Unit Testi...
Using Static Analysis Tools to Become a Superhero Programmer.pptx
Changes in programmer tools' infrastructure
Past and today of Metasepi project
Part5 - enforcing coding standard and best practices with jas forge v1.0
Ad

More from Tushar Sharma (20)

PDF
House of Cards: Code Smells in Open-source C# Repositories
PDF
Designite: A Customizable Tool for Smell Mining in C# Repositories
PDF
Writing Maintainable Code
PDF
FOSDEM - Does your configuration code smell?
PDF
Achieving Design Agility by Refactoring Design Smells
PDF
Does your configuration code smell?
PDF
Designite – Software Design Quality Assessment Tool
PDF
Does Your Configuration Code Smell?
PDF
Technical debt - The elephant in the room
PDF
Understanding software metrics
PDF
Pragmatic Technical Debt Management
PDF
Tools for Identifying and Addressing Technical Debt
PDF
Infographic - Pragmatic Technical Debt Management
PDF
Applying Design Principles in Practice
PDF
Why care about technical debt?
PDF
Does your design smell?
PDF
A Checklist for Design Reviews
PDF
Tools for refactoring
PDF
Towards a Principle-based Classification of Structural Design Smells
PDF
PHAME: Principles of Hierarchy Abstraction Modularization and Encapsulation
House of Cards: Code Smells in Open-source C# Repositories
Designite: A Customizable Tool for Smell Mining in C# Repositories
Writing Maintainable Code
FOSDEM - Does your configuration code smell?
Achieving Design Agility by Refactoring Design Smells
Does your configuration code smell?
Designite – Software Design Quality Assessment Tool
Does Your Configuration Code Smell?
Technical debt - The elephant in the room
Understanding software metrics
Pragmatic Technical Debt Management
Tools for Identifying and Addressing Technical Debt
Infographic - Pragmatic Technical Debt Management
Applying Design Principles in Practice
Why care about technical debt?
Does your design smell?
A Checklist for Design Reviews
Tools for refactoring
Towards a Principle-based Classification of Structural Design Smells
PHAME: Principles of Hierarchy Abstraction Modularization and Encapsulation
Ad

Recently uploaded (20)

PDF
Nekopoi APK 2025 free lastest update
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
Transform Your Business with a Software ERP System
PPTX
history of c programming in notes for students .pptx
PDF
medical staffing services at VALiNTRY
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PPTX
Introduction to Artificial Intelligence
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
System and Network Administration Chapter 2
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PPTX
ai tools demonstartion for schools and inter college
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
AI in Product Development-omnex systems
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Nekopoi APK 2025 free lastest update
Design an Analysis of Algorithms I-SECS-1021-03
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Operating system designcfffgfgggggggvggggggggg
Transform Your Business with a Software ERP System
history of c programming in notes for students .pptx
medical staffing services at VALiNTRY
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Introduction to Artificial Intelligence
Odoo Companies in India – Driving Business Transformation.pdf
System and Network Administration Chapter 2
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
How to Choose the Right IT Partner for Your Business in Malaysia
ai tools demonstartion for schools and inter college
How Creative Agencies Leverage Project Management Software.pdf
How to Migrate SBCGlobal Email to Yahoo Easily
AI in Product Development-omnex systems
Upgrade and Innovation Strategies for SAP ERP Customers
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx

The tail of two source-code analysis tools - Learning and experiences