SlideShare a Scribd company logo
The Impact of Task Granularity on
Co-evolution Analyses
Yasutaka
Kamei
Keisuke

Miura
Shane

McIntosh
Naoyasu

Ubayashi
Ahmed E.

Hassan
Software evolution aims to recover 

knowledge about development
2
Repositories Knowledge
GerritGit GitHub
RHSA Mylyn
Co-evolution of production &
test code
3
Growth history view of ArgoUML [1]
[1] A. Zaidman, B. Van Rompaey, S. Demeyer, and A. Van Deursen. Mining software repositories to study co-evolution of production & test code. 

In Proc. Int’l Conf. on Software Testing, Verification, and Validation (ICST’08), pages 220–229, 2008.
There are several levels of
granularity
4
There are several levels of
granularity
4
Commits
There are several levels of
granularity
4
Pull 

Requests
Merge
Commits
There are several levels of
granularity
4
Pull 

Requests
Merge v2.0
ReleasesCommits
Some issues may require several
commits
5
Fix #1000
A
Test

A
Fix #1100
B
Some issues may require several
commits
5
Fix #1000
A
Test

A
Fix #1100
B
Some issues may require several
commits
5
Fix #1000
A
Test

A
Fix #1100
Test

B
1 day 

later
Fix #1100
B
Some issues may require several
commits
5
Fix #1000
A
Test

ACommit-level analysis would miss the 

co-change relationship between them
Fix #1100
Test

B
1 day 

later
Work items can be used to study
software evolution
6
Jira
#1000 #1100
Jira
#1000 #1100
Work items can be used to study
software evolution
7
Git
Jira
#1000 #1100
Fix #1000
A
Test

A
B
Test

B
Fix #1100Fix #1100
Work items can be used to study
software evolution
8
Git
Jira
#1000 #1100
Fix #1000
A
Test

A
B
Test

B
Fix #1100Fix #1100
Work items can be used to study
software evolution
9
Git
Jira
#1000 #1100
Fix #1000
A
Test

A
B
Test

B
Fix #1100Fix #1100
How does the work item
granularity impact co-
evolution analyses?
Work items can be used to study
software evolution
10
Studied systems
11
Studied systems
11
Jira
Studied systems
11
Jira
119 systems
12
System size ITS usage
Two important criteria that needed to
be satisfied to qualify for our analysis
12
System size ITS usage
Two important criteria that needed to
be satisfied to qualify for our analysis
Jira
13
System size ITS usage
100
75
50
25
0 10,000 20,000
# of commits
Two important criteria that needed to
be satisfied to qualify for our analysis
13
System size ITS usage
100
75
50
25
0 10,000 20,000
# of commits
Two important criteria that needed to
be satisfied to qualify for our analysis
Jira
Studied systems
14
15
How often are work items
composed of several commits?
15
Git
Jira
#1000
Bug Fix
#1100
BA
Fix #1000
#1100
C
#1200
Fix a Bug
#1200
How often are work items
composed of several commits?
16
Median of 29% of work items
consist of two or more commits
16
Median of 29% of work items
consist of two or more commits
Granularity may have a
considerable impact on
co-evolution analyses
17
The impact of the work item
granularity
File
Spread
Time
Spread
Developer
Spread
17
The impact of the work item
granularity
File
Spread
Time
Spread
Developer
Spread
18
How many files are changed by
the commits of work items?
Git
#1000
A
Test

A
A2 A3
Fix #1000 Fix #1000 Fix #1000
18
How many files are changed by
the commits of work items?
Git
#1000
A
Test

A
A2 A3
Fix #1000 Fix #1000 Fix #1000
19
OpenJPA #1763:
An example of file spread
19
OpenJPA #1763:
An example of file spread
19
OpenJPA #1763:
An example of file spread
19
OpenJPA #1763:
An example of file spread
19
OpenJPA #1763:
An example of file spread
60% (= 3 / 5)
20
First-commit analysis would overlook
24% of the co-changed files (median)
21
QPID-4575: adds support for
Visual Studio 2012
Git
1st commit 5th commit
.cpp .h .cpproj
21
QPID-4575: adds support for
Visual Studio 2012
Git
1st commit 5th commit
.cpp .h
This co-change activity of
production code and build
system would be missed
.cpproj
22
The impact of the work item
granularity
File
Spread
Time
Spread
Developer
Spread
24% of the co-
changed files
are overlooked
22
The impact of the work item
granularity
File
Spread
Time
Spread
Developer
Spread
24% of the co-
changed files
are overlooked
How much time elapses
between the commits
of work items?
Sliding time window technique
A common setting in software evolution
studies
23
Same commit message
Same developer
Similar time (300 secs)
Sliding time window technique
A common setting in software evolution
studies
23
A
Test

A
Fix #1000 Fix #1000
Git
Same commit message
Same developer
Similar time (300 secs)
Sliding time window technique
A common setting in software evolution
studies
23
A
Test

A
Fix #1000 Fix #1000
Git
< 300 secs
Same commit message
Same developer
Similar time (300 secs)
An example of time spread
24
R1 R2 R3 R4
Jira
#1000
An example of time spread
24
R1 R2 R3 R4
250 secs 200 secs 400 secs
Jira
#1000
An example of time spread
24
R1 R2 R3 R4
250 secs 200 secs 400 secs
33% (= 1 / 3)
Jira
#1000
25
48%-97% of related commits cannot
be grouped using the sliding window
ACCUMULO-1890
Clean up the test
to avoid spinning
up a MAC
26
ACCUMULO-1890: recovers from a
failure due to limited resources
ACCUMULO-1890
Clean up the test
to avoid spinning
up a MAC
26
11 minutes later
ACCUMULO-1890: recovers from a
failure due to limited resources
ACCUMULO-1890
Clean up the test
to avoid spinning
up a MAC
26
ACCUMULO-1890
Forgot to re-add
changes before
commit
11 minutes later
ACCUMULO-1890: recovers from a
failure due to limited resources
27
The impact of the work item
granularity
File
Spread
Time
Spread
Developer
Spread
24% of the co-
changed files
are overlooked
83% of related
commits cannot
be grouped
27
The impact of the work item
granularity
File
Spread
Time
Spread
Developer
Spread
24% of the co-
changed files
are overlooked
83% of related
commits cannot
be grouped
How many developers
are involved across
revisions of a work item?
Sliding time window technique
A common setting in software evolution
studies
28
A
Test

A
Fix #1000 Fix #1000
Git
< 300 secs
Same commit message
Same developer
Similar time (300 secs)
29
How many developers are involved
across revisions of a work item?
29
How many developers are involved
across revisions of a work item?
Jira
#1000
29
How many developers are involved
across revisions of a work item?
Jira
#1000
Git
Bug Fix
#1000
BA
Fix #1000
C
Fix a Bug
#1000
29
How many developers are involved
across revisions of a work item?
Jira
#1000
Git
Bug Fix
#1000
BA
Fix #1000
C
Fix a Bug
#1000
30
25% of work items involve
multiple developers
31
The impact of the work item
granularity
File
Spread
Time
Spread
Developer
Spread
24% of the co-
changed files
are overlooked
83% of related
commits cannot
be grouped
25% of work
items involve
multiple
developers
32
[2]Q. Xuan and V. Filkov. Building it together: Synchronous development in OSS. In Proc. Int’l Conf. on Software Engineering (ICSE’14), pages 222–233, 2014.
A set of commits where one file is modified
by multiple developers within a time window
Synchronous development [2]
32
[2]Q. Xuan and V. Filkov. Building it together: Synchronous development in OSS. In Proc. Int’l Conf. on Software Engineering (ICSE’14), pages 222–233, 2014.
A set of commits where one file is modified
by multiple developers within a time window
A
Synchronous development [2]
33
[2]Q. Xuan and V. Filkov. Building it together: Synchronous development in OSS. In Proc. Int’l Conf. on Software Engineering (ICSE’14), pages 222–233, 2014.
A set of commits where different files are
modified by multiple developers under the
same work item
A
Test

A
#1000
Collaborative development
34
Collaborative development
[2]Q. Xuan and V. Filkov. Building it together: Synchronous development in OSS. In Proc. Int’l Conf. on Software Engineering (ICSE’14), pages 222–233, 2014.
A set of commits where different files are
modified by multiple developers under the
same work item
A
Test

A
#1000
We investigate collaborative
work items that cannot be
detected as synchronous ones
This type of collaboration is not rare
27%-83% of collaborative work items
involve developers modifying different files
35
Conclusion
36
Median of 29% of work items
consist of two or more commits
Granularity may have a
considerable impact on
co-evolution analyses
Median of 29% of work items
consist of two or more commits
Granularity may have a
considerable impact on
co-evolution analyses
Studied systems
Median of 29% of work items
consist of two or more commits
Granularity may have a
considerable impact on
co-evolution analyses
Studied systems
The impact of the work item
granularity
File
Spread
Time
Spread
Developer
Spread
24% of the co-
changed files
are overlooked
83% of related
commits cannot
be grouped
25% of work
items involve
multiple
developers
Median of 29% of work items
consist of two or more commits
Granularity may have a
considerable impact on
co-evolution analyses
Studied systems
The impact of the work item
granularity
File
Spread
Time
Spread
Developer
Spread
24% of the co-
changed files
are overlooked
83% of related
commits cannot
be grouped
25% of work
items involve
multiple
developers
Given the impact that work item grouping,
we recommend that future software
evolution studies will be performed at the
work item level.
39
Back up slides
Work item aggregation
40
Git
AMBARI-15217.
Folder name spills
out of Upload file
window
Update ambari
docs for ambari
2.2.0 release
/PROJECT_NAME.

?(d+)/i
/PROJECT_NAME.

?(d+)[.-]
d/i

More Related Content

Similar to The Impact of Task Granularity on Co-evolution Analyses

Keynote VST2020 (Workshop on Validation, Analysis and Evolution of Software ...
Keynote VST2020 (Workshop on  Validation, Analysis and Evolution of Software ...Keynote VST2020 (Workshop on  Validation, Analysis and Evolution of Software ...
Keynote VST2020 (Workshop on Validation, Analysis and Evolution of Software ...
University of Antwerp
 
Improving Code Quality In Medical Software Through Code Reviews - Vincit Teat...
Improving Code Quality In Medical Software Through Code Reviews - Vincit Teat...Improving Code Quality In Medical Software Through Code Reviews - Vincit Teat...
Improving Code Quality In Medical Software Through Code Reviews - Vincit Teat...
VincitOy
 
Is software engineering research addressing software engineering problems?
Is software engineering research addressing software engineering problems?Is software engineering research addressing software engineering problems?
Is software engineering research addressing software engineering problems?
Gail Murphy
 
Revisiting Assert Use in GitHub Projects
Revisiting Assert Use in GitHub ProjectsRevisiting Assert Use in GitHub Projects
Revisiting Assert Use in GitHub Projects
Pavneet Singh Kochhar
 
DevOps and Build Automation
DevOps and Build AutomationDevOps and Build Automation
DevOps and Build Automation
Heiswayi Nrird
 
How much time it takes for my feature to arrive?
How much time it takes for my feature to arrive?How much time it takes for my feature to arrive?
How much time it takes for my feature to arrive?
Daniel Alencar
 
Icsme14danieletal 150722141344-lva1-app6891
Icsme14danieletal 150722141344-lva1-app6891Icsme14danieletal 150722141344-lva1-app6891
Icsme14danieletal 150722141344-lva1-app6891SAIL_QU
 
Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...
Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...
Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...
Pavneet Singh Kochhar
 
Wait for it: identifying “On-Hold” self-admitted technical debt
Wait for it: identifying “On-Hold” self-admitted technical debtWait for it: identifying “On-Hold” self-admitted technical debt
Wait for it: identifying “On-Hold” self-admitted technical debt
RungrojMaipradit1
 
Continuous Deployment at Etsy — TimesOpen NYC
Continuous Deployment at Etsy — TimesOpen NYCContinuous Deployment at Etsy — TimesOpen NYC
Continuous Deployment at Etsy — TimesOpen NYC
Mike Brittain
 
Sattose 2020 presentation
Sattose 2020 presentationSattose 2020 presentation
Sattose 2020 presentation
Céline Deknop
 
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)Measuring Technical Lag in Software Deployments (CHAOSScon 2020)
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)
Tom Mens
 
Ensuring OpenStack Version up Compatibility for CloudOpen Japan 2013-05-31
Ensuring OpenStack Version up Compatibility for CloudOpen Japan 2013-05-31Ensuring OpenStack Version up Compatibility for CloudOpen Japan 2013-05-31
Ensuring OpenStack Version up Compatibility for CloudOpen Japan 2013-05-31
Masayuki Igawa
 
L'impatto della sicurezza su DevOps
L'impatto della sicurezza su DevOpsL'impatto della sicurezza su DevOps
L'impatto della sicurezza su DevOps
Giulio Vian
 
3784_Streamlining_the_development_process_with_feature_flighting_and_Azure_cl...
3784_Streamlining_the_development_process_with_feature_flighting_and_Azure_cl...3784_Streamlining_the_development_process_with_feature_flighting_and_Azure_cl...
3784_Streamlining_the_development_process_with_feature_flighting_and_Azure_cl...Crystal Thomas
 
Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates
Liran Levy
 
Of Changes and Their History
Of Changes and Their HistoryOf Changes and Their History
Of Changes and Their History
University of Zurich
 
Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)
Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)
Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)
Christian Catalan
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
Amazon Web Services
 
DevOps explained
DevOps explainedDevOps explained
DevOps explained
Jérôme Kehrli
 

Similar to The Impact of Task Granularity on Co-evolution Analyses (20)

Keynote VST2020 (Workshop on Validation, Analysis and Evolution of Software ...
Keynote VST2020 (Workshop on  Validation, Analysis and Evolution of Software ...Keynote VST2020 (Workshop on  Validation, Analysis and Evolution of Software ...
Keynote VST2020 (Workshop on Validation, Analysis and Evolution of Software ...
 
Improving Code Quality In Medical Software Through Code Reviews - Vincit Teat...
Improving Code Quality In Medical Software Through Code Reviews - Vincit Teat...Improving Code Quality In Medical Software Through Code Reviews - Vincit Teat...
Improving Code Quality In Medical Software Through Code Reviews - Vincit Teat...
 
Is software engineering research addressing software engineering problems?
Is software engineering research addressing software engineering problems?Is software engineering research addressing software engineering problems?
Is software engineering research addressing software engineering problems?
 
Revisiting Assert Use in GitHub Projects
Revisiting Assert Use in GitHub ProjectsRevisiting Assert Use in GitHub Projects
Revisiting Assert Use in GitHub Projects
 
DevOps and Build Automation
DevOps and Build AutomationDevOps and Build Automation
DevOps and Build Automation
 
How much time it takes for my feature to arrive?
How much time it takes for my feature to arrive?How much time it takes for my feature to arrive?
How much time it takes for my feature to arrive?
 
Icsme14danieletal 150722141344-lva1-app6891
Icsme14danieletal 150722141344-lva1-app6891Icsme14danieletal 150722141344-lva1-app6891
Icsme14danieletal 150722141344-lva1-app6891
 
Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...
Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...
Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...
 
Wait for it: identifying “On-Hold” self-admitted technical debt
Wait for it: identifying “On-Hold” self-admitted technical debtWait for it: identifying “On-Hold” self-admitted technical debt
Wait for it: identifying “On-Hold” self-admitted technical debt
 
Continuous Deployment at Etsy — TimesOpen NYC
Continuous Deployment at Etsy — TimesOpen NYCContinuous Deployment at Etsy — TimesOpen NYC
Continuous Deployment at Etsy — TimesOpen NYC
 
Sattose 2020 presentation
Sattose 2020 presentationSattose 2020 presentation
Sattose 2020 presentation
 
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)Measuring Technical Lag in Software Deployments (CHAOSScon 2020)
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)
 
Ensuring OpenStack Version up Compatibility for CloudOpen Japan 2013-05-31
Ensuring OpenStack Version up Compatibility for CloudOpen Japan 2013-05-31Ensuring OpenStack Version up Compatibility for CloudOpen Japan 2013-05-31
Ensuring OpenStack Version up Compatibility for CloudOpen Japan 2013-05-31
 
L'impatto della sicurezza su DevOps
L'impatto della sicurezza su DevOpsL'impatto della sicurezza su DevOps
L'impatto della sicurezza su DevOps
 
3784_Streamlining_the_development_process_with_feature_flighting_and_Azure_cl...
3784_Streamlining_the_development_process_with_feature_flighting_and_Azure_cl...3784_Streamlining_the_development_process_with_feature_flighting_and_Azure_cl...
3784_Streamlining_the_development_process_with_feature_flighting_and_Azure_cl...
 
Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates
 
Of Changes and Their History
Of Changes and Their HistoryOf Changes and Their History
Of Changes and Their History
 
Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)
Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)
Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 
DevOps explained
DevOps explainedDevOps explained
DevOps explained
 

More from SAIL_QU

Studying the Integration Practices and the Evolution of Ad Libraries in the G...
Studying the Integration Practices and the Evolution of Ad Libraries in the G...Studying the Integration Practices and the Evolution of Ad Libraries in the G...
Studying the Integration Practices and the Evolution of Ad Libraries in the G...
SAIL_QU
 
Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...
SAIL_QU
 
Improving the testing efficiency of selenium-based load tests
Improving the testing efficiency of selenium-based load testsImproving the testing efficiency of selenium-based load tests
Improving the testing efficiency of selenium-based load tests
SAIL_QU
 
Studying User-Developer Interactions Through the Distribution and Reviewing M...
Studying User-Developer Interactions Through the Distribution and Reviewing M...Studying User-Developer Interactions Through the Distribution and Reviewing M...
Studying User-Developer Interactions Through the Distribution and Reviewing M...
SAIL_QU
 
Studying online distribution platforms for games through the mining of data f...
Studying online distribution platforms for games through the mining of data f...Studying online distribution platforms for games through the mining of data f...
Studying online distribution platforms for games through the mining of data f...
SAIL_QU
 
Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...
Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...
Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...
SAIL_QU
 
Investigating the Challenges in Selenium Usage and Improving the Testing Effi...
Investigating the Challenges in Selenium Usage and Improving the Testing Effi...Investigating the Challenges in Selenium Usage and Improving the Testing Effi...
Investigating the Challenges in Selenium Usage and Improving the Testing Effi...
SAIL_QU
 
Mining Development Knowledge to Understand and Support Software Logging Pract...
Mining Development Knowledge to Understand and Support Software Logging Pract...Mining Development Knowledge to Understand and Support Software Logging Pract...
Mining Development Knowledge to Understand and Support Software Logging Pract...
SAIL_QU
 
Which Log Level Should Developers Choose For a New Logging Statement?
Which Log Level Should Developers Choose For a New Logging Statement?Which Log Level Should Developers Choose For a New Logging Statement?
Which Log Level Should Developers Choose For a New Logging Statement?
SAIL_QU
 
Towards Just-in-Time Suggestions for Log Changes
Towards Just-in-Time Suggestions for Log ChangesTowards Just-in-Time Suggestions for Log Changes
Towards Just-in-Time Suggestions for Log Changes
SAIL_QU
 
A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...
A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...
A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...
SAIL_QU
 
How are Discussions Associated with Bug Reworking? An Empirical Study on Open...
How are Discussions Associated with Bug Reworking? An Empirical Study on Open...How are Discussions Associated with Bug Reworking? An Empirical Study on Open...
How are Discussions Associated with Bug Reworking? An Empirical Study on Open...
SAIL_QU
 
A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...
A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...
A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...
SAIL_QU
 
A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...
A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...
A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...
SAIL_QU
 
Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...
SAIL_QU
 
What Do Programmers Know about Software Energy Consumption?
What Do Programmers Know about Software Energy Consumption?What Do Programmers Know about Software Energy Consumption?
What Do Programmers Know about Software Energy Consumption?
SAIL_QU
 
Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...
Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...
Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...
SAIL_QU
 
Revisiting the Experimental Design Choices for Approaches for the Automated R...
Revisiting the Experimental Design Choices for Approaches for the Automated R...Revisiting the Experimental Design Choices for Approaches for the Automated R...
Revisiting the Experimental Design Choices for Approaches for the Automated R...
SAIL_QU
 
Measuring Program Comprehension: A Large-Scale Field Study with Professionals
Measuring Program Comprehension: A Large-Scale Field Study with ProfessionalsMeasuring Program Comprehension: A Large-Scale Field Study with Professionals
Measuring Program Comprehension: A Large-Scale Field Study with Professionals
SAIL_QU
 
On the Unreliability of Bug Severity Data
On the Unreliability of Bug Severity DataOn the Unreliability of Bug Severity Data
On the Unreliability of Bug Severity Data
SAIL_QU
 

More from SAIL_QU (20)

Studying the Integration Practices and the Evolution of Ad Libraries in the G...
Studying the Integration Practices and the Evolution of Ad Libraries in the G...Studying the Integration Practices and the Evolution of Ad Libraries in the G...
Studying the Integration Practices and the Evolution of Ad Libraries in the G...
 
Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...
 
Improving the testing efficiency of selenium-based load tests
Improving the testing efficiency of selenium-based load testsImproving the testing efficiency of selenium-based load tests
Improving the testing efficiency of selenium-based load tests
 
Studying User-Developer Interactions Through the Distribution and Reviewing M...
Studying User-Developer Interactions Through the Distribution and Reviewing M...Studying User-Developer Interactions Through the Distribution and Reviewing M...
Studying User-Developer Interactions Through the Distribution and Reviewing M...
 
Studying online distribution platforms for games through the mining of data f...
Studying online distribution platforms for games through the mining of data f...Studying online distribution platforms for games through the mining of data f...
Studying online distribution platforms for games through the mining of data f...
 
Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...
Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...
Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...
 
Investigating the Challenges in Selenium Usage and Improving the Testing Effi...
Investigating the Challenges in Selenium Usage and Improving the Testing Effi...Investigating the Challenges in Selenium Usage and Improving the Testing Effi...
Investigating the Challenges in Selenium Usage and Improving the Testing Effi...
 
Mining Development Knowledge to Understand and Support Software Logging Pract...
Mining Development Knowledge to Understand and Support Software Logging Pract...Mining Development Knowledge to Understand and Support Software Logging Pract...
Mining Development Knowledge to Understand and Support Software Logging Pract...
 
Which Log Level Should Developers Choose For a New Logging Statement?
Which Log Level Should Developers Choose For a New Logging Statement?Which Log Level Should Developers Choose For a New Logging Statement?
Which Log Level Should Developers Choose For a New Logging Statement?
 
Towards Just-in-Time Suggestions for Log Changes
Towards Just-in-Time Suggestions for Log ChangesTowards Just-in-Time Suggestions for Log Changes
Towards Just-in-Time Suggestions for Log Changes
 
A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...
A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...
A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...
 
How are Discussions Associated with Bug Reworking? An Empirical Study on Open...
How are Discussions Associated with Bug Reworking? An Empirical Study on Open...How are Discussions Associated with Bug Reworking? An Empirical Study on Open...
How are Discussions Associated with Bug Reworking? An Empirical Study on Open...
 
A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...
A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...
A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...
 
A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...
A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...
A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...
 
Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...
 
What Do Programmers Know about Software Energy Consumption?
What Do Programmers Know about Software Energy Consumption?What Do Programmers Know about Software Energy Consumption?
What Do Programmers Know about Software Energy Consumption?
 
Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...
Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...
Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...
 
Revisiting the Experimental Design Choices for Approaches for the Automated R...
Revisiting the Experimental Design Choices for Approaches for the Automated R...Revisiting the Experimental Design Choices for Approaches for the Automated R...
Revisiting the Experimental Design Choices for Approaches for the Automated R...
 
Measuring Program Comprehension: A Large-Scale Field Study with Professionals
Measuring Program Comprehension: A Large-Scale Field Study with ProfessionalsMeasuring Program Comprehension: A Large-Scale Field Study with Professionals
Measuring Program Comprehension: A Large-Scale Field Study with Professionals
 
On the Unreliability of Bug Severity Data
On the Unreliability of Bug Severity DataOn the Unreliability of Bug Severity Data
On the Unreliability of Bug Severity Data
 

Recently uploaded

OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 

Recently uploaded (20)

OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 

The Impact of Task Granularity on Co-evolution Analyses

  • 1. The Impact of Task Granularity on Co-evolution Analyses Yasutaka Kamei Keisuke
 Miura Shane
 McIntosh Naoyasu
 Ubayashi Ahmed E.
 Hassan
  • 2. Software evolution aims to recover 
 knowledge about development 2 Repositories Knowledge GerritGit GitHub RHSA Mylyn
  • 3. Co-evolution of production & test code 3 Growth history view of ArgoUML [1] [1] A. Zaidman, B. Van Rompaey, S. Demeyer, and A. Van Deursen. Mining software repositories to study co-evolution of production & test code. 
 In Proc. Int’l Conf. on Software Testing, Verification, and Validation (ICST’08), pages 220–229, 2008.
  • 4. There are several levels of granularity 4
  • 5. There are several levels of granularity 4 Commits
  • 6. There are several levels of granularity 4 Pull 
 Requests Merge Commits
  • 7. There are several levels of granularity 4 Pull 
 Requests Merge v2.0 ReleasesCommits
  • 8. Some issues may require several commits 5 Fix #1000 A Test
 A
  • 9. Fix #1100 B Some issues may require several commits 5 Fix #1000 A Test
 A
  • 10. Fix #1100 B Some issues may require several commits 5 Fix #1000 A Test
 A Fix #1100 Test
 B 1 day 
 later
  • 11. Fix #1100 B Some issues may require several commits 5 Fix #1000 A Test
 ACommit-level analysis would miss the 
 co-change relationship between them Fix #1100 Test
 B 1 day 
 later
  • 12. Work items can be used to study software evolution 6 Jira #1000 #1100
  • 13. Jira #1000 #1100 Work items can be used to study software evolution 7
  • 14. Git Jira #1000 #1100 Fix #1000 A Test
 A B Test
 B Fix #1100Fix #1100 Work items can be used to study software evolution 8
  • 15. Git Jira #1000 #1100 Fix #1000 A Test
 A B Test
 B Fix #1100Fix #1100 Work items can be used to study software evolution 9
  • 16. Git Jira #1000 #1100 Fix #1000 A Test
 A B Test
 B Fix #1100Fix #1100 How does the work item granularity impact co- evolution analyses? Work items can be used to study software evolution 10
  • 20. 12 System size ITS usage Two important criteria that needed to be satisfied to qualify for our analysis
  • 21. 12 System size ITS usage Two important criteria that needed to be satisfied to qualify for our analysis Jira
  • 22. 13 System size ITS usage 100 75 50 25 0 10,000 20,000 # of commits Two important criteria that needed to be satisfied to qualify for our analysis
  • 23. 13 System size ITS usage 100 75 50 25 0 10,000 20,000 # of commits Two important criteria that needed to be satisfied to qualify for our analysis Jira
  • 25. 15 How often are work items composed of several commits?
  • 26. 15 Git Jira #1000 Bug Fix #1100 BA Fix #1000 #1100 C #1200 Fix a Bug #1200 How often are work items composed of several commits?
  • 27. 16 Median of 29% of work items consist of two or more commits
  • 28. 16 Median of 29% of work items consist of two or more commits Granularity may have a considerable impact on co-evolution analyses
  • 29. 17 The impact of the work item granularity File Spread Time Spread Developer Spread
  • 30. 17 The impact of the work item granularity File Spread Time Spread Developer Spread
  • 31. 18 How many files are changed by the commits of work items? Git #1000 A Test
 A A2 A3 Fix #1000 Fix #1000 Fix #1000
  • 32. 18 How many files are changed by the commits of work items? Git #1000 A Test
 A A2 A3 Fix #1000 Fix #1000 Fix #1000
  • 33. 19 OpenJPA #1763: An example of file spread
  • 34. 19 OpenJPA #1763: An example of file spread
  • 35. 19 OpenJPA #1763: An example of file spread
  • 36. 19 OpenJPA #1763: An example of file spread
  • 37. 19 OpenJPA #1763: An example of file spread 60% (= 3 / 5)
  • 38. 20 First-commit analysis would overlook 24% of the co-changed files (median)
  • 39. 21 QPID-4575: adds support for Visual Studio 2012 Git 1st commit 5th commit .cpp .h .cpproj
  • 40. 21 QPID-4575: adds support for Visual Studio 2012 Git 1st commit 5th commit .cpp .h This co-change activity of production code and build system would be missed .cpproj
  • 41. 22 The impact of the work item granularity File Spread Time Spread Developer Spread 24% of the co- changed files are overlooked
  • 42. 22 The impact of the work item granularity File Spread Time Spread Developer Spread 24% of the co- changed files are overlooked How much time elapses between the commits of work items?
  • 43. Sliding time window technique A common setting in software evolution studies 23 Same commit message Same developer Similar time (300 secs)
  • 44. Sliding time window technique A common setting in software evolution studies 23 A Test
 A Fix #1000 Fix #1000 Git Same commit message Same developer Similar time (300 secs)
  • 45. Sliding time window technique A common setting in software evolution studies 23 A Test
 A Fix #1000 Fix #1000 Git < 300 secs Same commit message Same developer Similar time (300 secs)
  • 46. An example of time spread 24 R1 R2 R3 R4 Jira #1000
  • 47. An example of time spread 24 R1 R2 R3 R4 250 secs 200 secs 400 secs Jira #1000
  • 48. An example of time spread 24 R1 R2 R3 R4 250 secs 200 secs 400 secs 33% (= 1 / 3) Jira #1000
  • 49. 25 48%-97% of related commits cannot be grouped using the sliding window
  • 50. ACCUMULO-1890 Clean up the test to avoid spinning up a MAC 26 ACCUMULO-1890: recovers from a failure due to limited resources
  • 51. ACCUMULO-1890 Clean up the test to avoid spinning up a MAC 26 11 minutes later ACCUMULO-1890: recovers from a failure due to limited resources
  • 52. ACCUMULO-1890 Clean up the test to avoid spinning up a MAC 26 ACCUMULO-1890 Forgot to re-add changes before commit 11 minutes later ACCUMULO-1890: recovers from a failure due to limited resources
  • 53. 27 The impact of the work item granularity File Spread Time Spread Developer Spread 24% of the co- changed files are overlooked 83% of related commits cannot be grouped
  • 54. 27 The impact of the work item granularity File Spread Time Spread Developer Spread 24% of the co- changed files are overlooked 83% of related commits cannot be grouped How many developers are involved across revisions of a work item?
  • 55. Sliding time window technique A common setting in software evolution studies 28 A Test
 A Fix #1000 Fix #1000 Git < 300 secs Same commit message Same developer Similar time (300 secs)
  • 56. 29 How many developers are involved across revisions of a work item?
  • 57. 29 How many developers are involved across revisions of a work item? Jira #1000
  • 58. 29 How many developers are involved across revisions of a work item? Jira #1000 Git Bug Fix #1000 BA Fix #1000 C Fix a Bug #1000
  • 59. 29 How many developers are involved across revisions of a work item? Jira #1000 Git Bug Fix #1000 BA Fix #1000 C Fix a Bug #1000
  • 60. 30 25% of work items involve multiple developers
  • 61. 31 The impact of the work item granularity File Spread Time Spread Developer Spread 24% of the co- changed files are overlooked 83% of related commits cannot be grouped 25% of work items involve multiple developers
  • 62. 32 [2]Q. Xuan and V. Filkov. Building it together: Synchronous development in OSS. In Proc. Int’l Conf. on Software Engineering (ICSE’14), pages 222–233, 2014. A set of commits where one file is modified by multiple developers within a time window Synchronous development [2]
  • 63. 32 [2]Q. Xuan and V. Filkov. Building it together: Synchronous development in OSS. In Proc. Int’l Conf. on Software Engineering (ICSE’14), pages 222–233, 2014. A set of commits where one file is modified by multiple developers within a time window A Synchronous development [2]
  • 64. 33 [2]Q. Xuan and V. Filkov. Building it together: Synchronous development in OSS. In Proc. Int’l Conf. on Software Engineering (ICSE’14), pages 222–233, 2014. A set of commits where different files are modified by multiple developers under the same work item A Test
 A #1000 Collaborative development
  • 65. 34 Collaborative development [2]Q. Xuan and V. Filkov. Building it together: Synchronous development in OSS. In Proc. Int’l Conf. on Software Engineering (ICSE’14), pages 222–233, 2014. A set of commits where different files are modified by multiple developers under the same work item A Test
 A #1000 We investigate collaborative work items that cannot be detected as synchronous ones
  • 66. This type of collaboration is not rare 27%-83% of collaborative work items involve developers modifying different files 35
  • 68.
  • 69. Median of 29% of work items consist of two or more commits Granularity may have a considerable impact on co-evolution analyses
  • 70. Median of 29% of work items consist of two or more commits Granularity may have a considerable impact on co-evolution analyses Studied systems
  • 71. Median of 29% of work items consist of two or more commits Granularity may have a considerable impact on co-evolution analyses Studied systems The impact of the work item granularity File Spread Time Spread Developer Spread 24% of the co- changed files are overlooked 83% of related commits cannot be grouped 25% of work items involve multiple developers
  • 72. Median of 29% of work items consist of two or more commits Granularity may have a considerable impact on co-evolution analyses Studied systems The impact of the work item granularity File Spread Time Spread Developer Spread 24% of the co- changed files are overlooked 83% of related commits cannot be grouped 25% of work items involve multiple developers Given the impact that work item grouping, we recommend that future software evolution studies will be performed at the work item level.
  • 74. Work item aggregation 40 Git AMBARI-15217. Folder name spills out of Upload file window Update ambari docs for ambari 2.2.0 release /PROJECT_NAME.
 ?(d+)/i /PROJECT_NAME.
 ?(d+)[.-] d/i