SlideShare a Scribd company logo
Shinpei Hayashi, Katsuyuki Sekine,
and Motoshi Saeki
Department of Computer Science,
Tokyo Institute of Technology, Japan
iFL: An Interactive
Environment for Understanding
Feature Implementations
ICSM 2010 ERA
14 Sep., 2010 TOKYO INSTITUTE OF TECHNOLOGY
DEPARTMENT OF COMPUTER SCIENCE
 We have developed iFL
− An environment for program understanding
− Interactively supports the understanding of feature
implementation using a feature location technique
− Can reduce understanding costs
Abstract
2
 Program understanding is costly
− Extending/fixing existing features
Understanding the implementation of target
feature is necessary
− Dominant of maintenance costs [Vestdam 04]
 Our focus: feature/concept location (FL)
− Locating/extracting code fragments which
implement the given feature/concept
Background
[Vestdam 04]: “Maintaining Program Understanding – Issues, Tools, and Future Directions”,
Nordic Journal of Computing, 2004.
3
FL Example (Search-based)
……
public Time(String hour, …) {
......
}
…
public void createSchedule() {
......
}
public void updateSchedule(…) {
……
scheduler
Source Code
schedule time Search
Feature Location
(Search-based approach)
FL
I want to understand
the feature
converting input time
strings to schedule
objects…
Reading these methods
for understanding 4
A new
maintainer
 Constructing appropriate queries
requires rich knowledge for the
implementation
− Times: time, date, hour/minute/second
− Images: image, picture, figure
 Developers in practice use several
keywords for FL through trial and error
Problem 1:
How to Find Appropriate Queries?
Search
FL How??
5
 Complete (Optimum) FL results are rare
− Accuracy of used FL techniques
− Individual difference in appropriate code
Problem 2:
How to Fix FL Results?
schedule time Search
FL
An FL result
(code fragments)
Optimum result
(Code fragments that should be understood)
Unnecessary code
(false positives)
Necessary code
(false negatives)
6
Selection and
understanding of
code fragments
Query Input
Feature location
(calculating scores)
schedule Search
1st: ScheduleManager.addSchedule()
2nd: EditSchedule.inputCheck()
…
Updating
queries
Relevance
feedback
(addition of hints)
 Added two feedback processes
Our Solution: Feedbacks
Finish if the user judges that he/she
has read all the necessary code fragments 7
 Wide query for initial FL
− By expanding queries to its synonyms
 Narrow query for subsequent FLs
− By using concrete identifies in source code
Query Expansion
Expand
• schedule
• agenda
• plan
schedule* date* Search
1st FL
public void createSchedule() {
…
String hour = …
Time time = new Time(hour, …);
…
}
schedule time Search
2nd FL
• list
• time
• date
A code fragment in a FL result
Thesaurus
8
Dependency
Code fragment
with its score
 Improving FL results by users feedback
− Adding a hint when the selected code fragments
is relevant or irrelevant to the feature
− Feedbacks are propagated into other fragments
using dependencies
Relevance Feedback
i th result of FL
1 2 9 6
: relevant
1 8 11 6
(i+1) th result of FL
propagation
by dependencies
9
Supporting Tool: iFL
 Implemented as an Eclipse plug-in
− For static analysis: Eclipse JDT
− For dynamic analysis: Reticella [Noda 09]
− For a thesaurus: WordNet
JDT
Reticella iFL-
core
Eclipse
Word
Net
Exec. Traces /
dependencies
Syntactic
information
Synonym
Info.
Implemented!
10
Supporting Tool: iFL
11
How iFL Works
Inputting
Query
12
How iFL Works
Calculating
scoresEvaluated code fragments
with their scores
13
How iFL Works
Associated method will be shown
in the code editor
when user selects a code fragment
14
How iFL Works
Calculating
scores again
15
Adding
hints
How iFL Works
Scores
updated
16
How iFL Works
Code
reading
FL
17
 A user (familiar with Java and iFL) actually
understood feature implementations
Preliminary Evaluation
# Correct
Events
# FL
execution
Interactive
costs
Non-
interactive
costs
Δ Costs Overheads
# Query
updating
S1 19 5 20 31 0.92 1 2
S2 7 5 8 10 0.67 1 1
S3 1 2 2 2 0.00 1 0
S4 10 6 10 13 1.00 0 2
S5 3 6 6 15 0.75 3 2
J1 10 4 20 156 0.93 10 2
J2 4 6 18 173 0.92 14 3
5 change requirements and related features
from Sched
(home-grown, small-sized)
2 change requirements and related features
from JDraw
(open-source, medium-sized)
18
Evaluation Criteria
# Correct
Events
# FL
execution
Interactive
costs
Non-
interactive
costs
Δ Costs Overheads
# Query
updating
S1 19 5 20 31 0.92 1 2
S2 7 5 8 10 0.67 1 1
S3 1 2 2 2 0.00 1 0
S4 10 6 10 13 1.00 0 2
S5 3 6 6 15 0.75 3 2
J1 10 4 20 156 0.93 10 2
J2 4 6 18 173 0.92 14 3
# selected, but unnecessary code fragments
Reduced ratio of overheads
between interactive and non-interactive approaches
19
# Correct
Events
# FL
execution
Interactive
costs
Non-
interactive
costs
Δ Costs Overheads
# Query
updating
S1 19 5 20 31 0.92 1 2
S2 7 5 8 10 0.67 1 1
S3 1 2 2 2 0.00 1 0
S4 10 6 10 13 1.00 0 2
S5 3 6 6 15 0.75 3 2
J1 10 4 20 156 0.93 10 2
J2 4 6 18 173 0.92 14 3
 Reduced costs for 6 out of 7 cases
− Especially, reduced 90% of costs for 4 cases
Evaluation Results
20
# Correct
Events
# FL
execution
Interactive
costs
Non-
interactive
costs
Δ Costs Overheads
# Query
updating
S1 19 5 20 31 0.92 1 2
S2 7 5 8 10 0.67 1 1
S3 1 2 2 2 0.00 1 0
S4 10 6 10 13 1.00 0 2
S5 3 6 6 15 0.75 3 2
J1 10 4 20 156 0.93 10 2
J2 4 6 18 173 0.92 14 3
 Small overheads
− Sched: 1.2, JDraw: 12 in average
Evaluation Results
21
# Correct
Events
# FL
execution
Interactive
costs
Non-
interactive
costs
Δ Costs Overheads
# Query
updating
S1 19 5 20 31 0.92 1 2
S2 7 5 8 10 0.67 1 1
S3 1 2 2 2 0.00 1 0
S4 10 6 10 13 1.00 0 2
S5 3 6 6 15 0.75 3 2
J1 10 4 20 156 0.93 10 2
J2 4 6 18 173 0.92 14 3
 No effect in S3
− Because non-interactive approach is sufficient for understanding
− Not because of the fault in interactive approach
Evaluation Results
22
 Summary
− We developed iFL: interactively supporting the
understanding of feature implementation using FL
− iFL can reduce understanding costs in 6 out of 7
cases
 Future Work
− Evaluation++: on larger-scale projects
− Feedback++: for more efficient relevance feedback
• Observing code browsing activities on IDE
Conclusion
23
additional slides
Source
code
Execution trace
/ dependencies
Dynamic analysis
Methods with
their scores
Static analysis
Evaluating
eventsTest
case
Query
schedule
 Based on search-based FL
 Use of static + dynamic analyses
The FL Approach
Events with
their scores
(FL result)
Hints
 
25
Static Analysis: eval. methods
 Matching queries to identifiers
public void createSchedule() {
…
String hour = …
Time time = new Time(hour, …);
…
}
20 for method names
1 for local variables
• schedule
• agenda
• time
• date
Schedule time Search
Thesaurus
The basic score (BS) of
createSchedule: 21
Expand
Expanded queries
26
Dynamic Analysis
 Extracting execution traces and their
dependencies by executing source code with
a test case
e1: loadSchedule()
e2: initWindow()
e3: createSchedule()
e4: Time()
e5: ScheduleModel()
e6: updateList()
e1
e3 e6e2
e4
e5
Dependencies
(Method invocation relations)Execution trace
27
Evaluating Methods
 Highly scored events are:
− executing methods having high basic scores
− Close to highly scored events
Events Methods BS Score
e1 loadSchedule() 20 52.2
e2 initWindow() 0 18.7
e3 createSchedule() 21 38.7
e4 Time() 20 66.0
e5 ScheduleModel() 31 42.6
e6 updateList() 2 19.0
e1
e3 e6e2
e4
e5
52.2
(20)
18.7
(0)
19.0
(2)
42.6
(31)
66.0
(20)
38.7
(21)
28
Selection and Understanding
 Selecting highly ranked events
− Extracting associated code fragment (method
body) and reading it to understand
public Time(String hour, …) {
…
String hour = …
String minute = … …
}
Events Methods Scores Rank
e1 loadSchedule() 52.2 2
e2 initWindow() 18.7 6
e3 createSchedule() 38.7 4
e4 Time() 66.0 1
e5 ScheduleModel() 42.6 3
e6 updateList() 19.0 5
Extracted code fragments
29
Relevance Feedback
 User reads the selected code
fragments, and adds hints
− Relevant (): maximum basic score
− Irrelevant to the feature (): score becomes 0
Events Methods Hints
Basic
scores
Scores Ranks
e1 loadSchedule() 20 52.2 77.6 2
e2 initWindow() 0 18.7 6
e3 createSchedule() 21 38.7 96.4 4 1
e4 Time()  20 46.5 66.0 70.2 1 3
e5 ScheduleModel() 31 42.6 51.0 3 4
e6 updateList() 2 19.0 5
30

More Related Content

Similar to iFL: An Interactive Environment for Understanding Feature Implementations

Spm project planning
Spm project planning Spm project planning
Spm project planning
Kanchana Devi
 
iFL: An Interactive Environment for Understanding Feature Implementations
iFL: An Interactive Environment for Understanding Feature ImplementationsiFL: An Interactive Environment for Understanding Feature Implementations
iFL: An Interactive Environment for Understanding Feature Implementations
Shinpei Hayashi
 
reverse engineering.ppt
reverse engineering.pptreverse engineering.ppt
reverse engineering.ppt
NaglaaFathy42
 
Lec 09 network scheduling_techniques
Lec 09 network scheduling_techniquesLec 09 network scheduling_techniques
Lec 09 network scheduling_techniques
SAJID ALI RUK
 
Beit 381 se lec 13 - 11 - 12 mar20 - project management
Beit 381 se lec 13  -  11 -  12 mar20 - project managementBeit 381 se lec 13  -  11 -  12 mar20 - project management
Beit 381 se lec 13 - 11 - 12 mar20 - project management
babak danyal
 
CS8494 SOFTWARE ENGINEERING Unit-5
CS8494 SOFTWARE ENGINEERING Unit-5CS8494 SOFTWARE ENGINEERING Unit-5
CS8494 SOFTWARE ENGINEERING Unit-5
SIMONTHOMAS S
 
SE - Lecture 6 - Software Design n Construction.pptx
SE - Lecture 6 - Software Design n Construction.pptxSE - Lecture 6 - Software Design n Construction.pptx
SE - Lecture 6 - Software Design n Construction.pptx
TangZhiSiang
 
Software cost estimation
Software cost estimationSoftware cost estimation
Software cost estimation
deep sharma
 
software effort estimation
 software effort estimation software effort estimation
software effort estimation
Besharam Dil
 
Se 381 - lec 25 - 32 - 12 may29 - program size and cost estimation models
Se 381 - lec 25 - 32 - 12 may29 - program size and cost estimation modelsSe 381 - lec 25 - 32 - 12 may29 - program size and cost estimation models
Se 381 - lec 25 - 32 - 12 may29 - program size and cost estimation models
babak danyal
 
3 Software Estmation.ppt
3 Software Estmation.ppt3 Software Estmation.ppt
3 Software Estmation.ppt
Soham De
 
PSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWARE
PSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWAREPSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWARE
PSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWARE
Franklin Parrales Bravo
 
EO notes Lecture 27 Project Management 2.ppt
EO notes Lecture 27 Project Management 2.pptEO notes Lecture 27 Project Management 2.ppt
EO notes Lecture 27 Project Management 2.ppt
yashchotaliyael21
 
Managing software project, software engineering
Managing software project, software engineeringManaging software project, software engineering
Managing software project, software engineering
Rupesh Vaishnav
 
Nesma autumn conference 2015 - A QFD based tool for managing agile requiremen...
Nesma autumn conference 2015 - A QFD based tool for managing agile requiremen...Nesma autumn conference 2015 - A QFD based tool for managing agile requiremen...
Nesma autumn conference 2015 - A QFD based tool for managing agile requiremen...
Nesma
 
3wis_2.pdf
3wis_2.pdf3wis_2.pdf
3wis_2.pdf
austdali
 
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERICCOCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
Sneha Padhiar
 
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERICCOCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
Sneha Padhiar
 
SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATIONSOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
Sneha Padhiar
 
Softwareproject planning
Softwareproject planningSoftwareproject planning
Softwareproject planning
saurabhshertukde
 

Similar to iFL: An Interactive Environment for Understanding Feature Implementations (20)

Spm project planning
Spm project planning Spm project planning
Spm project planning
 
iFL: An Interactive Environment for Understanding Feature Implementations
iFL: An Interactive Environment for Understanding Feature ImplementationsiFL: An Interactive Environment for Understanding Feature Implementations
iFL: An Interactive Environment for Understanding Feature Implementations
 
reverse engineering.ppt
reverse engineering.pptreverse engineering.ppt
reverse engineering.ppt
 
Lec 09 network scheduling_techniques
Lec 09 network scheduling_techniquesLec 09 network scheduling_techniques
Lec 09 network scheduling_techniques
 
Beit 381 se lec 13 - 11 - 12 mar20 - project management
Beit 381 se lec 13  -  11 -  12 mar20 - project managementBeit 381 se lec 13  -  11 -  12 mar20 - project management
Beit 381 se lec 13 - 11 - 12 mar20 - project management
 
CS8494 SOFTWARE ENGINEERING Unit-5
CS8494 SOFTWARE ENGINEERING Unit-5CS8494 SOFTWARE ENGINEERING Unit-5
CS8494 SOFTWARE ENGINEERING Unit-5
 
SE - Lecture 6 - Software Design n Construction.pptx
SE - Lecture 6 - Software Design n Construction.pptxSE - Lecture 6 - Software Design n Construction.pptx
SE - Lecture 6 - Software Design n Construction.pptx
 
Software cost estimation
Software cost estimationSoftware cost estimation
Software cost estimation
 
software effort estimation
 software effort estimation software effort estimation
software effort estimation
 
Se 381 - lec 25 - 32 - 12 may29 - program size and cost estimation models
Se 381 - lec 25 - 32 - 12 may29 - program size and cost estimation modelsSe 381 - lec 25 - 32 - 12 may29 - program size and cost estimation models
Se 381 - lec 25 - 32 - 12 may29 - program size and cost estimation models
 
3 Software Estmation.ppt
3 Software Estmation.ppt3 Software Estmation.ppt
3 Software Estmation.ppt
 
PSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWARE
PSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWAREPSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWARE
PSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWARE
 
EO notes Lecture 27 Project Management 2.ppt
EO notes Lecture 27 Project Management 2.pptEO notes Lecture 27 Project Management 2.ppt
EO notes Lecture 27 Project Management 2.ppt
 
Managing software project, software engineering
Managing software project, software engineeringManaging software project, software engineering
Managing software project, software engineering
 
Nesma autumn conference 2015 - A QFD based tool for managing agile requiremen...
Nesma autumn conference 2015 - A QFD based tool for managing agile requiremen...Nesma autumn conference 2015 - A QFD based tool for managing agile requiremen...
Nesma autumn conference 2015 - A QFD based tool for managing agile requiremen...
 
3wis_2.pdf
3wis_2.pdf3wis_2.pdf
3wis_2.pdf
 
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERICCOCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
 
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERICCOCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
 
SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATIONSOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
 
Softwareproject planning
Softwareproject planningSoftwareproject planning
Softwareproject planning
 

More from ICSM 2010

2D and 3D Visualizations In Wikidev2.0 M. Fokaefs, D. Serrano, B. Tansey and ...
2D and 3D Visualizations In Wikidev2.0 M. Fokaefs, D. Serrano, B. Tansey and ...2D and 3D Visualizations In Wikidev2.0 M. Fokaefs, D. Serrano, B. Tansey and ...
2D and 3D Visualizations In Wikidev2.0 M. Fokaefs, D. Serrano, B. Tansey and ...
ICSM 2010
 
Wiki dev nlp
Wiki dev nlpWiki dev nlp
Wiki dev nlp
ICSM 2010
 
Physical and Conceptual Identifier Dispersion: Measures and Relation to Fault...
Physical and Conceptual Identifier Dispersion: Measures and Relation to Fault...Physical and Conceptual Identifier Dispersion: Measures and Relation to Fault...
Physical and Conceptual Identifier Dispersion: Measures and Relation to Fault...
ICSM 2010
 
Automatically Repairing Test Cases for Evolving Method Declarations
Automatically Repairing Test Cases for Evolving Method DeclarationsAutomatically Repairing Test Cases for Evolving Method Declarations
Automatically Repairing Test Cases for Evolving Method Declarations
ICSM 2010
 
Automated Identification of Cross-browser Issues in Web Applications
Automated Identification of Cross-browser Issues in Web ApplicationsAutomated Identification of Cross-browser Issues in Web Applications
Automated Identification of Cross-browser Issues in Web Applications
ICSM 2010
 
Reverse Engineering Object-Oriented Distributed Systems
Reverse Engineering Object-Oriented Distributed SystemsReverse Engineering Object-Oriented Distributed Systems
Reverse Engineering Object-Oriented Distributed Systems
ICSM 2010
 
Software asset management
Software asset managementSoftware asset management
Software asset management
ICSM 2010
 
Successfulresearch 100915022614-phpapp01
Successfulresearch 100915022614-phpapp01Successfulresearch 100915022614-phpapp01
Successfulresearch 100915022614-phpapp01
ICSM 2010
 
Enabling multi tenancy(An Industrial Experience Report)
Enabling multi tenancy(An Industrial Experience Report)Enabling multi tenancy(An Industrial Experience Report)
Enabling multi tenancy(An Industrial Experience Report)
ICSM 2010
 
Ponsini automatic slides
Ponsini automatic slidesPonsini automatic slides
Ponsini automatic slides
ICSM 2010
 
Studying the impact of dependency network measures on software quality
Studying the impact of dependency network measures on software quality	Studying the impact of dependency network measures on software quality
Studying the impact of dependency network measures on software quality
ICSM 2010
 
Icsm2010 Announcement
Icsm2010 AnnouncementIcsm2010 Announcement
Icsm2010 Announcement
ICSM 2010
 

More from ICSM 2010 (12)

2D and 3D Visualizations In Wikidev2.0 M. Fokaefs, D. Serrano, B. Tansey and ...
2D and 3D Visualizations In Wikidev2.0 M. Fokaefs, D. Serrano, B. Tansey and ...2D and 3D Visualizations In Wikidev2.0 M. Fokaefs, D. Serrano, B. Tansey and ...
2D and 3D Visualizations In Wikidev2.0 M. Fokaefs, D. Serrano, B. Tansey and ...
 
Wiki dev nlp
Wiki dev nlpWiki dev nlp
Wiki dev nlp
 
Physical and Conceptual Identifier Dispersion: Measures and Relation to Fault...
Physical and Conceptual Identifier Dispersion: Measures and Relation to Fault...Physical and Conceptual Identifier Dispersion: Measures and Relation to Fault...
Physical and Conceptual Identifier Dispersion: Measures and Relation to Fault...
 
Automatically Repairing Test Cases for Evolving Method Declarations
Automatically Repairing Test Cases for Evolving Method DeclarationsAutomatically Repairing Test Cases for Evolving Method Declarations
Automatically Repairing Test Cases for Evolving Method Declarations
 
Automated Identification of Cross-browser Issues in Web Applications
Automated Identification of Cross-browser Issues in Web ApplicationsAutomated Identification of Cross-browser Issues in Web Applications
Automated Identification of Cross-browser Issues in Web Applications
 
Reverse Engineering Object-Oriented Distributed Systems
Reverse Engineering Object-Oriented Distributed SystemsReverse Engineering Object-Oriented Distributed Systems
Reverse Engineering Object-Oriented Distributed Systems
 
Software asset management
Software asset managementSoftware asset management
Software asset management
 
Successfulresearch 100915022614-phpapp01
Successfulresearch 100915022614-phpapp01Successfulresearch 100915022614-phpapp01
Successfulresearch 100915022614-phpapp01
 
Enabling multi tenancy(An Industrial Experience Report)
Enabling multi tenancy(An Industrial Experience Report)Enabling multi tenancy(An Industrial Experience Report)
Enabling multi tenancy(An Industrial Experience Report)
 
Ponsini automatic slides
Ponsini automatic slidesPonsini automatic slides
Ponsini automatic slides
 
Studying the impact of dependency network measures on software quality
Studying the impact of dependency network measures on software quality	Studying the impact of dependency network measures on software quality
Studying the impact of dependency network measures on software quality
 
Icsm2010 Announcement
Icsm2010 AnnouncementIcsm2010 Announcement
Icsm2010 Announcement
 

Recently uploaded

Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
TIPNGVN2
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 

Recently uploaded (20)

Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 

iFL: An Interactive Environment for Understanding Feature Implementations

  • 1. Shinpei Hayashi, Katsuyuki Sekine, and Motoshi Saeki Department of Computer Science, Tokyo Institute of Technology, Japan iFL: An Interactive Environment for Understanding Feature Implementations ICSM 2010 ERA 14 Sep., 2010 TOKYO INSTITUTE OF TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE
  • 2.  We have developed iFL − An environment for program understanding − Interactively supports the understanding of feature implementation using a feature location technique − Can reduce understanding costs Abstract 2
  • 3.  Program understanding is costly − Extending/fixing existing features Understanding the implementation of target feature is necessary − Dominant of maintenance costs [Vestdam 04]  Our focus: feature/concept location (FL) − Locating/extracting code fragments which implement the given feature/concept Background [Vestdam 04]: “Maintaining Program Understanding – Issues, Tools, and Future Directions”, Nordic Journal of Computing, 2004. 3
  • 4. FL Example (Search-based) …… public Time(String hour, …) { ...... } … public void createSchedule() { ...... } public void updateSchedule(…) { …… scheduler Source Code schedule time Search Feature Location (Search-based approach) FL I want to understand the feature converting input time strings to schedule objects… Reading these methods for understanding 4 A new maintainer
  • 5.  Constructing appropriate queries requires rich knowledge for the implementation − Times: time, date, hour/minute/second − Images: image, picture, figure  Developers in practice use several keywords for FL through trial and error Problem 1: How to Find Appropriate Queries? Search FL How?? 5
  • 6.  Complete (Optimum) FL results are rare − Accuracy of used FL techniques − Individual difference in appropriate code Problem 2: How to Fix FL Results? schedule time Search FL An FL result (code fragments) Optimum result (Code fragments that should be understood) Unnecessary code (false positives) Necessary code (false negatives) 6
  • 7. Selection and understanding of code fragments Query Input Feature location (calculating scores) schedule Search 1st: ScheduleManager.addSchedule() 2nd: EditSchedule.inputCheck() … Updating queries Relevance feedback (addition of hints)  Added two feedback processes Our Solution: Feedbacks Finish if the user judges that he/she has read all the necessary code fragments 7
  • 8.  Wide query for initial FL − By expanding queries to its synonyms  Narrow query for subsequent FLs − By using concrete identifies in source code Query Expansion Expand • schedule • agenda • plan schedule* date* Search 1st FL public void createSchedule() { … String hour = … Time time = new Time(hour, …); … } schedule time Search 2nd FL • list • time • date A code fragment in a FL result Thesaurus 8
  • 9. Dependency Code fragment with its score  Improving FL results by users feedback − Adding a hint when the selected code fragments is relevant or irrelevant to the feature − Feedbacks are propagated into other fragments using dependencies Relevance Feedback i th result of FL 1 2 9 6 : relevant 1 8 11 6 (i+1) th result of FL propagation by dependencies 9
  • 10. Supporting Tool: iFL  Implemented as an Eclipse plug-in − For static analysis: Eclipse JDT − For dynamic analysis: Reticella [Noda 09] − For a thesaurus: WordNet JDT Reticella iFL- core Eclipse Word Net Exec. Traces / dependencies Syntactic information Synonym Info. Implemented! 10
  • 13. How iFL Works Calculating scoresEvaluated code fragments with their scores 13
  • 14. How iFL Works Associated method will be shown in the code editor when user selects a code fragment 14
  • 15. How iFL Works Calculating scores again 15 Adding hints
  • 18.  A user (familiar with Java and iFL) actually understood feature implementations Preliminary Evaluation # Correct Events # FL execution Interactive costs Non- interactive costs Δ Costs Overheads # Query updating S1 19 5 20 31 0.92 1 2 S2 7 5 8 10 0.67 1 1 S3 1 2 2 2 0.00 1 0 S4 10 6 10 13 1.00 0 2 S5 3 6 6 15 0.75 3 2 J1 10 4 20 156 0.93 10 2 J2 4 6 18 173 0.92 14 3 5 change requirements and related features from Sched (home-grown, small-sized) 2 change requirements and related features from JDraw (open-source, medium-sized) 18
  • 19. Evaluation Criteria # Correct Events # FL execution Interactive costs Non- interactive costs Δ Costs Overheads # Query updating S1 19 5 20 31 0.92 1 2 S2 7 5 8 10 0.67 1 1 S3 1 2 2 2 0.00 1 0 S4 10 6 10 13 1.00 0 2 S5 3 6 6 15 0.75 3 2 J1 10 4 20 156 0.93 10 2 J2 4 6 18 173 0.92 14 3 # selected, but unnecessary code fragments Reduced ratio of overheads between interactive and non-interactive approaches 19
  • 20. # Correct Events # FL execution Interactive costs Non- interactive costs Δ Costs Overheads # Query updating S1 19 5 20 31 0.92 1 2 S2 7 5 8 10 0.67 1 1 S3 1 2 2 2 0.00 1 0 S4 10 6 10 13 1.00 0 2 S5 3 6 6 15 0.75 3 2 J1 10 4 20 156 0.93 10 2 J2 4 6 18 173 0.92 14 3  Reduced costs for 6 out of 7 cases − Especially, reduced 90% of costs for 4 cases Evaluation Results 20
  • 21. # Correct Events # FL execution Interactive costs Non- interactive costs Δ Costs Overheads # Query updating S1 19 5 20 31 0.92 1 2 S2 7 5 8 10 0.67 1 1 S3 1 2 2 2 0.00 1 0 S4 10 6 10 13 1.00 0 2 S5 3 6 6 15 0.75 3 2 J1 10 4 20 156 0.93 10 2 J2 4 6 18 173 0.92 14 3  Small overheads − Sched: 1.2, JDraw: 12 in average Evaluation Results 21
  • 22. # Correct Events # FL execution Interactive costs Non- interactive costs Δ Costs Overheads # Query updating S1 19 5 20 31 0.92 1 2 S2 7 5 8 10 0.67 1 1 S3 1 2 2 2 0.00 1 0 S4 10 6 10 13 1.00 0 2 S5 3 6 6 15 0.75 3 2 J1 10 4 20 156 0.93 10 2 J2 4 6 18 173 0.92 14 3  No effect in S3 − Because non-interactive approach is sufficient for understanding − Not because of the fault in interactive approach Evaluation Results 22
  • 23.  Summary − We developed iFL: interactively supporting the understanding of feature implementation using FL − iFL can reduce understanding costs in 6 out of 7 cases  Future Work − Evaluation++: on larger-scale projects − Feedback++: for more efficient relevance feedback • Observing code browsing activities on IDE Conclusion 23
  • 25. Source code Execution trace / dependencies Dynamic analysis Methods with their scores Static analysis Evaluating eventsTest case Query schedule  Based on search-based FL  Use of static + dynamic analyses The FL Approach Events with their scores (FL result) Hints   25
  • 26. Static Analysis: eval. methods  Matching queries to identifiers public void createSchedule() { … String hour = … Time time = new Time(hour, …); … } 20 for method names 1 for local variables • schedule • agenda • time • date Schedule time Search Thesaurus The basic score (BS) of createSchedule: 21 Expand Expanded queries 26
  • 27. Dynamic Analysis  Extracting execution traces and their dependencies by executing source code with a test case e1: loadSchedule() e2: initWindow() e3: createSchedule() e4: Time() e5: ScheduleModel() e6: updateList() e1 e3 e6e2 e4 e5 Dependencies (Method invocation relations)Execution trace 27
  • 28. Evaluating Methods  Highly scored events are: − executing methods having high basic scores − Close to highly scored events Events Methods BS Score e1 loadSchedule() 20 52.2 e2 initWindow() 0 18.7 e3 createSchedule() 21 38.7 e4 Time() 20 66.0 e5 ScheduleModel() 31 42.6 e6 updateList() 2 19.0 e1 e3 e6e2 e4 e5 52.2 (20) 18.7 (0) 19.0 (2) 42.6 (31) 66.0 (20) 38.7 (21) 28
  • 29. Selection and Understanding  Selecting highly ranked events − Extracting associated code fragment (method body) and reading it to understand public Time(String hour, …) { … String hour = … String minute = … … } Events Methods Scores Rank e1 loadSchedule() 52.2 2 e2 initWindow() 18.7 6 e3 createSchedule() 38.7 4 e4 Time() 66.0 1 e5 ScheduleModel() 42.6 3 e6 updateList() 19.0 5 Extracted code fragments 29
  • 30. Relevance Feedback  User reads the selected code fragments, and adds hints − Relevant (): maximum basic score − Irrelevant to the feature (): score becomes 0 Events Methods Hints Basic scores Scores Ranks e1 loadSchedule() 20 52.2 77.6 2 e2 initWindow() 0 18.7 6 e3 createSchedule() 21 38.7 96.4 4 1 e4 Time()  20 46.5 66.0 70.2 1 3 e5 ScheduleModel() 31 42.6 51.0 3 4 e6 updateList() 2 19.0 5 30