SlideShare a Scribd company logo
1 of 28
Download to read offline
JEONBUK NATIONAL
UNIVERSITY
SYNTHESIZING KNOWLEDGE
FROM SOFTWARE DEVELOPMENT
ARTIFACTS
Jeongwhan Choi
jeongwhan.choi@jbnu.ac.kr

AI & SE Lab
SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS
JEONBUK NATIONAL
UNIVERSITY
Jeongwhan Choi 2
Outline
1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review
4.Lifecycle Analysis 5. Other Applications 6.Conclusion
SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS
JEONBUK NATIONAL
UNIVERSITY
Jeongwhan Choi 3
Problem Statement
1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review
4.Lifecycle Analysis 5. Other Applications 6.Conclusion
The data is out there. The problem is making practical use of it.
to process 

the myriad development artifacts
challenging
a graph-based representation of specific properties within a development
artifact and how they change over time
Lifecycle Model
• Lifecycle models can be applied to any data that changes its state, or
is annotated with new data, over time.
SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS
JEONBUK NATIONAL
UNIVERSITY
Jeongwhan Choi 4
Problem Statement - Examples
1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review
4.Lifecycle Analysis 5. Other Applications 6.Conclusion
• For example, “issues” in issue-tracking systems often start their lives as OPEN,
but are eventually RESOLVED or marked as WONTFIX. 

• A lifecycle model for issues aggregates data to provide a graphical representation
of how bugs flow through these three states. 

• For example, the lifecycle model would capture the proportion of bugs that are
reopened from a WONTFIX state that might be interesting for a manager
considering adjustments to their issue triage process. 

• Such lifecycle models often exist in process models (if defined). Therefore,
extracting one from the history enables comparing the defined lifecycle with the
actual one.
In this chapter, we apply lifecycle models to capture how the patch review
process works within the Mozilla project.
SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS
JEONBUK NATIONAL
UNIVERSITY
Jeongwhan Choi 5
Example: Patch Lifecycle
1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review
4.Lifecycle Analysis 5. Other Applications 6.Conclusion
• By examining how each artifact evolves, we can build a summary that captures
common dynamic evolutionary patterns. 

• Each node in a lifecycle model represents a state that can be derived by
examining the evolution of an artifact.
• change status of issues

• patches under review

• lines of code
metadata history
extract
lifecycle models
SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS
JEONBUK NATIONAL
UNIVERSITY
Jeongwhan Choi 6
Example: Patch Lifecycle
1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review
4.Lifecycle Analysis 5. Other Applications 6.Conclusion
• To model the patch lifecycle, e.g., for the Mozilla project, we first examine
Mozilla’s code review policy and processes. 

• Mozilla employs a two-tier code review process for validating submitted
patches — review and super-review.
• performed by a module owner or peers of the module

• a reviewer is someone who has domain expertise in a problem area
Review
• required if the patch involves integration or modifies core codebase
infrastructure
Super-review
• We then extract the states a patch can go through and define the final states it
can be assigned to.
SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS
JEONBUK NATIONAL
UNIVERSITY
Jeongwhan Choi 7
Example: Patch Lifecycle
1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review
4.Lifecycle Analysis 5. Other Applications 6.Conclusion
• Figure 4.1 illustrates a lifecycle model of a patch as a simple graph: 

• the nodes show the various states a patch can go through during the review
process, 

• while the edges capture the transitions between lifecycle states. 

• A transition represents an event that is labeled as a flag and its status reported
during the review process.

• For simplicity, we show only the key code review patches that have “review” (r)
and “super-review” (sr) flags attached to them.
SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS
JEONBUK NATIONAL
UNIVERSITY
Jeongwhan Choi 8
Example: Patch Lifecycle
1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review
4.Lifecycle Analysis 5. Other Applications 6.Conclusion
The code review process begins when
a patch is submitted and a review is requested:
a review or super-review has been requested.
• A patch can be assigned to one of three states: 

• Submitted, Accepted, or Rejected.
SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS
JEONBUK NATIONAL
UNIVERSITY
Jeongwhan Choi 9
Example: Patch Lifecycle
1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review
4.Lifecycle Analysis 5. Other Applications 6.Conclusion
The code review process begins when
a patch is submitted and a review is requested:
a review or super-review has been requested.
• A patch can be assigned to one of three states: 

• Submitted, Accepted, or Rejected.
Once the review is requested (a flag
contains a question mark “?” at the end),
the patch enters the Submitted state.
SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS
JEONBUK NATIONAL
UNIVERSITY
Jeongwhan Choi 10
Example: Patch Lifecycle
1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review
4.Lifecycle Analysis 5. Other Applications 6.Conclusion
The code review process begins when
a patch is submitted and a review is requested:
a review or super-review has been requested.
• A patch can be assigned to one of three states: 

• Submitted, Accepted, or Rejected.
Note that both the Accepted and Rejected
states permit self-transitions.
double review process
Once the review is requested (a flag
contains a question mark “?” at the end),
the patch enters the Submitted state.
SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS
JEONBUK NATIONAL
UNIVERSITY
Jeongwhan Choi 11
Example: Patch Lifecycle
1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review
4.Lifecycle Analysis 5. Other Applications 6.Conclusion
The code review process begins when
a patch is submitted and a review is requested:
a review or super-review has been requested.
• A patch can be assigned to one of three states: 

• Submitted, Accepted, or Rejected.
Note that both the Accepted and Rejected
states permit self-transitions.
double review process
Once the review is requested (a flag
contains a question mark “?” at the end),
the patch enters the Submitted state.
There are four possible terminal states for a patch:
SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS
JEONBUK NATIONAL
UNIVERSITY
Jeongwhan Choi 12
Example: Patch Lifecycle
1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review
4.Lifecycle Analysis 5. Other Applications 6.Conclusion
• Landed: a patch meets the code review criteria and is incorporated into the codebase.

• Resubmitted: a patch is superseded by additional refinements after being accepted or
rejected.

• Abandoned: a patch is not improved after being rejected.

• Timeout: a patch with review requests that are never answered.
There are four possible terminal states for a patch:
#patches = #Submitted patches
SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS
JEONBUK NATIONAL
UNIVERSITY
Jeongwhan Choi 13
Model Extraction
1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review
4.Lifecycle Analysis 5. Other Applications 6.Conclusion
• Lifecycle models can be generated as follows:

1. Determine the key states of the system or process(e.g., a number of events
that could occur) and their attributes.

2. Define the necessary transitions between the states and specify an
attribute for each transition.

3. Define the terminal outcomes(optional).

4. Define and gather qualitative or quantitative measurements for each state
transition and, if present, for the final outcomes.

• The pattern provides means to model, organize, and reason about the data or
underlying processes otherwise hidden in individual artifacts. 

• While lifecycle models can be modified or extended depending on the needs, they
work best when the state space is well defined. 

• Applying this pattern to complex data may require some abstraction.
SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS
JEONBUK NATIONAL
UNIVERSITY
Jeongwhan Choi 14
Code Review
1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review
4.Lifecycle Analysis 5. Other Applications 6.Conclusion
• Code review is a key element of any mature software development process.

• Indeed, community contributions are often the life blood of a successful open
source project; however, the core developers must also be able to assess the
quality of the incoming contributions, lest they negatively impact the overall quality
of the system.

• The code review process evaluates the quality of source code modifications
(submitted as patches) before they are committed to a project’s version control
repository.

• Here, we want to explore whether code review in a project is “democratic,” i.e.,
are contributions reviewed “equally,” regardless of the developers’ previous
involvement on a project. 

• For example, do patches from core developers have a higher chance of being
accepted? 

• Do patches from casual contributors take longer to get feedback?
SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS
JEONBUK NATIONAL
UNIVERSITY
Jeongwhan Choi 15
Code Review: Mozilla Project
1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review
4.Lifecycle Analysis 5. Other Applications 6.Conclusion
• A two-tiered code review process

• A review is typically performed by the owner of the module or a “peer”; the
reviewer has domain expertise in the problem area. 

• A super-review is required if the patch involves integration or modifies core
Mozilla infrastructure. 

• Bugzilla users flag patches with metadata to capture code review requests and
evaluations. A typical patch review process consists of the following steps:

1. Once a patch is ready, its owner requests are view from a module owner or
a peer. The review flag is set to “r?”. 

• If the patch owner decides to request a super-review, he may also do so
and the flag is set to “sr?”.

2. When the patch passes are review or a super-review, the flag is set to “r+,”
or “sr+,” respectively. If it fails, the reviewer sets the flag to “r−” or “sr−” and
provides explanation on a review by adding comments to a bug in Bugzilla.

3. If the patch is rejected, the patch owner may resubmit a new version of the
patch that will undergo a review process from the beginning. If the patch is
approved, it will be checked into the project’s official codebase.
SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS
JEONBUK NATIONAL
UNIVERSITY
Jeongwhan Choi 16
Mozilla Firefox
1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review
4.Lifecycle Analysis 5. Other Applications 6.Conclusion
• To generate lifecycle models all events have been extracted from Mozilla’s public
Bugzilla instance. 

• All code committed to Mozilla Firefox undergoes code review. 

• Developers submit a patch containing their change to Bugzilla and request a
review. 

• Reviewers annotate the patch either positively or negatively to reflect their
opinion of the code under review. 

• For highly-impactful patches super-reviews may be requested and performed. 

• Once the reviewers approve a patch it can be applied to the Mozilla source code
repository.
Lifecycle Models code review processes
apply
The goal is: 

to identify the ways in which patches typically flow through the code review process
SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS
JEONBUK NATIONAL
UNIVERSITY
Jeongwhan Choi 17
Mozilla Firefox - Model Extraction
1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review
4.Lifecycle Analysis 5. Other Applications 6.Conclusion
Patches exist in one of three key states: Submitted, Accepted, Rejected
1. State Identification
SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS
JEONBUK NATIONAL
UNIVERSITY
Jeongwhan Choi 18
Mozilla Firefox - Model Extraction
1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review
4.Lifecycle Analysis 5. Other Applications 6.Conclusion
Code reviews transition patches between the three primary states.
2. Transition Extraction
A review request is annotated with “r?”
Positive reviews are denoted with a “r+”
Negative reviews are annotated “r−”
Super-reviews are prepended with an s (e.g., “sr+”/“sr−”).
SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS
JEONBUK NATIONAL
UNIVERSITY
Jeongwhan Choi 19
Mozilla Firefox - Model Extraction
1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review
4.Lifecycle Analysis 5. Other Applications 6.Conclusion
Patches can also exist in four terminal states, which are defined considering
entire patch history to resolve an issue.
3. Terminal State Determination
SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS
JEONBUK NATIONAL
UNIVERSITY
Jeongwhan Choi 20
Mozilla Firefox - Model Extraction
1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review
4.Lifecycle Analysis 5. Other Applications 6.Conclusion
Study we measured both the number of times each transition happened along
with the median time taken to transition between states.
4. Measurement
SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS
JEONBUK NATIONAL
UNIVERSITY
Jeongwhan Choi 21
Mozilla Firefox - Lifecycle Analysis
1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review
4.Lifecycle Analysis 5. Other Applications 6.Conclusion
• A large proportion of Accepted patches are still Resubmitted by authors for
revision. 

• Rejected patches are usually Resubmitted, easing concerns that rejecting a
borderline patch could cause it to be abandoned.
Very few patches Timeout in practice.
SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS
JEONBUK NATIONAL
UNIVERSITY
Jeongwhan Choi 22
Mozilla Firefox - Lifecycle Analysis
1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review
4.Lifecycle Analysis 5. Other Applications 6.Conclusion
• From the timing data for core contributors (refer to Table 4.1) we see that it takes
an average of 8.9 hours to get an initial “r+” review, while getting a negative “r–”
review takes 11.8 hours.

• The transition “r? → r+” is a lot faster than “r? → r–” showing that reviewers
provide faster responses if a patch is of good quality.
average of 11.8 hours
average of 8.9 hours
SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS
JEONBUK NATIONAL
UNIVERSITY
Jeongwhan Choi 23
Mozilla Firefox - Lifecycle Analysis
1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review
4.Lifecycle Analysis 5. Other Applications 6.Conclusion
• To our surprise, the fastest “r? → r+” is detected for casual developers.

• Super-reviews, in general, are approved very quickly, within 8−10 hours. 

• This finding conforms to the Mozilla’s code review policy: super- reviewers are
supposed to respond within 24 hours of a super-review request. 

• However, it takes much longer — 4 to 6 days — for a super-reviewer to reject a
patch that requires an integration, as these patches often require extensive
discussions with others.
the fastest “r? -> r+”
SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS
JEONBUK NATIONAL
UNIVERSITY
Jeongwhan Choi 24
Mozilla Firefox - Lifecycle Analysis
1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review
4.Lifecycle Analysis 5. Other Applications 6.Conclusion
Comparing the lifecycles for core and casual contributors
6% more patches
increased by factor of 3.12x
Mozilla Firefox’s patch lifecycle for core developers
7% fewer patches
increased by factor of 3.5x
Mozilla Firefox’s patch lifecycle for casual developers
SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS
JEONBUK NATIONAL
UNIVERSITY
Jeongwhan Choi 25
Mozilla Firefox - Lifecycle Analysis
1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review
4.Lifecycle Analysis 5. Other Applications 6.Conclusion
• Our findings suggest that patches from casual contributors are more likely to be
abandoned by both reviewers and contributors themselves. 

• Thus, it is likely that these patches should receive extra care to both ensure quality
and encourage future contributions from the community members who prefer to
participate in the collaborative development on a less regular basis.
generated discussion and raised some concerns among the developers on the Mozilla Development Planning team
SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS
JEONBUK NATIONAL
UNIVERSITY
Jeongwhan Choi 26
Other Applications
1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review
4.Lifecycle Analysis 5. Other Applications 6.Conclusion
• Lifecycle models provide practitioners with fact-based views about their projects.

• Supporting practitioners with better insights into their processes and systems,
these models help them make better data-driven development decisions.

• The lifecycle model is a flexible approach that can be used in a variety of
software investigation tasks. For example:

• Issues: As developers work on issues their state changes. Common states here
would include NEW, ASSIGNED, WONTFIX, CLOSED, although these may vary
from project to project.

• Component/Priority assignments: Issues are often assigned to specific code
components (and are given priority assignments). As an issue is triaged and
worked upon these assignments can change.

• Source code: The evolutionary history of any line or block of source code can be
considered capturing Addition, Deletion, and Modification. This data can be
aggregated at the line, block, method, or class level.

• Discussions: Online discussions, e.g., those on StackOverflow, can have status
of CLOSED, UNANSWERED, REOPENED, DUPLICATE, and PROTECTED.
SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS
JEONBUK NATIONAL
UNIVERSITY
Jeongwhan Choi 27
Conclusion
1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review
4.Lifecycle Analysis 5. Other Applications 6.Conclusion
• Lifecycle models can be easy to generate and interpret, making them practical
for use in a wide variety of data modeling applications.

• Software developers and managers make decisions based on the understanding
they have of their software systems.

• While artifacts can be investigated individually, being able to summarize
characteristics about a set of development artifacts can be useful.

• Lifecycle models capture the dynamic nature of how various development
artifacts change over time in a graphical form that can be easily understood and
communicated.

• Lifecycle models enables reasoning of the underlying processes and dynamics of
the artifacts being analyzed.
SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS
JEONBUK NATIONAL
UNIVERSITY
Jeongwhan Choi 28
1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review
4.Lifecycle Analysis 5. Other Applications 6.Conclusion
Thank you

More Related Content

What's hot

Software testing q as collection by ravi
Software testing q as   collection by raviSoftware testing q as   collection by ravi
Software testing q as collection by ravi
Ravindranath Tagore
 
Foundation level sample_exam_v2.3_answers_and_justification
Foundation level sample_exam_v2.3_answers_and_justificationFoundation level sample_exam_v2.3_answers_and_justification
Foundation level sample_exam_v2.3_answers_and_justification
Venera Romanova
 
Testing terms & definitions
Testing terms & definitionsTesting terms & definitions
Testing terms & definitions
Sachin MK
 
St & internationalization
St & internationalizationSt & internationalization
St & internationalization
Sachin MK
 
Testing throughout the software life cycle 2
Testing throughout the software life cycle 2Testing throughout the software life cycle 2
Testing throughout the software life cycle 2
Afridol Afridol
 

What's hot (18)

Software testing q as collection by ravi
Software testing q as   collection by raviSoftware testing q as   collection by ravi
Software testing q as collection by ravi
 
Importance of Testing in SDLC
Importance of Testing in SDLCImportance of Testing in SDLC
Importance of Testing in SDLC
 
A Survey of functional verification techniques
A Survey of functional verification techniquesA Survey of functional verification techniques
A Survey of functional verification techniques
 
Research Activities: past, present, and future.
Research Activities: past, present, and future.Research Activities: past, present, and future.
Research Activities: past, present, and future.
 
Foundation level sample_exam_v2.3_answers_and_justification
Foundation level sample_exam_v2.3_answers_and_justificationFoundation level sample_exam_v2.3_answers_and_justification
Foundation level sample_exam_v2.3_answers_and_justification
 
MIT521 software testing (2012) v2
MIT521   software testing  (2012) v2MIT521   software testing  (2012) v2
MIT521 software testing (2012) v2
 
Object Oriented Testing
Object Oriented TestingObject Oriented Testing
Object Oriented Testing
 
Testing terms & definitions
Testing terms & definitionsTesting terms & definitions
Testing terms & definitions
 
Software Testing Introduction
Software Testing IntroductionSoftware Testing Introduction
Software Testing Introduction
 
Testing throughout the software life cycle
Testing throughout the software life cycleTesting throughout the software life cycle
Testing throughout the software life cycle
 
Object Oriented Analysis
Object Oriented AnalysisObject Oriented Analysis
Object Oriented Analysis
 
St & internationalization
St & internationalizationSt & internationalization
St & internationalization
 
Testing Throughout the Software Life Cycle - Section 2
Testing Throughout the Software Life Cycle - Section 2Testing Throughout the Software Life Cycle - Section 2
Testing Throughout the Software Life Cycle - Section 2
 
OSS Project Quality & management
OSS Project Quality & managementOSS Project Quality & management
OSS Project Quality & management
 
Unit 1 part 2
Unit 1 part 2Unit 1 part 2
Unit 1 part 2
 
Testing Throughout The Software Life Cycle (Dhea Frizky)
Testing Throughout The Software Life Cycle (Dhea Frizky) Testing Throughout The Software Life Cycle (Dhea Frizky)
Testing Throughout The Software Life Cycle (Dhea Frizky)
 
Testing throughout the software life cycle
Testing throughout the software life cycleTesting throughout the software life cycle
Testing throughout the software life cycle
 
Testing throughout the software life cycle 2
Testing throughout the software life cycle 2Testing throughout the software life cycle 2
Testing throughout the software life cycle 2
 

Similar to Synthesizing Knowledge from Software Development Artifacts

2 approaches to system development
2 approaches to system development2 approaches to system development
2 approaches to system development
cymark09
 
Generic Software Process Models
Generic Software Process ModelsGeneric Software Process Models
Generic Software Process Models
Education Front
 
process models- software engineering
process models- software engineeringprocess models- software engineering
process models- software engineering
Arun Nair
 
Software vjhghjjkhjkkkghhjhEngineering.pdf
Software vjhghjjkhjkkkghhjhEngineering.pdfSoftware vjhghjjkhjkkkghhjhEngineering.pdf
Software vjhghjjkhjkkkghhjhEngineering.pdf
avishekpradhan24
 

Similar to Synthesizing Knowledge from Software Development Artifacts (20)

SDLC models testing
SDLC models testingSDLC models testing
SDLC models testing
 
SE_Unit 2.pdf it is a process model of it student
SE_Unit 2.pdf it is a process model of it studentSE_Unit 2.pdf it is a process model of it student
SE_Unit 2.pdf it is a process model of it student
 
DITEC - Software Engineering
DITEC - Software EngineeringDITEC - Software Engineering
DITEC - Software Engineering
 
2 approaches to system development
2 approaches to system development2 approaches to system development
2 approaches to system development
 
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
 
Pawan111
Pawan111Pawan111
Pawan111
 
Generic Software Process Models
Generic Software Process ModelsGeneric Software Process Models
Generic Software Process Models
 
Models.pptx
Models.pptxModels.pptx
Models.pptx
 
Agile methodology
Agile methodologyAgile methodology
Agile methodology
 
ppt2.pptx
ppt2.pptxppt2.pptx
ppt2.pptx
 
Tiara Ramadhani - Program Studi S1 Sistem Informasi - Fakultas Sains dan Tekn...
Tiara Ramadhani - Program Studi S1 Sistem Informasi - Fakultas Sains dan Tekn...Tiara Ramadhani - Program Studi S1 Sistem Informasi - Fakultas Sains dan Tekn...
Tiara Ramadhani - Program Studi S1 Sistem Informasi - Fakultas Sains dan Tekn...
 
The process
The processThe process
The process
 
Software engineering the process
Software engineering the processSoftware engineering the process
Software engineering the process
 
process models- software engineering
process models- software engineeringprocess models- software engineering
process models- software engineering
 
Materi Testing dan Implementasi System
Materi Testing dan Implementasi SystemMateri Testing dan Implementasi System
Materi Testing dan Implementasi System
 
system development life cycle
system development life cyclesystem development life cycle
system development life cycle
 
DISE - Introduction to Software Engineering
DISE - Introduction to Software EngineeringDISE - Introduction to Software Engineering
DISE - Introduction to Software Engineering
 
Structured system analysis and design
Structured system analysis and design Structured system analysis and design
Structured system analysis and design
 
Unified process
Unified processUnified process
Unified process
 
Software vjhghjjkhjkkkghhjhEngineering.pdf
Software vjhghjjkhjkkkghhjhEngineering.pdfSoftware vjhghjjkhjkkkghhjhEngineering.pdf
Software vjhghjjkhjkkkghhjhEngineering.pdf
 

More from Jeongwhan Choi

More from Jeongwhan Choi (9)

[Yonsei AI Workshop 2022] Graph Neural Controlled Differential Equations for ...
[Yonsei AI Workshop 2022] Graph Neural Controlled Differential Equations for ...[Yonsei AI Workshop 2022] Graph Neural Controlled Differential Equations for ...
[Yonsei AI Workshop 2022] Graph Neural Controlled Differential Equations for ...
 
[KAIA2021] Graph-based Collaborative Filtering and Neural ODEs
[KAIA2021] Graph-based Collaborative Filtering and Neural ODEs[KAIA2021] Graph-based Collaborative Filtering and Neural ODEs
[KAIA2021] Graph-based Collaborative Filtering and Neural ODEs
 
Dissecting the diffusion process in linear graph convolutional networks
Dissecting the diffusion process  in linear graph convolutional networksDissecting the diffusion process  in linear graph convolutional networks
Dissecting the diffusion process in linear graph convolutional networks
 
20191128 transformer attention_is_all_you_need
20191128 transformer attention_is_all_you_need20191128 transformer attention_is_all_you_need
20191128 transformer attention_is_all_you_need
 
DeepXplore: Automated Whitebox Testing of Deep Learning Systems
DeepXplore: Automated Whitebox Testing of Deep Learning Systems DeepXplore: Automated Whitebox Testing of Deep Learning Systems
DeepXplore: Automated Whitebox Testing of Deep Learning Systems
 
Consensus Protocols of Hyperledger Besu: IBFT2.0 & Clique
Consensus Protocols of Hyperledger Besu: IBFT2.0 & CliqueConsensus Protocols of Hyperledger Besu: IBFT2.0 & Clique
Consensus Protocols of Hyperledger Besu: IBFT2.0 & Clique
 
Software defect prediction: do different classifiers find the same defects?
Software defect prediction: do different classifiers find the same defects?Software defect prediction: do different classifiers find the same defects?
Software defect prediction: do different classifiers find the same defects?
 
Past, Present, and Future of Analyzing Software Data
Past, Present, and Future of Analyzing Software DataPast, Present, and Future of Analyzing Software Data
Past, Present, and Future of Analyzing Software Data
 
Core Ethereum Programming(Chapter1~Chapter2.2)
Core Ethereum Programming(Chapter1~Chapter2.2)Core Ethereum Programming(Chapter1~Chapter2.2)
Core Ethereum Programming(Chapter1~Chapter2.2)
 

Recently uploaded

Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
Epec Engineered Technologies
 
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments""Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
mphochane1998
 
DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakes
MayuraD1
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
Neometrix_Engineering_Pvt_Ltd
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Kandungan 087776558899
 

Recently uploaded (20)

Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
 
School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdf
 
kiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal loadkiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal load
 
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptxA CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
 
Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS Lambda
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
 
Air Compressor reciprocating single stage
Air Compressor reciprocating single stageAir Compressor reciprocating single stage
Air Compressor reciprocating single stage
 
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best ServiceTamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
 
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced LoadsFEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
 
Engineering Drawing focus on projection of planes
Engineering Drawing focus on projection of planesEngineering Drawing focus on projection of planes
Engineering Drawing focus on projection of planes
 
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments""Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
 
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
 
DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakes
 
A Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityA Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna Municipality
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
 
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptxHOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
 
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
COST-EFFETIVE  and Energy Efficient BUILDINGS ptxCOST-EFFETIVE  and Energy Efficient BUILDINGS ptx
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
 

Synthesizing Knowledge from Software Development Artifacts

  • 1. JEONBUK NATIONAL UNIVERSITY SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS Jeongwhan Choi jeongwhan.choi@jbnu.ac.kr AI & SE Lab
  • 2. SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS JEONBUK NATIONAL UNIVERSITY Jeongwhan Choi 2 Outline 1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review 4.Lifecycle Analysis 5. Other Applications 6.Conclusion
  • 3. SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS JEONBUK NATIONAL UNIVERSITY Jeongwhan Choi 3 Problem Statement 1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review 4.Lifecycle Analysis 5. Other Applications 6.Conclusion The data is out there. The problem is making practical use of it. to process the myriad development artifacts challenging a graph-based representation of specific properties within a development artifact and how they change over time Lifecycle Model • Lifecycle models can be applied to any data that changes its state, or is annotated with new data, over time.
  • 4. SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS JEONBUK NATIONAL UNIVERSITY Jeongwhan Choi 4 Problem Statement - Examples 1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review 4.Lifecycle Analysis 5. Other Applications 6.Conclusion • For example, “issues” in issue-tracking systems often start their lives as OPEN, but are eventually RESOLVED or marked as WONTFIX. • A lifecycle model for issues aggregates data to provide a graphical representation of how bugs flow through these three states. • For example, the lifecycle model would capture the proportion of bugs that are reopened from a WONTFIX state that might be interesting for a manager considering adjustments to their issue triage process. • Such lifecycle models often exist in process models (if defined). Therefore, extracting one from the history enables comparing the defined lifecycle with the actual one. In this chapter, we apply lifecycle models to capture how the patch review process works within the Mozilla project.
  • 5. SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS JEONBUK NATIONAL UNIVERSITY Jeongwhan Choi 5 Example: Patch Lifecycle 1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review 4.Lifecycle Analysis 5. Other Applications 6.Conclusion • By examining how each artifact evolves, we can build a summary that captures common dynamic evolutionary patterns. • Each node in a lifecycle model represents a state that can be derived by examining the evolution of an artifact. • change status of issues • patches under review • lines of code metadata history extract lifecycle models
  • 6. SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS JEONBUK NATIONAL UNIVERSITY Jeongwhan Choi 6 Example: Patch Lifecycle 1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review 4.Lifecycle Analysis 5. Other Applications 6.Conclusion • To model the patch lifecycle, e.g., for the Mozilla project, we first examine Mozilla’s code review policy and processes. • Mozilla employs a two-tier code review process for validating submitted patches — review and super-review. • performed by a module owner or peers of the module • a reviewer is someone who has domain expertise in a problem area Review • required if the patch involves integration or modifies core codebase infrastructure Super-review • We then extract the states a patch can go through and define the final states it can be assigned to.
  • 7. SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS JEONBUK NATIONAL UNIVERSITY Jeongwhan Choi 7 Example: Patch Lifecycle 1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review 4.Lifecycle Analysis 5. Other Applications 6.Conclusion • Figure 4.1 illustrates a lifecycle model of a patch as a simple graph: • the nodes show the various states a patch can go through during the review process, • while the edges capture the transitions between lifecycle states. • A transition represents an event that is labeled as a flag and its status reported during the review process. • For simplicity, we show only the key code review patches that have “review” (r) and “super-review” (sr) flags attached to them.
  • 8. SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS JEONBUK NATIONAL UNIVERSITY Jeongwhan Choi 8 Example: Patch Lifecycle 1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review 4.Lifecycle Analysis 5. Other Applications 6.Conclusion The code review process begins when a patch is submitted and a review is requested: a review or super-review has been requested. • A patch can be assigned to one of three states: • Submitted, Accepted, or Rejected.
  • 9. SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS JEONBUK NATIONAL UNIVERSITY Jeongwhan Choi 9 Example: Patch Lifecycle 1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review 4.Lifecycle Analysis 5. Other Applications 6.Conclusion The code review process begins when a patch is submitted and a review is requested: a review or super-review has been requested. • A patch can be assigned to one of three states: • Submitted, Accepted, or Rejected. Once the review is requested (a flag contains a question mark “?” at the end), the patch enters the Submitted state.
  • 10. SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS JEONBUK NATIONAL UNIVERSITY Jeongwhan Choi 10 Example: Patch Lifecycle 1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review 4.Lifecycle Analysis 5. Other Applications 6.Conclusion The code review process begins when a patch is submitted and a review is requested: a review or super-review has been requested. • A patch can be assigned to one of three states: • Submitted, Accepted, or Rejected. Note that both the Accepted and Rejected states permit self-transitions. double review process Once the review is requested (a flag contains a question mark “?” at the end), the patch enters the Submitted state.
  • 11. SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS JEONBUK NATIONAL UNIVERSITY Jeongwhan Choi 11 Example: Patch Lifecycle 1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review 4.Lifecycle Analysis 5. Other Applications 6.Conclusion The code review process begins when a patch is submitted and a review is requested: a review or super-review has been requested. • A patch can be assigned to one of three states: • Submitted, Accepted, or Rejected. Note that both the Accepted and Rejected states permit self-transitions. double review process Once the review is requested (a flag contains a question mark “?” at the end), the patch enters the Submitted state. There are four possible terminal states for a patch:
  • 12. SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS JEONBUK NATIONAL UNIVERSITY Jeongwhan Choi 12 Example: Patch Lifecycle 1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review 4.Lifecycle Analysis 5. Other Applications 6.Conclusion • Landed: a patch meets the code review criteria and is incorporated into the codebase. • Resubmitted: a patch is superseded by additional refinements after being accepted or rejected. • Abandoned: a patch is not improved after being rejected. • Timeout: a patch with review requests that are never answered. There are four possible terminal states for a patch: #patches = #Submitted patches
  • 13. SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS JEONBUK NATIONAL UNIVERSITY Jeongwhan Choi 13 Model Extraction 1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review 4.Lifecycle Analysis 5. Other Applications 6.Conclusion • Lifecycle models can be generated as follows: 1. Determine the key states of the system or process(e.g., a number of events that could occur) and their attributes. 2. Define the necessary transitions between the states and specify an attribute for each transition. 3. Define the terminal outcomes(optional). 4. Define and gather qualitative or quantitative measurements for each state transition and, if present, for the final outcomes. • The pattern provides means to model, organize, and reason about the data or underlying processes otherwise hidden in individual artifacts. • While lifecycle models can be modified or extended depending on the needs, they work best when the state space is well defined. • Applying this pattern to complex data may require some abstraction.
  • 14. SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS JEONBUK NATIONAL UNIVERSITY Jeongwhan Choi 14 Code Review 1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review 4.Lifecycle Analysis 5. Other Applications 6.Conclusion • Code review is a key element of any mature software development process. • Indeed, community contributions are often the life blood of a successful open source project; however, the core developers must also be able to assess the quality of the incoming contributions, lest they negatively impact the overall quality of the system. • The code review process evaluates the quality of source code modifications (submitted as patches) before they are committed to a project’s version control repository. • Here, we want to explore whether code review in a project is “democratic,” i.e., are contributions reviewed “equally,” regardless of the developers’ previous involvement on a project. • For example, do patches from core developers have a higher chance of being accepted? • Do patches from casual contributors take longer to get feedback?
  • 15. SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS JEONBUK NATIONAL UNIVERSITY Jeongwhan Choi 15 Code Review: Mozilla Project 1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review 4.Lifecycle Analysis 5. Other Applications 6.Conclusion • A two-tiered code review process • A review is typically performed by the owner of the module or a “peer”; the reviewer has domain expertise in the problem area. • A super-review is required if the patch involves integration or modifies core Mozilla infrastructure. • Bugzilla users flag patches with metadata to capture code review requests and evaluations. A typical patch review process consists of the following steps: 1. Once a patch is ready, its owner requests are view from a module owner or a peer. The review flag is set to “r?”. • If the patch owner decides to request a super-review, he may also do so and the flag is set to “sr?”. 2. When the patch passes are review or a super-review, the flag is set to “r+,” or “sr+,” respectively. If it fails, the reviewer sets the flag to “r−” or “sr−” and provides explanation on a review by adding comments to a bug in Bugzilla. 3. If the patch is rejected, the patch owner may resubmit a new version of the patch that will undergo a review process from the beginning. If the patch is approved, it will be checked into the project’s official codebase.
  • 16. SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS JEONBUK NATIONAL UNIVERSITY Jeongwhan Choi 16 Mozilla Firefox 1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review 4.Lifecycle Analysis 5. Other Applications 6.Conclusion • To generate lifecycle models all events have been extracted from Mozilla’s public Bugzilla instance. • All code committed to Mozilla Firefox undergoes code review. • Developers submit a patch containing their change to Bugzilla and request a review. • Reviewers annotate the patch either positively or negatively to reflect their opinion of the code under review. • For highly-impactful patches super-reviews may be requested and performed. • Once the reviewers approve a patch it can be applied to the Mozilla source code repository. Lifecycle Models code review processes apply The goal is: to identify the ways in which patches typically flow through the code review process
  • 17. SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS JEONBUK NATIONAL UNIVERSITY Jeongwhan Choi 17 Mozilla Firefox - Model Extraction 1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review 4.Lifecycle Analysis 5. Other Applications 6.Conclusion Patches exist in one of three key states: Submitted, Accepted, Rejected 1. State Identification
  • 18. SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS JEONBUK NATIONAL UNIVERSITY Jeongwhan Choi 18 Mozilla Firefox - Model Extraction 1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review 4.Lifecycle Analysis 5. Other Applications 6.Conclusion Code reviews transition patches between the three primary states. 2. Transition Extraction A review request is annotated with “r?” Positive reviews are denoted with a “r+” Negative reviews are annotated “r−” Super-reviews are prepended with an s (e.g., “sr+”/“sr−”).
  • 19. SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS JEONBUK NATIONAL UNIVERSITY Jeongwhan Choi 19 Mozilla Firefox - Model Extraction 1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review 4.Lifecycle Analysis 5. Other Applications 6.Conclusion Patches can also exist in four terminal states, which are defined considering entire patch history to resolve an issue. 3. Terminal State Determination
  • 20. SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS JEONBUK NATIONAL UNIVERSITY Jeongwhan Choi 20 Mozilla Firefox - Model Extraction 1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review 4.Lifecycle Analysis 5. Other Applications 6.Conclusion Study we measured both the number of times each transition happened along with the median time taken to transition between states. 4. Measurement
  • 21. SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS JEONBUK NATIONAL UNIVERSITY Jeongwhan Choi 21 Mozilla Firefox - Lifecycle Analysis 1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review 4.Lifecycle Analysis 5. Other Applications 6.Conclusion • A large proportion of Accepted patches are still Resubmitted by authors for revision. • Rejected patches are usually Resubmitted, easing concerns that rejecting a borderline patch could cause it to be abandoned. Very few patches Timeout in practice.
  • 22. SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS JEONBUK NATIONAL UNIVERSITY Jeongwhan Choi 22 Mozilla Firefox - Lifecycle Analysis 1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review 4.Lifecycle Analysis 5. Other Applications 6.Conclusion • From the timing data for core contributors (refer to Table 4.1) we see that it takes an average of 8.9 hours to get an initial “r+” review, while getting a negative “r–” review takes 11.8 hours. • The transition “r? → r+” is a lot faster than “r? → r–” showing that reviewers provide faster responses if a patch is of good quality. average of 11.8 hours average of 8.9 hours
  • 23. SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS JEONBUK NATIONAL UNIVERSITY Jeongwhan Choi 23 Mozilla Firefox - Lifecycle Analysis 1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review 4.Lifecycle Analysis 5. Other Applications 6.Conclusion • To our surprise, the fastest “r? → r+” is detected for casual developers. • Super-reviews, in general, are approved very quickly, within 8−10 hours. • This finding conforms to the Mozilla’s code review policy: super- reviewers are supposed to respond within 24 hours of a super-review request. • However, it takes much longer — 4 to 6 days — for a super-reviewer to reject a patch that requires an integration, as these patches often require extensive discussions with others. the fastest “r? -> r+”
  • 24. SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS JEONBUK NATIONAL UNIVERSITY Jeongwhan Choi 24 Mozilla Firefox - Lifecycle Analysis 1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review 4.Lifecycle Analysis 5. Other Applications 6.Conclusion Comparing the lifecycles for core and casual contributors 6% more patches increased by factor of 3.12x Mozilla Firefox’s patch lifecycle for core developers 7% fewer patches increased by factor of 3.5x Mozilla Firefox’s patch lifecycle for casual developers
  • 25. SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS JEONBUK NATIONAL UNIVERSITY Jeongwhan Choi 25 Mozilla Firefox - Lifecycle Analysis 1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review 4.Lifecycle Analysis 5. Other Applications 6.Conclusion • Our findings suggest that patches from casual contributors are more likely to be abandoned by both reviewers and contributors themselves. • Thus, it is likely that these patches should receive extra care to both ensure quality and encourage future contributions from the community members who prefer to participate in the collaborative development on a less regular basis. generated discussion and raised some concerns among the developers on the Mozilla Development Planning team
  • 26. SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS JEONBUK NATIONAL UNIVERSITY Jeongwhan Choi 26 Other Applications 1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review 4.Lifecycle Analysis 5. Other Applications 6.Conclusion • Lifecycle models provide practitioners with fact-based views about their projects. • Supporting practitioners with better insights into their processes and systems, these models help them make better data-driven development decisions. • The lifecycle model is a flexible approach that can be used in a variety of software investigation tasks. For example: • Issues: As developers work on issues their state changes. Common states here would include NEW, ASSIGNED, WONTFIX, CLOSED, although these may vary from project to project. • Component/Priority assignments: Issues are often assigned to specific code components (and are given priority assignments). As an issue is triaged and worked upon these assignments can change. • Source code: The evolutionary history of any line or block of source code can be considered capturing Addition, Deletion, and Modification. This data can be aggregated at the line, block, method, or class level. • Discussions: Online discussions, e.g., those on StackOverflow, can have status of CLOSED, UNANSWERED, REOPENED, DUPLICATE, and PROTECTED.
  • 27. SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS JEONBUK NATIONAL UNIVERSITY Jeongwhan Choi 27 Conclusion 1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review 4.Lifecycle Analysis 5. Other Applications 6.Conclusion • Lifecycle models can be easy to generate and interpret, making them practical for use in a wide variety of data modeling applications. • Software developers and managers make decisions based on the understanding they have of their software systems. • While artifacts can be investigated individually, being able to summarize characteristics about a set of development artifacts can be useful. • Lifecycle models capture the dynamic nature of how various development artifacts change over time in a graphical form that can be easily understood and communicated. • Lifecycle models enables reasoning of the underlying processes and dynamics of the artifacts being analyzed.
  • 28. SYNTHESIZING KNOWLEDGE FROM SOFTWARE DEVELOPMENT ARTIFACTS JEONBUK NATIONAL UNIVERSITY Jeongwhan Choi 28 1.Problem Statement 2.Artifact Lifecycle Models 3.Code Review 4.Lifecycle Analysis 5. Other Applications 6.Conclusion Thank you