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

Post on 29-Jan-2018

30 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

Transcript

TheTaleofTwoSource-codeAnalysisToolsLearningandexperiences

TusharSharma

AthensUniversityofEconomicsandBusiness

FundedbySENECAprojectunderMarie-Skłodowska CurieActions

Tools

Augur DesigniteAchangeimpactanalysistool Asoftwaredesignqualityassessmenttool

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

Tools

Augur DesigniteAchangeimpactanalysistool Asoftwaredesignqualityassessmenttool

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)

Features

• ChangeImpactQueryLanguage(CIQL)o Forlargescalebatchquerying– openinganewsetofapplicationsofCIA

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

Features

• Supportforextendeddependencieso Datao Controlo Semantico Environment

Architecture

Tools

Augur DesigniteAchangeimpactanalysistool Asoftwaredesignqualityassessmenttool

Features

• Supportsdetectionof19designsmellsand11implementationsmells

Features

• Supportscomputationofvariousmetricswithcustomthresholds

Features

• ProvidesDependencyStructureMatrix

Features

• PerformsTrendAnalysis

Learningandexperiences

TheBigGapbetweenAcademicsandIndustry

Proposinganewresearchprograminacorporateresearchorganizationisnoteasy!

TheBigGapbetweenAcademicsandIndustry

Learning(asaresearcher)- Makesuretheavailabilityofartifactsandtheirbroaderapplicability

Parsingmechanism

Variousoptionsforcollectingsourcecodeinformation• Stringmanipulation• Reflection• AST• Bytecodeanalysis

WhichASTlibrary?

CSParserMetaspec

#Recognize!NRefactory

MSRoslyn

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

Parsingmechanism

Selectioncriteria

Architecture

Plug-inorIndependentapplication

Consoleapplication

Options• Useconditionalcompilation

(usingConditionalAttribute)• Duplicatethecode-base• Performarchitecturerefactoring

Consoleapplication

Experience:- Architecturerefactoringisexpensivebuteffective!- SupportforarchitecturerefactoringwithinIDEsisnotsufficient

Extensibility

Smelldetectionlogicmustbeextensiblei.e.newrulescanbeaddedwithoutanychangeinsourcecodeanalysislogicanduserinterface

Learning:- Theroleofappropriatedesignisimportant

Informationdissemination

Producingusefulinformationisdesirable;presentingitwelltotheuseristheextramile.

Informationdissemination

Differenttypesofusers,differentrequirements.

Payingattentiontouserrequirements

Payingattentiontouserrequirements

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.

Thank you!!

Courtesy:spikedmath.com

Tushar Sharma

tusharsharma@ieee.org

@Sharma__Tushar

top related