Understanding a software system consumes a substantial portion of a developer's effort. To support software comprehension and evolution, reverse engineering aims at creating a high-level representation of an existing software system. With state- of-the-art technology, abstract models of software systems are created by reverse engineering tools and analyzed using software analysis tools. Despite the rich functionalities offered by analysis tools, a novice user may find them difficult to use due to an unfamiliar tool environment and query language. In this paper, we propose an approach that allows the developer to formulate a query in a natural language in order to overcome these obstacles.
08448380779 Call Girls In Friends Colony Women Seeking Men
Software Analysis using Natural Language Queries
1. Software Analysis using Natural Language
Queries
Let Your Questions
Guide Your Analysis
Pooja Ran
i
Ph.D Studen
t
Software Composition Grou
p
University of Bern, Switzerland
2. 2
Hey! Mitra
Which classes ar
e
deprecated in my project?
Which classes among these
are not used by other
classes?
Can you delete these 14
classes?
Hello, Pooja
I found 25 classes
which are annotated
with “Deprecated”
I found 14 deprecated
classes which are not
used by other classes.
Yes, sure
11. Multiple artifacts at each phase
11
Implementation
Source code
,
Comments
,
Compile time files
,
Component executables
,
Change set
,
Version history files
Requirements
Vision document
,
Requirements model
Design
Design models
,
Test models
,
Software architectur
e
description
Testing
Test cases
,
Test data
,
Test reports
Deployment
Integrated product executable
,
Run time files
,
User manuals
12. How do we analyse our source code?
12
Implementation
Source code
,
Comments
,
Compile time files
,
Component executables
,
Change set
,
Version history files
26. Ask questions
26
Where is method named “getAmount” implemented?
Find the class named “Date”?
Which classes are the deprecated?
Where is method named “searchForThreat” implemented?
27. Goal
27
Which classes are deprecated?
self allModelClasses select:
[ :eachClass |
eachClass isAnnotatedWith:`Deprecated’]
28. 28
Translation seems easy, but is it really?
Which classes are deprecated?
All classes that should no longer be used?
Which client classes are using the deprecated classes?
Which deprecated classes are used by any client class?
Target language is a programming language
} Same words,
different structure
Semantically same
}
31. 31
➔ Different analysis tools
➔ Challenge of communication and structure
➔ Train neural network for each target query language
➔ Prepare corpus of questions
➔ Semantic tools are not ready for software engineering domain
34. Why can not we analyse our software
speculatively so naturally?
34
This does not solve our problem completely
35. Why can not we analyse our software
speculatively so naturally?
35
This does not solve our problem completely
36. Why can not we analyse our software
speculatively so naturally?
36
This does not solve our problem completely
37. Why can not we analyse our software
speculatively so naturally?
37
This does not solve our problem completely
Development
context missing
Analysis tools
integration
Customization of
tools
38. 38
Analysis is an iterative and continuous process
Identify development context, mine and extract useful software information
present result and receive feedback from developer
Integrate analysis into development process
Speculative Analysis
39. 39
Research challenge
Let us craft our own tools
Various software roles -
Customize your analysis according to data
Different software Artifacts -
Complex interaction with the tools - Unify the analysis tools
Continuous Analysis- Integrate analysis tools into software development process completely