decaf the tail of two tools · data dependency (e d) structure dependency (e s) method-call (e...
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.