Top Banner
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
28

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

Jan 29, 2018

Download

Software

Tushar Sharma
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: The tail of two source-code analysis tools - Learning and experiences

TheTaleofTwoSource-codeAnalysisToolsLearningandexperiences

TusharSharma

AthensUniversityofEconomicsandBusiness

FundedbySENECAprojectunderMarie-Skłodowska CurieActions

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

Tools

Augur DesigniteAchangeimpactanalysistool Asoftwaredesignqualityassessmenttool

(http://www.designite-tools.com)

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

Tools

Augur DesigniteAchangeimpactanalysistool Asoftwaredesignqualityassessmenttool

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

Features

• Changeimpactanalysiswithmultiplegranularitysupporto Cuttingacrossprojects,namespaces,classes,methods,fields,andstatements

• Intra-granularquerieso Supportingaquerywhereachangeandtheassociatedimpactcouldbeondifferentgranularities

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)

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

Features

• ChangeImpactQueryLanguage(CIQL)o Forlargescalebatchquerying– openinganewsetofapplicationsofCIA

CIQL::get“<Granularity(Impact)>”[within “<Scope>”][with“<Depth>”]where“<Entity>”is“<Granularity>”.

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

Features

• Supportforextendeddependencieso Datao Controlo Semantico Environment

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

Architecture

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

Tools

Augur DesigniteAchangeimpactanalysistool Asoftwaredesignqualityassessmenttool

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

Features

• Supportsdetectionof19designsmellsand11implementationsmells

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

Features

• Supportscomputationofvariousmetricswithcustomthresholds

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

Features

• ProvidesDependencyStructureMatrix

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

Features

• PerformsTrendAnalysis

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

Learningandexperiences

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

TheBigGapbetweenAcademicsandIndustry

Proposinganewresearchprograminacorporateresearchorganizationisnoteasy!

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

TheBigGapbetweenAcademicsandIndustry

Learning(asaresearcher)- Makesuretheavailabilityofartifactsandtheirbroaderapplicability

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

Parsingmechanism

Variousoptionsforcollectingsourcecodeinformation• Stringmanipulation• Reflection• AST• Bytecodeanalysis

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

WhichASTlibrary?

CSParserMetaspec

#Recognize!NRefactory

MSRoslyn

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

• License• Features• Cost• Communitysupport• Futureproof-ness

Parsingmechanism

Selectioncriteria

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

Architecture

Plug-inorIndependentapplication

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

Consoleapplication

Options• Useconditionalcompilation

(usingConditionalAttribute)• Duplicatethecode-base• Performarchitecturerefactoring

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

Consoleapplication

Experience:- Architecturerefactoringisexpensivebuteffective!- SupportforarchitecturerefactoringwithinIDEsisnotsufficient

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

Extensibility

Smelldetectionlogicmustbeextensiblei.e.newrulescanbeaddedwithoutanychangeinsourcecodeanalysislogicanduserinterface

Learning:- Theroleofappropriatedesignisimportant

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

Informationdissemination

Producingusefulinformationisdesirable;presentingitwelltotheuseristheextramile.

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

Informationdissemination

Differenttypesofusers,differentrequirements.

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

Payingattentiontouserrequirements

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

Payingattentiontouserrequirements

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

References

[1]TusharSharma,PratibhaMishra,andRohit Tiwari.2016.Designite:asoftwaredesignqualityassessmenttool.In Proceedingsofthe1stInternationalWorkshoponBringingArchitecturalDesignThinkingintoDevelopers'DailyActivities (BRIDGE'16).ACM,NewYork,NY,USA,1-4.DOI:http://dx.doi.org/10.1145/2896935.2896938

2]TusharSharma,GirishSuryanarayana.Augur:IncorporatingHiddenDependenciesandVariableGranularityinChangeImpactAnalysis.SubmittedatSCAM2016,waitingforthedecision.

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

Thank you!!

Courtesy:spikedmath.com

Tushar Sharma

[email protected]

@Sharma__Tushar