int i = a \ b
assert ( i == a \ b )
Requirement
int i = a \ b
assert ( i == a \ b )
Requirement
Source Code
Test Cases
Mining concepts from code with Topic Models (Linstead et al, 2007)
Latent Dirichlet Allocation (Maskeri et al, 2008)
VSM, LDA, Jensen-Shanon, Latent Semantic Indexing and Orthogonality (Oliveto et al, 2010)
Orthogonality and Hybrid Methods (Gethers et al, 2011)
Integrating multiple source of information and TM+GA (Dit et al, 2013)
To estimate the effect of X on Y
Gender
Recovery
Drug
Gender
Recovery
Drug
Gender
Recovery
Drug
If the doctor did not give the drug, then the patient was not recovered
If the doctor had not given the drug, then the patient would not have been recovered
If the doctor did not give the drug, then the patient was not recovered
If the doctor had not given the drug, then the patient would not have been recovered
If the doctor did not give the drug, then the patient was not recovered
If the doctor had not given the drug, then the patient would not have been recovered
The sets X and Y are said to be conditionally independent given Z if
Consider a dichotomous treatment A (1: LSI, 0:VSM) and a dichotomous outcome Y (1:Linked, 0:Not Linked)
Observable Outcome Variables
read Y under treatment a = 1
read Y under treatment a = 0
Potential outcomes or counterfactual outcomes.
Consider this scenario for a specific Req R1 to Code C1
R1 is not Linked to C1 under LSI
R1 is Linked to C1 under VSM
The treatment A has a causal effect on an individual's outcome Y if
Consider this scenario for a specific Req R1 to Code S1
Consider this powerful Research Question:
What is the average causal effect of IR baseline techniques on traceability?
In this case we need the expectation of the population
X
Z
Y
X
Z
Y
X
Z
Y
w
z
y
x
w
z
y
x
w
z
y
x
w
z
y
x
w
z
y
x
z
y
x
R
S
In experimental studies, we are allowed to change the individual.
Since we observe the phenomenon of traceabilty, it cannot be claimed that a Requirement Links are "Causing" Source Code Links
R
S
How can we measure the causal effect?
Links
Traceability Link
Endogenous Variables
Exogenous Variables
Joint Distribution
Conditional Independencies
Joint Distribution
A causal model M has an associated graphical representation called Causal Structure G(M)
Two nodes T and T' are d-separated by a set of C iff for every path between T,T' one of the following condition is fulfilled:
X
Z
Y
Observational Correlation
Req File | Source File | Correlation |
---|---|---|
RQ11 | est_client_proxy.c | 0.0573523792522 |
Req File | Source File | Correlation |
---|---|---|
RQ11 | est_client_proxy.c | 0.0573523792522 |
R0
R1
R2
R5
R4
R3
[
('R0', 'R1', {'marked': False, 'arrows': ['R0']}),
('R0', 'R2', {'marked': False, 'arrows': ['R0']}),
('R1', 'R5', {'marked': False, 'arrows': []}),
('R2', 'R4', {'marked': False, 'arrows': []}),
('R3', 'R4', {'marked': False, 'arrows': []}]
R0
R1
R2
R5
R4
R3
[
('R0', 'R1', {'marked': False, 'arrows': ['R0']}),
('R0', 'R2', {'marked': False, 'arrows': ['R0']}),
('R1', 'R5', {'marked': False, 'arrows': []}),
('R2', 'R4', {'marked': False, 'arrows': []}),
('R3', 'R4', {'marked': False, 'arrows': []}]
R0
R1
R2
R5
R4
R3
[
('R0', 'R1', {'marked': False, 'arrows': ['R0']}),
('R0', 'R2', {'marked': False, 'arrows': ['R0']}),
('R1', 'R5', {'marked': False, 'arrows': []}),
('R2', 'R4', {'marked': False, 'arrows': []}),
('R3', 'R4', {'marked': False, 'arrows': []}]
R0
R1
R2
R5
R4
R3
[
('R0', 'R1', {'marked': False, 'arrows': ['R0']}),
('R0', 'R2', {'marked': False, 'arrows': ['R0']}),
('R1', 'R5', {'marked': False, 'arrows': []}),
('R2', 'R4', {'marked': False, 'arrows': []}),
('R3', 'R4', {'marked': False, 'arrows': []}]
R0
R1
R2
R5
R4
R3
[
('R0', 'R1', {'marked': False, 'arrows': ['R0']}),
('R0', 'R2', {'marked': False, 'arrows': ['R0']}),
('R1', 'R5', {'marked': False, 'arrows': []}),
('R2', 'R4', {'marked': False, 'arrows': []}),
('R3', 'R4', {'marked': False, 'arrows': []}]
R0
R1
R2
R5
R4
R3