21
Decomposing the Rationale of Code Commits: The Software Developers’ Perspective Khadijah Al Safwan Francisco Servant

Decomposing the Rationale of Code Commits: The Software …people.cs.vt.edu/~khsaf//public/slides/fse19.pdf · 2019. 9. 12. · •Rationale in software development life-cycles •Software

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Decomposing the Rationale of Code Commits: The Software …people.cs.vt.edu/~khsaf//public/slides/fse19.pdf · 2019. 9. 12. · •Rationale in software development life-cycles •Software

Decomposing the Rationale of Code Commits: The Software Developers’ Perspective

Khadijah Al Safwan Francisco Servant

Page 2: Decomposing the Rationale of Code Commits: The Software …people.cs.vt.edu/~khsaf//public/slides/fse19.pdf · 2019. 9. 12. · •Rationale in software development life-cycles •Software

Khadijah Al Safwan

Introduction

What is the rationale behind these code changes?

2

What is the goal of [these changes]?

Why the code is this way?

What is the Needfor [these changes]?

What are the alternativesof [these changes]?

Page 3: Decomposing the Rationale of Code Commits: The Software …people.cs.vt.edu/~khsaf//public/slides/fse19.pdf · 2019. 9. 12. · •Rationale in software development life-cycles •Software

Khadijah Al Safwan

Introduction

What is the rationale behind these code changes?

3

What is the goal of [these changes]?

What is the Needfor [these changes]?

Why the code is this way?

What are the alternativesof [these changes]?

Page 4: Decomposing the Rationale of Code Commits: The Software …people.cs.vt.edu/~khsaf//public/slides/fse19.pdf · 2019. 9. 12. · •Rationale in software development life-cycles •Software

Khadijah Al Safwan

Related Work

• Rationale in software development life-cycles• Software requirements

• Software design and architecture• Software evolution and maintenance

• Empirical studies Ko 07, Burge 08, Fritz 10, LaToza 10, Roehm 12, Tao 12, Maalej 14, Codoban 15, Pascarella 18, Eber 18

• Capturing rationale Kurtanović 17, Alkadhi 18

• Software/change comprehension toolsBuse 10, Bradley 11, Cortés-Coy 14, Linares-Vásquez 15, Jiang 17,…

4

Page 5: Decomposing the Rationale of Code Commits: The Software …people.cs.vt.edu/~khsaf//public/slides/fse19.pdf · 2019. 9. 12. · •Rationale in software development life-cycles •Software

Khadijah Al Safwan

Research Method

5

One-to-One Interview

Model of Rationale

Online survey

Experience with Rationale

Page 6: Decomposing the Rationale of Code Commits: The Software …people.cs.vt.edu/~khsaf//public/slides/fse19.pdf · 2019. 9. 12. · •Rationale in software development life-cycles •Software

Khadijah Al Safwan 6

One-to-One InterviewDesign & AnalysisRecruitment

Public Channels Participant Referrals Screening Questionnaire

Page 7: Decomposing the Rationale of Code Commits: The Software …people.cs.vt.edu/~khsaf//public/slides/fse19.pdf · 2019. 9. 12. · •Rationale in software development life-cycles •Software

Khadijah Al Safwan

One-to-One Interview

7

Design & AnalysisRecruitment

Card Sorting Responses Distribution

Pilot Interviews Situations of Rationale Need

Decomposition of Rationale

Initial decomposition

Proposed decomposition

Quantitative Questions

Model of Rationale

Page 8: Decomposing the Rationale of Code Commits: The Software …people.cs.vt.edu/~khsaf//public/slides/fse19.pdf · 2019. 9. 12. · •Rationale in software development life-cycles •Software

Khadijah Al Safwan 8

Online SurveyDesign & AnalysisRecruitment

Public Channels Participant Referrals

Page 9: Decomposing the Rationale of Code Commits: The Software …people.cs.vt.edu/~khsaf//public/slides/fse19.pdf · 2019. 9. 12. · •Rationale in software development life-cycles •Software

Khadijah Al Safwan 9

Online SurveyDesign & AnalysisRecruitment

Pilot Surveys Quantitative Questions

NeedFindingRecording

Responses Distribution

Page 10: Decomposing the Rationale of Code Commits: The Software …people.cs.vt.edu/~khsaf//public/slides/fse19.pdf · 2019. 9. 12. · •Rationale in software development life-cycles •Software

Khadijah Al Safwan

Results

10

One-to-One Interview

Model of Rationale

Online survey

Experience with Rationale

Page 11: Decomposing the Rationale of Code Commits: The Software …people.cs.vt.edu/~khsaf//public/slides/fse19.pdf · 2019. 9. 12. · •Rationale in software development life-cycles •Software

Khadijah Al Safwan

GoalNeed

BenefitsConstraintsAlternatives

Selected AlternativesDependencyCommitter

TimeLocation

ModificationsExplanation of Modifications

ValidationMaturity Stage

Side Effects11

Model of Rationale for Code Commits

Why the code is this way?

Page 12: Decomposing the Rationale of Code Commits: The Software …people.cs.vt.edu/~khsaf//public/slides/fse19.pdf · 2019. 9. 12. · •Rationale in software development life-cycles •Software

Khadijah Al Safwan 12

Experience with Rationale

(Frequency of Need)

Need Finding Recording

ModificationsGoal

LocationCommitter

TimeNeed

Explanation of ModificationsDependency

BenefitsMaturity Stage

ConstraintsValidation

Selected AlternativesSide EffectsAlternatives

Page 13: Decomposing the Rationale of Code Commits: The Software …people.cs.vt.edu/~khsaf//public/slides/fse19.pdf · 2019. 9. 12. · •Rationale in software development life-cycles •Software

Khadijah Al Safwan 13

Experience with Rationale

(Difficulty of Finding)

Need Finding Recording(Frequency of Need)

ModificationsGoal

LocationCommitter

TimeNeed

Explanation of ModificationsDependency

BenefitsMaturity Stage

ConstraintsValidation

Selected AlternativesSide EffectsAlternatives

AlternativesSide EffectsConstraints

DependencySelected Alternatives

BenefitsValidation

Maturity StageExplanation of Modifications

NeedTimeGoal

LocationModifications

Committer

Page 14: Decomposing the Rationale of Code Commits: The Software …people.cs.vt.edu/~khsaf//public/slides/fse19.pdf · 2019. 9. 12. · •Rationale in software development life-cycles •Software

Khadijah Al Safwan 14

Experience with Rationale

(Frequency of Finding)

Need Finding Recording(Frequency of Need)

ModificationsGoal

LocationCommitter

TimeNeed

Explanation of ModificationsDependency

BenefitsMaturity Stage

ConstraintsValidation

Selected AlternativesSide EffectsAlternatives

CommitterModifications

LocationGoalTimeNeed

Maturity StageExplanation of Modifications

BenefitsDependency

ValidationSelected Alternatives

ConstraintsSide EffectsAlternatives

Page 15: Decomposing the Rationale of Code Commits: The Software …people.cs.vt.edu/~khsaf//public/slides/fse19.pdf · 2019. 9. 12. · •Rationale in software development life-cycles •Software

Khadijah Al Safwan 15

Experience with Rationale

(Frequency of Finding) (Frequency of Recording)

Need Finding Recording(Frequency of Need)

ModificationsGoal

LocationCommitter

TimeNeed

Explanation of ModificationsDependency

BenefitsMaturity Stage

ConstraintsValidation

Selected AlternativesSide EffectsAlternatives

CommitterModifications

LocationGoalTimeNeed

Maturity StageExplanation of Modifications

BenefitsDependency

ValidationSelected Alternatives

ConstraintsSide EffectsAlternatives

GoalCommitter

LocationModifications

TimeNeed

Explanation of ModificationsDependencySide EffectsValidationBenefits

Maturity StageSelected Alternatives

ConstraintsAlternatives

Page 16: Decomposing the Rationale of Code Commits: The Software …people.cs.vt.edu/~khsaf//public/slides/fse19.pdf · 2019. 9. 12. · •Rationale in software development life-cycles •Software

Khadijah Al Safwan 16

Experiences Comparison

(Frequency of Finding)(Frequency of Need) (Frequency of Recording)

Need Finding Recording

ModificationsGoal

LocationCommitter

TimeNeed

Explanation of ModificationsDependency

BenefitsMaturity Stage

ConstraintsValidation

Selected AlternativesSide EffectsAlternatives

CommitterModifications

LocationGoalTimeNeed

Maturity StageExplanation of Modifications

BenefitsDependency

ValidationSelected Alternatives

ConstraintsSide EffectsAlternatives

GoalCommitter

LocationModifications

TimeNeed

Explanation of ModificationsDependencySide EffectsValidationBenefits

Maturity StageSelected Alternatives

ConstraintsAlternatives

Page 17: Decomposing the Rationale of Code Commits: The Software …people.cs.vt.edu/~khsaf//public/slides/fse19.pdf · 2019. 9. 12. · •Rationale in software development life-cycles •Software

Khadijah Al Safwan 17

Experiences Comparison

�"����������

����

���"������(��"���!

��"� ��"�$�!

�����"�����"� ��"�$�

������"���

����("!

������)��"!

�����""�

�"# �"'��"���

����

���!" ���"!

���������'

�&�����"����������(��"���!

����%"���!�� '��

#�"����"���!�� '��

#�"����"���!��

���"�

#�"����"���!��

%���

#�"����"���!

�� ���'

� ��#���'��������

����!"��$�

� ��'

����"���!

��"��

����!"��%�'!

� ��

#���

'�����

����

��Need Finding Recording

Most components only sometimes found even when they are needed multiple times per month

Page 18: Decomposing the Rationale of Code Commits: The Software …people.cs.vt.edu/~khsaf//public/slides/fse19.pdf · 2019. 9. 12. · •Rationale in software development life-cycles •Software

Khadijah Al Safwan 18

Experiences Comparison

�"������

����

����

���"���

���(��"���!

��"� ��"�$�!

�����"�����"� ��"�$�

������"���

����("!

������)��"!

�����""�

�"# �"'��"���

����

���!" ���"!

���������'

�&�����"����������(��"���!

����%"���!�� '��

#�"����"���!�� '��

#�"����"���!��

���"�

#�"����"���!��

%���

#�"����"���!

�� ���'

� ��#���'��������

����!"��$�

� ��'

����"���!

��"��

����!"��%�'!

� ��

#���

'����

���

����

Need Finding Recording

Many components are not frequently recorded even if they are needed multiple times per month

Page 19: Decomposing the Rationale of Code Commits: The Software …people.cs.vt.edu/~khsaf//public/slides/fse19.pdf · 2019. 9. 12. · •Rationale in software development life-cycles •Software

Khadijah Al Safwan 19

Experiences Comparison

� ������

����

����

��� ���

���&�� ����

�� ���� �"��

����� ����� ���� �"�

������ ���

����& �������'�� �

����� ��

� !�� %�� ���

����

���� ���� �

���������%�$����� ����������&�� ����

����� ��"��

����%���� ����

�� �� ����� ��#�%�

����!���%�����������

����� ��"��

����%

���� ����

�� ��

����� ��#�%�

����

!���

%��

�� ��

����

��Need Finding Recording

Some components are rarely recorded and sometimes found, but they are the most difficult to find

Page 20: Decomposing the Rationale of Code Commits: The Software …people.cs.vt.edu/~khsaf//public/slides/fse19.pdf · 2019. 9. 12. · •Rationale in software development life-cycles •Software

Khadijah Al Safwan

Implications and Future Work

20

Educators

Practitioners

Researchers & Tool Builders

What’s next …

Empirical studies

Page 21: Decomposing the Rationale of Code Commits: The Software …people.cs.vt.edu/~khsaf//public/slides/fse19.pdf · 2019. 9. 12. · •Rationale in software development life-cycles •Software

Khadijah Al Safwan

GoalNeed

BenefitsConstraintsAlternatives

Selected AlternativesDependencyCommitter

TimeLocation

ModificationsExplanation of Modifications

ValidationMaturity Stage

Side Effects

Conclusion

21

Solution ContributionProblem

Why the code is this way?

Interview

Model of Rationale

survey

Experience with Rationale

Need Finding RecordingImplications

Educators

Researchers & Tool Builders

Practitioners