Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Decomposing the Rationale of Code Commits: The Software Developers’ Perspective
Khadijah Al Safwan Francisco Servant
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]?
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]?
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
Khadijah Al Safwan
Research Method
5
One-to-One Interview
Model of Rationale
Online survey
Experience with Rationale
Khadijah Al Safwan 6
One-to-One InterviewDesign & AnalysisRecruitment
Public Channels Participant Referrals Screening Questionnaire
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
Khadijah Al Safwan 8
Online SurveyDesign & AnalysisRecruitment
Public Channels Participant Referrals
Khadijah Al Safwan 9
Online SurveyDesign & AnalysisRecruitment
Pilot Surveys Quantitative Questions
NeedFindingRecording
Responses Distribution
Khadijah Al Safwan
Results
10
One-to-One Interview
Model of Rationale
Online survey
Experience with Rationale
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?
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
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
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
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
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
Khadijah Al Safwan 17
Experiences Comparison
�"����������
����
���"������(��"���!
��"� ��"�$�!
�����"�����"� ��"�$�
������"���
����("!
������)��"!
�����""�
�"# �"'��"���
����
���!" ���"!
���������'
�&�����"����������(��"���!
����%"���!�� '��
#�"����"���!�� '��
#�"����"���!��
���"�
#�"����"���!��
%���
#�"����"���!
�� ���'
� ��#���'��������
����!"��$�
� ��'
����"���!
��"��
����!"��%�'!
� ��
#���
'�����
����
��Need Finding Recording
Most components only sometimes found even when they are needed multiple times per month
Khadijah Al Safwan 18
Experiences Comparison
�"������
����
����
���"���
���(��"���!
��"� ��"�$�!
�����"�����"� ��"�$�
������"���
����("!
������)��"!
�����""�
�"# �"'��"���
����
���!" ���"!
���������'
�&�����"����������(��"���!
����%"���!�� '��
#�"����"���!�� '��
#�"����"���!��
���"�
#�"����"���!��
%���
#�"����"���!
�� ���'
� ��#���'��������
����!"��$�
� ��'
����"���!
��"��
����!"��%�'!
� ��
#���
'����
���
����
Need Finding Recording
Many components are not frequently recorded even if they are needed multiple times per month
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
Khadijah Al Safwan
Implications and Future Work
20
Educators
Practitioners
Researchers & Tool Builders
What’s next …
Empirical studies
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