SlideShare ist ein Scribd-Unternehmen logo
1 von 48
When and How Using
Structural Information to
Improve IR-based Traceability
Recovery
Annibale Panichella1, Collin McMillan2, Evan Moritz 3, Davide Palmieri 4,
Rocco Oliveto 4, Denys Poshyvaniyk 3, Andrea De Lucia1
1 Software Engineering Lab , University of Salerno, Italy
2 University of Notre Dame, Notre Dame, USA
3 The College of William and Mary, Williamsburg, USA
2 University of Molise, Pesche (IS), Italiy
Imapct Analysis
Requirements tracing
Program Comprehension
Traceability information is still not
commonplace in software projects!
Information Retrieval
IR-based Traceability Recovery
Use Case Insert Laboratory Data
Description The user inserts the data of a
specific laboratory
Events 1. The user opens the Laboratory
GUI
2. The user inserts the
laboratory data
.
.
. /* *This class implements the GUI for
managing laboratories data */
public class GUI Laboratory Data {
private jFrame window;
private jButton insert;
...
public GUI Laboratory Data(){
window = ne JFrame();
insert = new JButton();
...
}
...
}
GUILaboratoryData.java
IR-based Traceability Recovery
Use Case Insert Laboratory Data
Description The user inserts the data of a
specific laboratory
Events 1. The user opens the Laboratory
GUI
2. The user inserts the
laboratory data
.
.
. /* *This class implements the GUI for
managing laboratories data */
public class GUI Laboratory Data {
private jFrame window;
private jButton insert;
...
public GUI Laboratory Data(){
window = new JFrame();
insert = new JButton();
...
}
...
}
GUILaboratoryData.java
IR-based Traceability Recovery
Use Case Insert Laboratory Data
Description The user inserts the data of a
specific laboratory
Events 1. The user opens the Laboratory
GUI
2. The user inserts the
laboratory data
.
.
. /* *This class implements the GUI for
managing laboratories data */
public class GUI Laboratory Data {
private jFrame window;
private jButton insert;
...
public GUI Laboratory Data(){
window = new JFrame();
insert = new JButton();
...
}
...
}
GUILaboratoryData.java
Similarity
42%
IR-based Traceability Recovery
Use Case Insert Laboratory Data
Description The user inserts the data of a
specific laboratory
Events 1. The user opens the Laboratory
GUI
2. The user inserts the
laboratory data
.
.
. /* *This class implements the GUI for
managing laboratories data */
public class GUI Laboratory Data {
private jFrame window;
private jButton insert;
...
public GUI Laboratory Data(){
window = new JFrame();
insert = new JButton();
...
}
...
}
GUILaboratoryData.java
True Link
IR-based Traceability Recovery
Source_1 Target_2 95.4%
Source_3 Target_4 92.1%
Source_1 Target_1 85.6%
Source_2 Target_2 83.2%
Source_3 Target_3 81.2%
Source_1 Target_3 79.0%
Source_3 Target_2 77.5%
Source_2 Target_4 64.3%
Source_2 Target_3 53.2%
Target
Artifacts
IR Engine
Source
Artifacts
Candidate Links
Source_1 Target_2 95.4%
Source_3 Target_4 92.1%
Source_1 Target_1 85.6%
Source_2 Target_2 83.2%
Source_3 Target_3 81.2%
Source_1 Target_3 79.0%
Source_3 Target_2 77.5%
Source_2 Target_4 64.3%
Source_2 Target_3 53.2%
IR-based Traceability Recovery
Target
Artifacts
IR Engine
Source
Artifacts
Candidate Links
Structural Information and Traceability
Combining Textual and
Structural Analysis of Software
Artifacts for Traceability Link
Recovery - Collin McMillan, Denys
Poshyvanyk, Meghan Revelle
TEFSE 2009
/* *This class implements the GUI for
managing laboratories data */
public class GUILaboratoryData {
private jFrame window;
private jButton insert;
...
public GUILaboratoryData(){
window = ne JFrame();
insert = new JButton();
...
}
...
}
Structural Information and Traceability
Use Case Insert Laboratory Data
Description The user inserts the data of a
specific laboratory
Events 1. The user opens the Laboratory
GUI
2. The user inserts the
laboratory data
.
.
.
GUILaboratoryData.java
linked
public class Laboratory{
private String name;
private String position;
...
public void setName(String pName){
this.name=pName;
}
...
}
Laboratory.java
/* *This class implements the GUI for
managing laboratories data */
public class GUILaboratoryData {
private jFrame window;
private jButton insert;
...
public GUILaboratoryData(){
window = ne JFrame();
insert = new JButton();
...
}
...
}
Use Case Insert Laboratory Data
Description The user inserts the data of a
specific laboratory
Events 1. The user opens the Laboratory
GUI
2. The user inserts the
laboratory data
.
.
.
GUILaboratoryData.java
linked
linked
Structural Information and Traceability
/* *This class implements the GUI for
managing laboratories data */
public class GUILaboratoryData {
private jFrame window;
private jButton insert;
...
public GUILaboratoryData(){
window = ne JFrame();
insert = new JButton();
...
}
...
}
GUILaboratoryData.java
linked
Use Case Insert Laboratory Data
Description The user inserts the data of a
specific laboratory
Events 1. The user opens the Laboratory
GUI
2. The user inserts the
laboratory data
.
.
.
public class Laboratory{
private String name;
private String position;
...
public void setName(String pName){
this.name=pName;
}
...
}
Laboratory.java
linked
Structural Information and Traceability
/* *This class implements the GUI for
managing laboratories data */
public class GUILaboratoryData {
private jFrame window;
private jButton insert;
...
public GUILaboratoryData(){
window = ne JFrame();
insert = new JButton();
...
}
...
}
GUILaboratoryData.java
linked
Use Case Insert Laboratory Data
Description The user inserts the data of a
specific laboratory
Events 1. The user opens the Laboratory
GUI
2. The user inserts the
laboratory data
.
.
.
public class Laboratory{
private String name;
private String position;
...
public void setName(String pName){
this.name=pName;
}
...
}
Laboratory.java
linked
Structural Information and Traceability
Structural dependecy
/* *This class implements the GUI for
managing laboratories data */
public class GUILaboratoryData {
private jFrame window;
private jButton insert;
...
public GUILaboratoryData(){
window = ne JFrame();
insert = new JButton();
...
}
...
}
Use Case Insert Laboratory Data
Description The user inserts the data of a
specific laboratory
Events 1. The user opens the Laboratory
GUI
2. The user inserts the
laboratory data
.
.
.
GUILaboratoryData.java
Structural dependecy
Structural Information and Traceability
public class Laboratory{
private String name;
private String position;
...
public void setName(String pName){
this.name=pName;
}
...
}
Laboratory.java
linked
linked
Transitivity
/* *This class implements the GUI for
managing laboratories data */
public class GUILaboratoryData {
private jFrame window;
private jButton insert;
...
public GUILaboratoryData(){
window = ne JFrame();
insert = new JButton();
...
}
...
}
Use Case Insert Laboratory Data
Description The user inserts the data of a
specific laboratory
Events 1. The user opens the Laboratory
GUI
2. The user inserts the
laboratory data
.
.
.
GUILaboratoryData.java
Structural dependecy
Structural Information and Traceability
public class Laboratory{
private String name;
private String position;
...
public void setName(String pName){
this.name=pName;
}
...
}
Laboratory.java
linked
linked
Transitivity
Open Issues
1) The choice of the bonus value is cricual
• Different systems require different bonus
• Different IR methods require different bonus
Open Issues
1) The choice of the bonus value is cricual
• Different systems require different bonus
• Different IR methods require different bonus
2) When applying the bonus?
. The transitivity property does not always hold
Example
/* *This class implements the GUI for
managing laboratories data */
public class GUIDoctorData {
private jFrame window;
private jButton insert;
...
public GUIDoctorData(){
window = ne JFrame();
insert = new JButton();
...
}
...
}
Use Case Insert Laboratory Data
Description The user inserts the data of a
specific laboratory
Events 1. The user opens the Laboratory
GUI
2. The user inserts the
laboratory data
.
.
.
GUIDoctorData.java
Not
linked
Example
/* *This class implements the GUI for
managing laboratories data */
public class GUILaboratoryData {
private jFrame window;
private jButton insert;
...
public GUILaboratoryData(){
window = ne JFrame();
insert = new JButton();
...
}
...
}
Use Case Insert Laboratory Data
Description The user inserts the data of a
specific laboratory
Events 1. The user opens the Laboratory
GUI
2. The user inserts the
laboratory data
.
.
.
GUIDoctorData.java
Not
linked
Example
/* *This class implements the GUI for
managing laboratories data */
public class GUILaboratoryData {
private jFrame window;
private jButton insert;
...
public GUILaboratoryData(){
window = ne JFrame();
insert = new JButton();
...
}
...
}
Use Case Insert Laboratory Data
Description The user inserts the data of a
specific laboratory
Events 1. The user opens the Laboratory
GUI
2. The user inserts the
laboratory data
.
.
.
GUIDoctorData.java
public class Authorization{
public void setAuthorization(Doctor
pDoctor, Laboratory pLab){
...
}
...
}
Autorization.java
Not linked
Not
linked
Example
/* *This class implements the GUI for
managing laboratories data */
public class GUILaboratoryData {
private jFrame window;
private jButton insert;
...
public GUILaboratoryData(){
window = ne JFrame();
insert = new JButton();
...
}
...
}
Use Case Insert Laboratory Data
Description The user inserts the data of a
specific laboratory
Events 1. The user opens the Laboratory
GUI
2. The user inserts the
laboratory data
.
.
.
GUILaboratoryData.java
Structural dependecy
public class LaboratoryAuthorization{
public void setAuthorization(Doctor
pDoctor){
...
}
...
}
LaboratoryAuthorization.java
Not linked
Not
linked
Example
/* *This class implements the GUI for
managing laboratories data */
public class GUILaboratoryData {
private jFrame window;
private jButton insert;
...
public GUILaboratoryData(){
window = ne JFrame();
insert = new JButton();
...
}
...
}
Use Case Insert Laboratory Data
Description The user inserts the data of a
specific laboratory
Events 1. The user opens the Laboratory
GUI
2. The user inserts the
laboratory data
.
.
.
GUILaboratoryData.java
Structural dependecy
public class LaboratoryAuthorization{
public void setAuthorization(Doctor
pDoctor){
...
}
...
}
LaboratoryAuthorization.java
Not linked
Not
linked
Example
/* *This class implements the GUI for
managing laboratories data */
public class GUILaboratoryData {
private jFrame window;
private jButton insert;
...
public GUILaboratoryData(){
window = ne JFrame();
insert = new JButton();
...
}
...
}
Use Case Insert Laboratory Data
Description The user inserts the data of a
specific laboratory
Events 1. The user opens the Laboratory
GUI
2. The user inserts the
laboratory data
.
.
.
GUILaboratoryData.java
Structural dependecy
public class LaboratoryAuthorization{
public void setAuthorization(Doctor
pDoctor){
...
}
...
}
Laboratory.java
Not linked
linked
Structural information is not
always useful
Approach 1: Optimistic Combination (O-CSTI)
Source_1 Class_2 95.4%
Source_3 Class_4 92.1%
Source_1 Class_1 85.6%
Source_2 Class_2 83.2%
Source_3 Class_3 81.2%
Source_1 Class_3 79.0%
Source_3 Class_2 77.5%
Source_2 Class_4 64.3%
Source_2 Class_3 53.2%
Code
Classes
IR Engine
Source
Artifacts
Candidate Links
Step 1: traditional IR process
Approach 1: Optimistic Combination (O-CSTI)
Source_1 Class_2 95.4%
Source_3 Class_4 92.1%
Source_1 Class_1 85.6%
Source_2 Class_2 83.2%
Source_3 Class_3 81.2%
Source_1 Class_3 79.0%
Source_3 Class_2 77.5%
Source_2 Class_4 64.3%
Source_3 Class_4 53.2%
Candidate Links
Class_2
Class_1
Class_3
Class_4
+ Bonus
+ Bonus
Step 2: applying bonus to all the links
Approach 1: Optimistic Combination (O-CSTI)
Source_1 Class_2 95.4%
Source_3 Class_4 92.1%
Source_1 Class_1 85.6%
Source_2 Class_2 83.2%
Source_3 Class_3 81.2%
Source_1 Class_3 79.0%
Source_3 Class_2 77.5%
Source_2 Class_4 64.3%
Source_3 Class_4 53.2%
Candidate Links
Step 2: applying bonus to all the links
Class_2
Class_1
Class_3
Class_4
+ Bonus
+ Bonus
+ Bonus
Approach 1: Optimistic Combination (O-CSTI)
Source_1 Class_2 95.4%
Source_3 Class_4 92.1%
Source_1 Class_1 85.6%
Source_2 Class_2 83.2%
Source_3 Class_3 81.2%
Source_1 Class_3 79.0%
Source_3 Class_2 77.5%
Source_2 Class_4 64.3%
Source_3 Class_4 53.2%
Candidate Links
Step 2: applying bonus to all the links
Class_2
Class_1
Class_3
Class_4
+ Bonus
+ 2Bonus
+ Bonus
+ Bonus
Approach 1: Optimistic Combination (O-CSTI)
End?
YES
NO
Apply the bonus to all the links
Tradidional IR process
The user judges the i-th link
Re-order the list
Approach 2: User Driven Combination (U-CSTI)
Approach 2: User Driven Combination (U-CSTI)
Approach 2: User Driven Combination (U-CSTI)
Tradidional IR process
The user judges the i-th link
if correct
Apply bonus No bonus
Re-order the list
End?
YES
NO
YES
NO
Adaptive bonus
Sim(Source1, Class1) = Sim(Source1, Class1) + δ * Sim(Source1, Class1)
Adaptive bonus
Sim(Source1, Class1) = Sim(Source1, Class1) + δ * Sim(Source1, Class1)
yvariabilitlistranked
2
)min()max(



SimSim

Source_1 Class_2 95.4%
Source_3 Class_4 92.1%
Source_1 Class_1 85.6%
Source_2 Class_2 83.2%
Source_3 Class_3 81.2%
Source_1 Class_3 79.0%
Source_3 Class_2 77.5%
Source_2 Class_4 64.3%
Source_2 Class_3 53.2%
Candidate Links
max(Sim)
min(Sim)
variability
Implementation
We provide the experiments and datasets for download at
http://www.cs.wm.edu/semeru/data/csmr13/
TraceLab Components
1) Adaptive Bonus
2) Optimistic Comibination
(O-CSTI)
3) User Driven Combination
(U-CSTI)
4) Different IR Methods:
- Vector Space Model
- Jensen-Shannon
Implementation
We provide the experiments and datasets for download at
http://www.cs.wm.edu/semeru/data/csmr13/
TraceLab Components
1) Adaptive Bonus
2) Optimistic Comibination
(O-CSTI)
3) User Driven Combination
(U-CSTI)
4) Different IR Methods:
- Vector Space Model
- Jensen-Shannon
IR
method
Empirical Evaluation
Context
We compared three IR-based processes:
1) IR process alone
2) O-CSTI (optimistic combination)
3) U-CSTI (user driven combination)
Results
Vector Space Model
Results
Jensen-Shannon Divergence
Results
Tracing Use Cases onto Code Classes on SMOS
Vector Space Model
Results
Tracing Use Cases onto Code Classes on SMOS
Vector Space Model Jensen-Shannon Divergence
Optimality of the Adaptive Bonus
Adaptive Bonus vs Fixed Bonus
- We used different fixed bonus values
Optimality of the Adaptive Bonus
EasyClinic UC-CC with VSM EasyClinic TC-CC with JS
Adaptive Bonus vs Fixed Bonus
- We used different fixed bonus values
Conclusions
When and How Using Structural Information to Improve IR-Based Traceability Recovery

Weitere ähnliche Inhalte

Was ist angesagt?

Spring Certification Questions
Spring Certification QuestionsSpring Certification Questions
Spring Certification QuestionsSpringMockExams
 
Quick test professional certifcation questions and tutorial2
Quick test professional certifcation questions and tutorial2Quick test professional certifcation questions and tutorial2
Quick test professional certifcation questions and tutorial2Ramu Palanki
 
Net Beans Codes for Student Portal
Net Beans Codes for Student PortalNet Beans Codes for Student Portal
Net Beans Codes for Student PortalPeeyush Ranjan
 
JUnit- A Unit Testing Framework
JUnit- A Unit Testing FrameworkJUnit- A Unit Testing Framework
JUnit- A Unit Testing FrameworkOnkar Deshpande
 
Moving to Module: Issues & Solutions
Moving to Module: Issues & SolutionsMoving to Module: Issues & Solutions
Moving to Module: Issues & SolutionsYuichi Sakuraba
 
DynaMine: Finding Common Error Patterns by Mining Software Revision Histories
DynaMine: Finding Common Error Patterns by Mining Software Revision HistoriesDynaMine: Finding Common Error Patterns by Mining Software Revision Histories
DynaMine: Finding Common Error Patterns by Mining Software Revision HistoriesThomas Zimmermann
 
比XML更好用的Java Annotation
比XML更好用的Java Annotation比XML更好用的Java Annotation
比XML更好用的Java Annotationjavatwo2011
 
Don't Make Android Bad... Again
Don't Make Android Bad... AgainDon't Make Android Bad... Again
Don't Make Android Bad... AgainPedro Vicente
 
Simple Unit Testing With Netbeans 6.1
Simple Unit Testing With Netbeans 6.1Simple Unit Testing With Netbeans 6.1
Simple Unit Testing With Netbeans 6.1Kiki Ahmadi
 
J2ME Lwuit, Storage & Connections (Ft Prasanjit Dey)
J2ME Lwuit, Storage & Connections (Ft   Prasanjit Dey)J2ME Lwuit, Storage & Connections (Ft   Prasanjit Dey)
J2ME Lwuit, Storage & Connections (Ft Prasanjit Dey)Fafadia Tech
 
Spring certification-mock-exam
Spring certification-mock-examSpring certification-mock-exam
Spring certification-mock-examdmz networks
 

Was ist angesagt? (20)

Spring Certification Questions
Spring Certification QuestionsSpring Certification Questions
Spring Certification Questions
 
JUNit Presentation
JUNit PresentationJUNit Presentation
JUNit Presentation
 
Quick test professional certifcation questions and tutorial2
Quick test professional certifcation questions and tutorial2Quick test professional certifcation questions and tutorial2
Quick test professional certifcation questions and tutorial2
 
Net Beans Codes for Student Portal
Net Beans Codes for Student PortalNet Beans Codes for Student Portal
Net Beans Codes for Student Portal
 
JUnit- A Unit Testing Framework
JUnit- A Unit Testing FrameworkJUnit- A Unit Testing Framework
JUnit- A Unit Testing Framework
 
Junit
JunitJunit
Junit
 
Thread & concurrancy
Thread & concurrancyThread & concurrancy
Thread & concurrancy
 
Moving to Module: Issues & Solutions
Moving to Module: Issues & SolutionsMoving to Module: Issues & Solutions
Moving to Module: Issues & Solutions
 
DynaMine: Finding Common Error Patterns by Mining Software Revision Histories
DynaMine: Finding Common Error Patterns by Mining Software Revision HistoriesDynaMine: Finding Common Error Patterns by Mining Software Revision Histories
DynaMine: Finding Common Error Patterns by Mining Software Revision Histories
 
3 j unit
3 j unit3 j unit
3 j unit
 
Junit tutorial
Junit tutorialJunit tutorial
Junit tutorial
 
Spring
SpringSpring
Spring
 
比XML更好用的Java Annotation
比XML更好用的Java Annotation比XML更好用的Java Annotation
比XML更好用的Java Annotation
 
Introduction to JUnit
Introduction to JUnitIntroduction to JUnit
Introduction to JUnit
 
Don't Make Android Bad... Again
Don't Make Android Bad... AgainDon't Make Android Bad... Again
Don't Make Android Bad... Again
 
Testing with Junit4
Testing with Junit4Testing with Junit4
Testing with Junit4
 
Simple Unit Testing With Netbeans 6.1
Simple Unit Testing With Netbeans 6.1Simple Unit Testing With Netbeans 6.1
Simple Unit Testing With Netbeans 6.1
 
Spring 3 to 4
Spring 3 to 4Spring 3 to 4
Spring 3 to 4
 
J2ME Lwuit, Storage & Connections (Ft Prasanjit Dey)
J2ME Lwuit, Storage & Connections (Ft   Prasanjit Dey)J2ME Lwuit, Storage & Connections (Ft   Prasanjit Dey)
J2ME Lwuit, Storage & Connections (Ft Prasanjit Dey)
 
Spring certification-mock-exam
Spring certification-mock-examSpring certification-mock-exam
Spring certification-mock-exam
 

Ähnlich wie When and How Using Structural Information to Improve IR-Based Traceability Recovery

Observer & singleton pattern
Observer  & singleton patternObserver  & singleton pattern
Observer & singleton patternbabak danyal
 
Exercícios Netbeans - Vera Cymbron
Exercícios Netbeans - Vera CymbronExercícios Netbeans - Vera Cymbron
Exercícios Netbeans - Vera Cymbroncymbron
 
An Introduction To Unit Testing and TDD
An Introduction To Unit Testing and TDDAn Introduction To Unit Testing and TDD
An Introduction To Unit Testing and TDDAhmed Ehab AbdulAziz
 
Android Architecture Components
Android Architecture ComponentsAndroid Architecture Components
Android Architecture ComponentsBurhanuddinRashid
 
Basic Java Application Developer Sesi 2
Basic Java Application Developer Sesi 2Basic Java Application Developer Sesi 2
Basic Java Application Developer Sesi 2Rudi Hartono
 
Design patterns in Java - Monitis 2017
Design patterns in Java - Monitis 2017Design patterns in Java - Monitis 2017
Design patterns in Java - Monitis 2017Arsen Gasparyan
 
Java programming concept
Java programming conceptJava programming concept
Java programming conceptSanjay Gunjal
 
Introduction to JUnit testing in OpenDaylight
Introduction to JUnit testing in OpenDaylightIntroduction to JUnit testing in OpenDaylight
Introduction to JUnit testing in OpenDaylightOpenDaylight
 
week3_srcDoWhileLoopFactorial.javaweek3_srcDoWhileLoopFactoria.docx
week3_srcDoWhileLoopFactorial.javaweek3_srcDoWhileLoopFactoria.docxweek3_srcDoWhileLoopFactorial.javaweek3_srcDoWhileLoopFactoria.docx
week3_srcDoWhileLoopFactorial.javaweek3_srcDoWhileLoopFactoria.docxalanfhall8953
 
Context and Dependency Injection 2.0
Context and Dependency Injection 2.0Context and Dependency Injection 2.0
Context and Dependency Injection 2.0Brian S. Paskin
 
Increase testability with code seams
Increase testability with code seamsIncrease testability with code seams
Increase testability with code seamsLlewellyn Falco
 
Annotation Processing in Android
Annotation Processing in AndroidAnnotation Processing in Android
Annotation Processing in Androidemanuelez
 
Java căn bản - Chapter7
Java căn bản - Chapter7Java căn bản - Chapter7
Java căn bản - Chapter7Vince Vo
 
OpenWebBeans and DeltaSpike at ApacheCon
OpenWebBeans and DeltaSpike at ApacheConOpenWebBeans and DeltaSpike at ApacheCon
OpenWebBeans and DeltaSpike at ApacheConos890
 
Dependency Injection for Android @ Ciklum speakers corner Kiev 29. May 2014
Dependency Injection for Android @ Ciklum speakers corner Kiev 29. May 2014Dependency Injection for Android @ Ciklum speakers corner Kiev 29. May 2014
Dependency Injection for Android @ Ciklum speakers corner Kiev 29. May 2014First Tuesday Bergen
 
Chapter 7 - Defining Your Own Classes - Part II
Chapter 7 - Defining Your Own Classes - Part IIChapter 7 - Defining Your Own Classes - Part II
Chapter 7 - Defining Your Own Classes - Part IIEduardo Bergavera
 

Ähnlich wie When and How Using Structural Information to Improve IR-Based Traceability Recovery (20)

Observer & singleton pattern
Observer  & singleton patternObserver  & singleton pattern
Observer & singleton pattern
 
Exercícios Netbeans - Vera Cymbron
Exercícios Netbeans - Vera CymbronExercícios Netbeans - Vera Cymbron
Exercícios Netbeans - Vera Cymbron
 
An Introduction To Unit Testing and TDD
An Introduction To Unit Testing and TDDAn Introduction To Unit Testing and TDD
An Introduction To Unit Testing and TDD
 
Android Architecture Components
Android Architecture ComponentsAndroid Architecture Components
Android Architecture Components
 
Basic Java Application Developer Sesi 2
Basic Java Application Developer Sesi 2Basic Java Application Developer Sesi 2
Basic Java Application Developer Sesi 2
 
Design patterns in Java - Monitis 2017
Design patterns in Java - Monitis 2017Design patterns in Java - Monitis 2017
Design patterns in Java - Monitis 2017
 
Java programming concept
Java programming conceptJava programming concept
Java programming concept
 
Introduction to JUnit testing in OpenDaylight
Introduction to JUnit testing in OpenDaylightIntroduction to JUnit testing in OpenDaylight
Introduction to JUnit testing in OpenDaylight
 
week3_srcDoWhileLoopFactorial.javaweek3_srcDoWhileLoopFactoria.docx
week3_srcDoWhileLoopFactorial.javaweek3_srcDoWhileLoopFactoria.docxweek3_srcDoWhileLoopFactorial.javaweek3_srcDoWhileLoopFactoria.docx
week3_srcDoWhileLoopFactorial.javaweek3_srcDoWhileLoopFactoria.docx
 
Maze
MazeMaze
Maze
 
Context and Dependency Injection 2.0
Context and Dependency Injection 2.0Context and Dependency Injection 2.0
Context and Dependency Injection 2.0
 
Android TDD
Android TDDAndroid TDD
Android TDD
 
Increase testability with code seams
Increase testability with code seamsIncrease testability with code seams
Increase testability with code seams
 
Annotation Processing in Android
Annotation Processing in AndroidAnnotation Processing in Android
Annotation Processing in Android
 
Java căn bản - Chapter7
Java căn bản - Chapter7Java căn bản - Chapter7
Java căn bản - Chapter7
 
OpenWebBeans and DeltaSpike at ApacheCon
OpenWebBeans and DeltaSpike at ApacheConOpenWebBeans and DeltaSpike at ApacheCon
OpenWebBeans and DeltaSpike at ApacheCon
 
Dependency Injection for Android
Dependency Injection for AndroidDependency Injection for Android
Dependency Injection for Android
 
Dependency Injection for Android @ Ciklum speakers corner Kiev 29. May 2014
Dependency Injection for Android @ Ciklum speakers corner Kiev 29. May 2014Dependency Injection for Android @ Ciklum speakers corner Kiev 29. May 2014
Dependency Injection for Android @ Ciklum speakers corner Kiev 29. May 2014
 
Java Programming - 04 object oriented in java
Java Programming - 04 object oriented in javaJava Programming - 04 object oriented in java
Java Programming - 04 object oriented in java
 
Chapter 7 - Defining Your Own Classes - Part II
Chapter 7 - Defining Your Own Classes - Part IIChapter 7 - Defining Your Own Classes - Part II
Chapter 7 - Defining Your Own Classes - Part II
 

Mehr von Annibale Panichella

Breaking the Silence: the Threats of Using LLMs in Software Engineering
Breaking the Silence: the Threats of Using LLMs in Software EngineeringBreaking the Silence: the Threats of Using LLMs in Software Engineering
Breaking the Silence: the Threats of Using LLMs in Software EngineeringAnnibale Panichella
 
Searching for Quality: Genetic Algorithms and Metamorphic Testing for Softwar...
Searching for Quality: Genetic Algorithms and Metamorphic Testing for Softwar...Searching for Quality: Genetic Algorithms and Metamorphic Testing for Softwar...
Searching for Quality: Genetic Algorithms and Metamorphic Testing for Softwar...Annibale Panichella
 
A Fast Multi-objective Evolutionary Approach for Designing Large-Scale Optica...
A Fast Multi-objective Evolutionary Approach for Designing Large-Scale Optica...A Fast Multi-objective Evolutionary Approach for Designing Large-Scale Optica...
A Fast Multi-objective Evolutionary Approach for Designing Large-Scale Optica...Annibale Panichella
 
An Improved Pareto Front Modeling Algorithm for Large-scale Many-Objective Op...
An Improved Pareto Front Modeling Algorithm for Large-scale Many-Objective Op...An Improved Pareto Front Modeling Algorithm for Large-scale Many-Objective Op...
An Improved Pareto Front Modeling Algorithm for Large-scale Many-Objective Op...Annibale Panichella
 
An Adaptive Evolutionary Algorithm based on Non-Euclidean Geometry for Many-O...
An Adaptive Evolutionary Algorithm based on Non-Euclidean Geometry for Many-O...An Adaptive Evolutionary Algorithm based on Non-Euclidean Geometry for Many-O...
An Adaptive Evolutionary Algorithm based on Non-Euclidean Geometry for Many-O...Annibale Panichella
 
Speeding-up Software Testing With Computational Intelligence
Speeding-up Software Testing With Computational IntelligenceSpeeding-up Software Testing With Computational Intelligence
Speeding-up Software Testing With Computational IntelligenceAnnibale Panichella
 
Incremental Control Dependency Frontier Exploration for Many-Criteria Test C...
Incremental Control Dependency Frontier Exploration for Many-Criteria  Test C...Incremental Control Dependency Frontier Exploration for Many-Criteria  Test C...
Incremental Control Dependency Frontier Exploration for Many-Criteria Test C...Annibale Panichella
 
Java Unit Testing Tool Competition — Fifth Round
Java Unit Testing Tool Competition — Fifth RoundJava Unit Testing Tool Competition — Fifth Round
Java Unit Testing Tool Competition — Fifth RoundAnnibale Panichella
 
Evolutionary Testing for Crash Reproduction
Evolutionary Testing for Crash ReproductionEvolutionary Testing for Crash Reproduction
Evolutionary Testing for Crash ReproductionAnnibale Panichella
 
Parameterizing and Assembling IR-based Solutions for SE Tasks using Genetic A...
Parameterizing and Assembling IR-based Solutions for SE Tasks using Genetic A...Parameterizing and Assembling IR-based Solutions for SE Tasks using Genetic A...
Parameterizing and Assembling IR-based Solutions for SE Tasks using Genetic A...Annibale Panichella
 
Security Threat Identification and Testing
Security Threat Identification and TestingSecurity Threat Identification and Testing
Security Threat Identification and TestingAnnibale Panichella
 
Reformulating Branch Coverage as a Many-Objective Optimization Problem
Reformulating Branch Coverage as a Many-Objective Optimization ProblemReformulating Branch Coverage as a Many-Objective Optimization Problem
Reformulating Branch Coverage as a Many-Objective Optimization ProblemAnnibale Panichella
 
Results for EvoSuite-MOSA at the Third Unit Testing Tool Competition
Results for EvoSuite-MOSA at the Third Unit Testing Tool CompetitionResults for EvoSuite-MOSA at the Third Unit Testing Tool Competition
Results for EvoSuite-MOSA at the Third Unit Testing Tool CompetitionAnnibale Panichella
 
Adaptive User Feedback for IR-based Traceability Recovery
Adaptive User Feedback for IR-based Traceability RecoveryAdaptive User Feedback for IR-based Traceability Recovery
Adaptive User Feedback for IR-based Traceability RecoveryAnnibale Panichella
 
Diversity mechanisms for evolutionary populations in Search-Based Software En...
Diversity mechanisms for evolutionary populations in Search-Based Software En...Diversity mechanisms for evolutionary populations in Search-Based Software En...
Diversity mechanisms for evolutionary populations in Search-Based Software En...Annibale Panichella
 
Estimating the Evolution Direction of Populations to Improve Genetic Algorithms
Estimating the Evolution Direction of Populations to Improve Genetic AlgorithmsEstimating the Evolution Direction of Populations to Improve Genetic Algorithms
Estimating the Evolution Direction of Populations to Improve Genetic AlgorithmsAnnibale Panichella
 

Mehr von Annibale Panichella (20)

Breaking the Silence: the Threats of Using LLMs in Software Engineering
Breaking the Silence: the Threats of Using LLMs in Software EngineeringBreaking the Silence: the Threats of Using LLMs in Software Engineering
Breaking the Silence: the Threats of Using LLMs in Software Engineering
 
Searching for Quality: Genetic Algorithms and Metamorphic Testing for Softwar...
Searching for Quality: Genetic Algorithms and Metamorphic Testing for Softwar...Searching for Quality: Genetic Algorithms and Metamorphic Testing for Softwar...
Searching for Quality: Genetic Algorithms and Metamorphic Testing for Softwar...
 
A Fast Multi-objective Evolutionary Approach for Designing Large-Scale Optica...
A Fast Multi-objective Evolutionary Approach for Designing Large-Scale Optica...A Fast Multi-objective Evolutionary Approach for Designing Large-Scale Optica...
A Fast Multi-objective Evolutionary Approach for Designing Large-Scale Optica...
 
An Improved Pareto Front Modeling Algorithm for Large-scale Many-Objective Op...
An Improved Pareto Front Modeling Algorithm for Large-scale Many-Objective Op...An Improved Pareto Front Modeling Algorithm for Large-scale Many-Objective Op...
An Improved Pareto Front Modeling Algorithm for Large-scale Many-Objective Op...
 
VST2022.pdf
VST2022.pdfVST2022.pdf
VST2022.pdf
 
IPA Fall Days 2019
 IPA Fall Days 2019 IPA Fall Days 2019
IPA Fall Days 2019
 
An Adaptive Evolutionary Algorithm based on Non-Euclidean Geometry for Many-O...
An Adaptive Evolutionary Algorithm based on Non-Euclidean Geometry for Many-O...An Adaptive Evolutionary Algorithm based on Non-Euclidean Geometry for Many-O...
An Adaptive Evolutionary Algorithm based on Non-Euclidean Geometry for Many-O...
 
Speeding-up Software Testing With Computational Intelligence
Speeding-up Software Testing With Computational IntelligenceSpeeding-up Software Testing With Computational Intelligence
Speeding-up Software Testing With Computational Intelligence
 
Incremental Control Dependency Frontier Exploration for Many-Criteria Test C...
Incremental Control Dependency Frontier Exploration for Many-Criteria  Test C...Incremental Control Dependency Frontier Exploration for Many-Criteria  Test C...
Incremental Control Dependency Frontier Exploration for Many-Criteria Test C...
 
Sbst2018 contest2018
Sbst2018 contest2018Sbst2018 contest2018
Sbst2018 contest2018
 
Java Unit Testing Tool Competition — Fifth Round
Java Unit Testing Tool Competition — Fifth RoundJava Unit Testing Tool Competition — Fifth Round
Java Unit Testing Tool Competition — Fifth Round
 
ICSE 2017 - Evocrash
ICSE 2017 - EvocrashICSE 2017 - Evocrash
ICSE 2017 - Evocrash
 
Evolutionary Testing for Crash Reproduction
Evolutionary Testing for Crash ReproductionEvolutionary Testing for Crash Reproduction
Evolutionary Testing for Crash Reproduction
 
Parameterizing and Assembling IR-based Solutions for SE Tasks using Genetic A...
Parameterizing and Assembling IR-based Solutions for SE Tasks using Genetic A...Parameterizing and Assembling IR-based Solutions for SE Tasks using Genetic A...
Parameterizing and Assembling IR-based Solutions for SE Tasks using Genetic A...
 
Security Threat Identification and Testing
Security Threat Identification and TestingSecurity Threat Identification and Testing
Security Threat Identification and Testing
 
Reformulating Branch Coverage as a Many-Objective Optimization Problem
Reformulating Branch Coverage as a Many-Objective Optimization ProblemReformulating Branch Coverage as a Many-Objective Optimization Problem
Reformulating Branch Coverage as a Many-Objective Optimization Problem
 
Results for EvoSuite-MOSA at the Third Unit Testing Tool Competition
Results for EvoSuite-MOSA at the Third Unit Testing Tool CompetitionResults for EvoSuite-MOSA at the Third Unit Testing Tool Competition
Results for EvoSuite-MOSA at the Third Unit Testing Tool Competition
 
Adaptive User Feedback for IR-based Traceability Recovery
Adaptive User Feedback for IR-based Traceability RecoveryAdaptive User Feedback for IR-based Traceability Recovery
Adaptive User Feedback for IR-based Traceability Recovery
 
Diversity mechanisms for evolutionary populations in Search-Based Software En...
Diversity mechanisms for evolutionary populations in Search-Based Software En...Diversity mechanisms for evolutionary populations in Search-Based Software En...
Diversity mechanisms for evolutionary populations in Search-Based Software En...
 
Estimating the Evolution Direction of Populations to Improve Genetic Algorithms
Estimating the Evolution Direction of Populations to Improve Genetic AlgorithmsEstimating the Evolution Direction of Populations to Improve Genetic Algorithms
Estimating the Evolution Direction of Populations to Improve Genetic Algorithms
 

Kürzlich hochgeladen

BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort ServiceDelhi Call girls
 
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...Pooja Nehwal
 
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara ServicesVVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara ServicesPooja Nehwal
 
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024eCommerce Institute
 
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...Kayode Fayemi
 
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...Hasting Chen
 
Thirunelveli call girls Tamil escorts 7877702510
Thirunelveli call girls Tamil escorts 7877702510Thirunelveli call girls Tamil escorts 7877702510
Thirunelveli call girls Tamil escorts 7877702510Vipesco
 
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night EnjoyCall Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night EnjoyPooja Nehwal
 
Introduction to Prompt Engineering (Focusing on ChatGPT)
Introduction to Prompt Engineering (Focusing on ChatGPT)Introduction to Prompt Engineering (Focusing on ChatGPT)
Introduction to Prompt Engineering (Focusing on ChatGPT)Chameera Dedduwage
 
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )Pooja Nehwal
 
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptx
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptxMohammad_Alnahdi_Oral_Presentation_Assignment.pptx
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptxmohammadalnahdi22
 
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdfOpen Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdfhenrik385807
 
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...henrik385807
 
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779Delhi Call girls
 
Mathematics of Finance Presentation.pptx
Mathematics of Finance Presentation.pptxMathematics of Finance Presentation.pptx
Mathematics of Finance Presentation.pptxMoumonDas2
 
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝soniya singh
 
George Lever - eCommerce Day Chile 2024
George Lever -  eCommerce Day Chile 2024George Lever -  eCommerce Day Chile 2024
George Lever - eCommerce Day Chile 2024eCommerce Institute
 
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...Sheetaleventcompany
 
SaaStr Workshop Wednesday w: Jason Lemkin, SaaStr
SaaStr Workshop Wednesday w: Jason Lemkin, SaaStrSaaStr Workshop Wednesday w: Jason Lemkin, SaaStr
SaaStr Workshop Wednesday w: Jason Lemkin, SaaStrsaastr
 

Kürzlich hochgeladen (20)

BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort Service
 
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
 
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara ServicesVVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
 
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024
 
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
 
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
 
Thirunelveli call girls Tamil escorts 7877702510
Thirunelveli call girls Tamil escorts 7877702510Thirunelveli call girls Tamil escorts 7877702510
Thirunelveli call girls Tamil escorts 7877702510
 
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night EnjoyCall Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
 
Introduction to Prompt Engineering (Focusing on ChatGPT)
Introduction to Prompt Engineering (Focusing on ChatGPT)Introduction to Prompt Engineering (Focusing on ChatGPT)
Introduction to Prompt Engineering (Focusing on ChatGPT)
 
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
 
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptx
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptxMohammad_Alnahdi_Oral_Presentation_Assignment.pptx
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptx
 
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdfOpen Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
 
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
 
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
 
Mathematics of Finance Presentation.pptx
Mathematics of Finance Presentation.pptxMathematics of Finance Presentation.pptx
Mathematics of Finance Presentation.pptx
 
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
 
George Lever - eCommerce Day Chile 2024
George Lever -  eCommerce Day Chile 2024George Lever -  eCommerce Day Chile 2024
George Lever - eCommerce Day Chile 2024
 
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
 
SaaStr Workshop Wednesday w: Jason Lemkin, SaaStr
SaaStr Workshop Wednesday w: Jason Lemkin, SaaStrSaaStr Workshop Wednesday w: Jason Lemkin, SaaStr
SaaStr Workshop Wednesday w: Jason Lemkin, SaaStr
 

When and How Using Structural Information to Improve IR-Based Traceability Recovery

  • 1. When and How Using Structural Information to Improve IR-based Traceability Recovery Annibale Panichella1, Collin McMillan2, Evan Moritz 3, Davide Palmieri 4, Rocco Oliveto 4, Denys Poshyvaniyk 3, Andrea De Lucia1 1 Software Engineering Lab , University of Salerno, Italy 2 University of Notre Dame, Notre Dame, USA 3 The College of William and Mary, Williamsburg, USA 2 University of Molise, Pesche (IS), Italiy
  • 2.
  • 4. Traceability information is still not commonplace in software projects!
  • 6. IR-based Traceability Recovery Use Case Insert Laboratory Data Description The user inserts the data of a specific laboratory Events 1. The user opens the Laboratory GUI 2. The user inserts the laboratory data . . . /* *This class implements the GUI for managing laboratories data */ public class GUI Laboratory Data { private jFrame window; private jButton insert; ... public GUI Laboratory Data(){ window = ne JFrame(); insert = new JButton(); ... } ... } GUILaboratoryData.java
  • 7. IR-based Traceability Recovery Use Case Insert Laboratory Data Description The user inserts the data of a specific laboratory Events 1. The user opens the Laboratory GUI 2. The user inserts the laboratory data . . . /* *This class implements the GUI for managing laboratories data */ public class GUI Laboratory Data { private jFrame window; private jButton insert; ... public GUI Laboratory Data(){ window = new JFrame(); insert = new JButton(); ... } ... } GUILaboratoryData.java
  • 8. IR-based Traceability Recovery Use Case Insert Laboratory Data Description The user inserts the data of a specific laboratory Events 1. The user opens the Laboratory GUI 2. The user inserts the laboratory data . . . /* *This class implements the GUI for managing laboratories data */ public class GUI Laboratory Data { private jFrame window; private jButton insert; ... public GUI Laboratory Data(){ window = new JFrame(); insert = new JButton(); ... } ... } GUILaboratoryData.java Similarity 42%
  • 9. IR-based Traceability Recovery Use Case Insert Laboratory Data Description The user inserts the data of a specific laboratory Events 1. The user opens the Laboratory GUI 2. The user inserts the laboratory data . . . /* *This class implements the GUI for managing laboratories data */ public class GUI Laboratory Data { private jFrame window; private jButton insert; ... public GUI Laboratory Data(){ window = new JFrame(); insert = new JButton(); ... } ... } GUILaboratoryData.java True Link
  • 10. IR-based Traceability Recovery Source_1 Target_2 95.4% Source_3 Target_4 92.1% Source_1 Target_1 85.6% Source_2 Target_2 83.2% Source_3 Target_3 81.2% Source_1 Target_3 79.0% Source_3 Target_2 77.5% Source_2 Target_4 64.3% Source_2 Target_3 53.2% Target Artifacts IR Engine Source Artifacts Candidate Links
  • 11. Source_1 Target_2 95.4% Source_3 Target_4 92.1% Source_1 Target_1 85.6% Source_2 Target_2 83.2% Source_3 Target_3 81.2% Source_1 Target_3 79.0% Source_3 Target_2 77.5% Source_2 Target_4 64.3% Source_2 Target_3 53.2% IR-based Traceability Recovery Target Artifacts IR Engine Source Artifacts Candidate Links
  • 12. Structural Information and Traceability Combining Textual and Structural Analysis of Software Artifacts for Traceability Link Recovery - Collin McMillan, Denys Poshyvanyk, Meghan Revelle TEFSE 2009
  • 13. /* *This class implements the GUI for managing laboratories data */ public class GUILaboratoryData { private jFrame window; private jButton insert; ... public GUILaboratoryData(){ window = ne JFrame(); insert = new JButton(); ... } ... } Structural Information and Traceability Use Case Insert Laboratory Data Description The user inserts the data of a specific laboratory Events 1. The user opens the Laboratory GUI 2. The user inserts the laboratory data . . . GUILaboratoryData.java linked
  • 14. public class Laboratory{ private String name; private String position; ... public void setName(String pName){ this.name=pName; } ... } Laboratory.java /* *This class implements the GUI for managing laboratories data */ public class GUILaboratoryData { private jFrame window; private jButton insert; ... public GUILaboratoryData(){ window = ne JFrame(); insert = new JButton(); ... } ... } Use Case Insert Laboratory Data Description The user inserts the data of a specific laboratory Events 1. The user opens the Laboratory GUI 2. The user inserts the laboratory data . . . GUILaboratoryData.java linked linked Structural Information and Traceability
  • 15. /* *This class implements the GUI for managing laboratories data */ public class GUILaboratoryData { private jFrame window; private jButton insert; ... public GUILaboratoryData(){ window = ne JFrame(); insert = new JButton(); ... } ... } GUILaboratoryData.java linked Use Case Insert Laboratory Data Description The user inserts the data of a specific laboratory Events 1. The user opens the Laboratory GUI 2. The user inserts the laboratory data . . . public class Laboratory{ private String name; private String position; ... public void setName(String pName){ this.name=pName; } ... } Laboratory.java linked Structural Information and Traceability
  • 16. /* *This class implements the GUI for managing laboratories data */ public class GUILaboratoryData { private jFrame window; private jButton insert; ... public GUILaboratoryData(){ window = ne JFrame(); insert = new JButton(); ... } ... } GUILaboratoryData.java linked Use Case Insert Laboratory Data Description The user inserts the data of a specific laboratory Events 1. The user opens the Laboratory GUI 2. The user inserts the laboratory data . . . public class Laboratory{ private String name; private String position; ... public void setName(String pName){ this.name=pName; } ... } Laboratory.java linked Structural Information and Traceability Structural dependecy
  • 17. /* *This class implements the GUI for managing laboratories data */ public class GUILaboratoryData { private jFrame window; private jButton insert; ... public GUILaboratoryData(){ window = ne JFrame(); insert = new JButton(); ... } ... } Use Case Insert Laboratory Data Description The user inserts the data of a specific laboratory Events 1. The user opens the Laboratory GUI 2. The user inserts the laboratory data . . . GUILaboratoryData.java Structural dependecy Structural Information and Traceability public class Laboratory{ private String name; private String position; ... public void setName(String pName){ this.name=pName; } ... } Laboratory.java linked linked Transitivity
  • 18. /* *This class implements the GUI for managing laboratories data */ public class GUILaboratoryData { private jFrame window; private jButton insert; ... public GUILaboratoryData(){ window = ne JFrame(); insert = new JButton(); ... } ... } Use Case Insert Laboratory Data Description The user inserts the data of a specific laboratory Events 1. The user opens the Laboratory GUI 2. The user inserts the laboratory data . . . GUILaboratoryData.java Structural dependecy Structural Information and Traceability public class Laboratory{ private String name; private String position; ... public void setName(String pName){ this.name=pName; } ... } Laboratory.java linked linked Transitivity
  • 19. Open Issues 1) The choice of the bonus value is cricual • Different systems require different bonus • Different IR methods require different bonus
  • 20. Open Issues 1) The choice of the bonus value is cricual • Different systems require different bonus • Different IR methods require different bonus 2) When applying the bonus? . The transitivity property does not always hold
  • 21. Example /* *This class implements the GUI for managing laboratories data */ public class GUIDoctorData { private jFrame window; private jButton insert; ... public GUIDoctorData(){ window = ne JFrame(); insert = new JButton(); ... } ... } Use Case Insert Laboratory Data Description The user inserts the data of a specific laboratory Events 1. The user opens the Laboratory GUI 2. The user inserts the laboratory data . . . GUIDoctorData.java Not linked
  • 22. Example /* *This class implements the GUI for managing laboratories data */ public class GUILaboratoryData { private jFrame window; private jButton insert; ... public GUILaboratoryData(){ window = ne JFrame(); insert = new JButton(); ... } ... } Use Case Insert Laboratory Data Description The user inserts the data of a specific laboratory Events 1. The user opens the Laboratory GUI 2. The user inserts the laboratory data . . . GUIDoctorData.java Not linked
  • 23. Example /* *This class implements the GUI for managing laboratories data */ public class GUILaboratoryData { private jFrame window; private jButton insert; ... public GUILaboratoryData(){ window = ne JFrame(); insert = new JButton(); ... } ... } Use Case Insert Laboratory Data Description The user inserts the data of a specific laboratory Events 1. The user opens the Laboratory GUI 2. The user inserts the laboratory data . . . GUIDoctorData.java public class Authorization{ public void setAuthorization(Doctor pDoctor, Laboratory pLab){ ... } ... } Autorization.java Not linked Not linked
  • 24. Example /* *This class implements the GUI for managing laboratories data */ public class GUILaboratoryData { private jFrame window; private jButton insert; ... public GUILaboratoryData(){ window = ne JFrame(); insert = new JButton(); ... } ... } Use Case Insert Laboratory Data Description The user inserts the data of a specific laboratory Events 1. The user opens the Laboratory GUI 2. The user inserts the laboratory data . . . GUILaboratoryData.java Structural dependecy public class LaboratoryAuthorization{ public void setAuthorization(Doctor pDoctor){ ... } ... } LaboratoryAuthorization.java Not linked Not linked
  • 25. Example /* *This class implements the GUI for managing laboratories data */ public class GUILaboratoryData { private jFrame window; private jButton insert; ... public GUILaboratoryData(){ window = ne JFrame(); insert = new JButton(); ... } ... } Use Case Insert Laboratory Data Description The user inserts the data of a specific laboratory Events 1. The user opens the Laboratory GUI 2. The user inserts the laboratory data . . . GUILaboratoryData.java Structural dependecy public class LaboratoryAuthorization{ public void setAuthorization(Doctor pDoctor){ ... } ... } LaboratoryAuthorization.java Not linked Not linked
  • 26. Example /* *This class implements the GUI for managing laboratories data */ public class GUILaboratoryData { private jFrame window; private jButton insert; ... public GUILaboratoryData(){ window = ne JFrame(); insert = new JButton(); ... } ... } Use Case Insert Laboratory Data Description The user inserts the data of a specific laboratory Events 1. The user opens the Laboratory GUI 2. The user inserts the laboratory data . . . GUILaboratoryData.java Structural dependecy public class LaboratoryAuthorization{ public void setAuthorization(Doctor pDoctor){ ... } ... } Laboratory.java Not linked linked Structural information is not always useful
  • 27. Approach 1: Optimistic Combination (O-CSTI) Source_1 Class_2 95.4% Source_3 Class_4 92.1% Source_1 Class_1 85.6% Source_2 Class_2 83.2% Source_3 Class_3 81.2% Source_1 Class_3 79.0% Source_3 Class_2 77.5% Source_2 Class_4 64.3% Source_2 Class_3 53.2% Code Classes IR Engine Source Artifacts Candidate Links Step 1: traditional IR process
  • 28. Approach 1: Optimistic Combination (O-CSTI) Source_1 Class_2 95.4% Source_3 Class_4 92.1% Source_1 Class_1 85.6% Source_2 Class_2 83.2% Source_3 Class_3 81.2% Source_1 Class_3 79.0% Source_3 Class_2 77.5% Source_2 Class_4 64.3% Source_3 Class_4 53.2% Candidate Links Class_2 Class_1 Class_3 Class_4 + Bonus + Bonus Step 2: applying bonus to all the links
  • 29. Approach 1: Optimistic Combination (O-CSTI) Source_1 Class_2 95.4% Source_3 Class_4 92.1% Source_1 Class_1 85.6% Source_2 Class_2 83.2% Source_3 Class_3 81.2% Source_1 Class_3 79.0% Source_3 Class_2 77.5% Source_2 Class_4 64.3% Source_3 Class_4 53.2% Candidate Links Step 2: applying bonus to all the links Class_2 Class_1 Class_3 Class_4 + Bonus + Bonus + Bonus
  • 30. Approach 1: Optimistic Combination (O-CSTI) Source_1 Class_2 95.4% Source_3 Class_4 92.1% Source_1 Class_1 85.6% Source_2 Class_2 83.2% Source_3 Class_3 81.2% Source_1 Class_3 79.0% Source_3 Class_2 77.5% Source_2 Class_4 64.3% Source_3 Class_4 53.2% Candidate Links Step 2: applying bonus to all the links Class_2 Class_1 Class_3 Class_4 + Bonus + 2Bonus + Bonus + Bonus
  • 31. Approach 1: Optimistic Combination (O-CSTI) End? YES NO Apply the bonus to all the links Tradidional IR process The user judges the i-th link Re-order the list
  • 32. Approach 2: User Driven Combination (U-CSTI)
  • 33. Approach 2: User Driven Combination (U-CSTI)
  • 34. Approach 2: User Driven Combination (U-CSTI) Tradidional IR process The user judges the i-th link if correct Apply bonus No bonus Re-order the list End? YES NO YES NO
  • 35. Adaptive bonus Sim(Source1, Class1) = Sim(Source1, Class1) + δ * Sim(Source1, Class1)
  • 36. Adaptive bonus Sim(Source1, Class1) = Sim(Source1, Class1) + δ * Sim(Source1, Class1) yvariabilitlistranked 2 )min()max(    SimSim  Source_1 Class_2 95.4% Source_3 Class_4 92.1% Source_1 Class_1 85.6% Source_2 Class_2 83.2% Source_3 Class_3 81.2% Source_1 Class_3 79.0% Source_3 Class_2 77.5% Source_2 Class_4 64.3% Source_2 Class_3 53.2% Candidate Links max(Sim) min(Sim) variability
  • 37. Implementation We provide the experiments and datasets for download at http://www.cs.wm.edu/semeru/data/csmr13/ TraceLab Components 1) Adaptive Bonus 2) Optimistic Comibination (O-CSTI) 3) User Driven Combination (U-CSTI) 4) Different IR Methods: - Vector Space Model - Jensen-Shannon
  • 38. Implementation We provide the experiments and datasets for download at http://www.cs.wm.edu/semeru/data/csmr13/ TraceLab Components 1) Adaptive Bonus 2) Optimistic Comibination (O-CSTI) 3) User Driven Combination (U-CSTI) 4) Different IR Methods: - Vector Space Model - Jensen-Shannon IR method
  • 40. Context We compared three IR-based processes: 1) IR process alone 2) O-CSTI (optimistic combination) 3) U-CSTI (user driven combination)
  • 43. Results Tracing Use Cases onto Code Classes on SMOS Vector Space Model
  • 44. Results Tracing Use Cases onto Code Classes on SMOS Vector Space Model Jensen-Shannon Divergence
  • 45. Optimality of the Adaptive Bonus Adaptive Bonus vs Fixed Bonus - We used different fixed bonus values
  • 46. Optimality of the Adaptive Bonus EasyClinic UC-CC with VSM EasyClinic TC-CC with JS Adaptive Bonus vs Fixed Bonus - We used different fixed bonus values