698 research outputs found
Program Merge Conflict Resolution via Neural Transformers
Collaborative software development is an integral part of the modern software
development life cycle, essential to the success of large-scale software
projects. When multiple developers make concurrent changes around the same
lines of code, a merge conflict may occur. Such conflicts stall pull requests
and continuous integration pipelines for hours to several days, seriously
hurting developer productivity. To address this problem, we introduce
MergeBERT, a novel neural program merge framework based on token-level
three-way differencing and a transformer encoder model. By exploiting the
restricted nature of merge conflict resolutions, we reformulate the task of
generating the resolution sequence as a classification task over a set of
primitive merge patterns extracted from real-world merge commit data. Our model
achieves 63-68% accuracy for merge resolution synthesis, yielding nearly a 3x
performance improvement over existing semi-structured, and 2x improvement over
neural program merge tools. Finally, we demonstrate that MergeBERT is
sufficiently flexible to work with source code files in Java, JavaScript,
TypeScript, and C# programming languages. To measure the practical use of
MergeBERT, we conduct a user study to evaluate MergeBERT suggestions with 25
developers from large OSS projects on 122 real-world conflicts they
encountered. Results suggest that in practice, MergeBERT resolutions would be
accepted at a higher rate than estimated by automatic metrics for precision and
accuracy. Additionally, we use participant feedback to identify future avenues
for improvement of MergeBERT.Comment: ESEC/FSE '22 camera ready version. 12 pages, 4 figures, online
appendi
Detecting Semantic Conflicts using Static Analysis
Version control system tools empower developers to independently work on
their development tasks. These tools also facilitate the integration of changes
through merging operations, and report textual conflicts. However, when
developers integrate their changes, they might encounter other types of
conflicts that are not detected by current merge tools. In this paper, we focus
on dynamic semantic conflicts, which occur when merging reports no textual
conflicts but results in undesired interference - causing unexpected program
behavior at runtime. To address this issue, we propose a technique that
explores the use of static analysis to detect interference when merging
contributions from two developers. We evaluate our technique using a dataset of
99 experimental units extracted from merge scenarios. The results provide
evidence that our technique presents significant interference detection
capability. It outperforms, in terms of F1 score and recall, previous methods
that rely on dynamic analysis for detecting semantic conflicts, but these show
better precision. Our technique precision is comparable to the ones observed in
other studies that also leverage static analysis or use theorem proving
techniques to detect semantic conflicts, albeit with significantly improved
overall performance
Code merging using transformations and member identity
Conventionally, merging code files is performed using generic line-based merging algorithms (e.g., diff3) that are unaware of the syntax and semantics of the programming language, outputting conflicts that could be avoided. Structured and semistructured merging techniques are capable of reducing conflicts, but they still suffer from false positives (conflicts that could be avoided) and false negatives (conflicts that go undetected). We propose a merging technique that combines semistructured and transformation-based strategies, where conflict detection is aware of semantic aspects of the programming language. We extract transformations of two branches and apply a merging process that analyzes incompatible transformations, avoiding false positives and false negatives that occur in existing approaches. We developed Jaid, a prototype merging tool for Java based on the assumption that structural code elements evolve with attached UUIDs (representing identity). We performed an early experiment with 63 merge scenarios from two open-source projects to test the technique and assess its feasibility.info:eu-repo/semantics/publishedVersio
Expert Elicitation for Reliable System Design
This paper reviews the role of expert judgement to support reliability
assessments within the systems engineering design process. Generic design
processes are described to give the context and a discussion is given about the
nature of the reliability assessments required in the different systems
engineering phases. It is argued that, as far as meeting reliability
requirements is concerned, the whole design process is more akin to a
statistical control process than to a straightforward statistical problem of
assessing an unknown distribution. This leads to features of the expert
judgement problem in the design context which are substantially different from
those seen, for example, in risk assessment. In particular, the role of experts
in problem structuring and in developing failure mitigation options is much
more prominent, and there is a need to take into account the reliability
potential for future mitigation measures downstream in the system life cycle.
An overview is given of the stakeholders typically involved in large scale
systems engineering design projects, and this is used to argue the need for
methods that expose potential judgemental biases in order to generate analyses
that can be said to provide rational consensus about uncertainties. Finally, a
number of key points are developed with the aim of moving toward a framework
that provides a holistic method for tracking reliability assessment through the
design process.Comment: This paper commented in: [arXiv:0708.0285], [arXiv:0708.0287],
[arXiv:0708.0288]. Rejoinder in [arXiv:0708.0293]. Published at
http://dx.doi.org/10.1214/088342306000000510 in the Statistical Science
(http://www.imstat.org/sts/) by the Institute of Mathematical Statistics
(http://www.imstat.org
MOMIS: Exploiting agents to support information integration
Information overloading introduced by the large amount of data that is spread over the Internet must be faced in an appropriate way. The dynamism and the uncertainty of the Internet, along with the heterogeneity of the sources of information are the two main challenges for today's technologies related to information management. In the area of information integration, this paper proposes an approach based on mobile software agents integrated in the MOMIS (Mediator envirOnment for Multiple Information Sources) infrastructure, which enables semi-automatic information integration to deal with the integration and query of multiple, heterogeneous information sources (relational, object, XML and semi-structured sources). The exploitation of mobile agents in MOMIS can significantly increase the flexibility of the system. In fact, their characteristics of autonomy and adaptability well suit the distributed and open environments, such as the Internet. The aim of this paper is to show the advantages of the introduction in the MOMIS infrastructure of intelligent and mobile software agents for the autonomous management and coordination of integration and query processing over heterogeneous data sources
Almost Rerere: Learning to resolve conflicts in distributed projects
The concurrent development of applications requires reconciling conflicting code updates by different developers. Recent research on the nature of merge conflicts in open source projects shows that a significant fraction of merge conflicts have limited size (one or two lines of code) and are resolved with simple strategies that use code present in the merged versions. Thus the opportunity arises of supporting the resolution of merge conflicts automatically by learning the way in which developers fix them. In this paper we propose a framework for automating the resolution of merge conflicts which learns from the resolutions made by developers and encodes such knowledge into conflict resolution rules applicable to conflicts not seen before. The proposed approach is text-based, does not depend on the programming languages of the merged files and exploits a well-known and general language (search and replacement regular expressions) to encode the conflict resolution rules.
Evaluation results on 14,872 conflicts from 25 projects show that the system can synthesize a resolution for 49% of the conflicts occurred during the merge process (89% if one considers conflicts that have at least one similar conflict in the data set) and can reproduce exactly the same solution that human developers have applied in 55% of the cases (62% for single line conflicts)
Postmerger Strategies Healthcare Business Leaders Use to Influence Employee Engagement and Satisfaction
Mergers and acquisitions (M&A) are a growing phenomenon in the business world as companies are expanding their market share to compete globally. At some point, 1 out of 3 workers will be involved in an M&A. Guided by the social exchange theory, the purpose of this descriptive case study was to explore the satisfaction and engagement strategies of 8 health care leaders who had successfully implemented an M&A. The study population consisted of 4 leader and 4 nonleader employees employed at a healthcare facility in the North Central United States. All employees had been employed at the facility prior to and after the M&A and were current employees at the time of the study. Data were collected though audio-recorded, semistructured interviews as well as document review of company materials such as the employee handbook, mission, and vision. Once data were transcribed, the transcript review was completed by the participants to ensure accuracy. Data were coded and analyzed to reveal 5 themes or strategies: more frequent and transparent communication, intentional and structured leadership, increased trust and emotional engagement, increased focus on human resources, and positive corporate culture. Postmerger, these leaders had implemented changes regarding the corporate belief structure, advocated increased communication and teamwork, and promoted open and direct communication among staff and leadership. These findings may promote positive social change by increasing satisfaction and engagement in the healthcare employees at this facility, who may in turn provide better care to patients
Visually Characterizing Source Code Changes
International audienceRevision Control Systems (e.g., SVN, Git, Mercurial) include automatic and advanced merging algorithms that help developers to merge their modifications with development repositories. While these systems can help to textually detect conflicts, they do not help to identify the semantic consequences of a change. Unfortunately, there is little support to help release masters (integrators) to take decisions about the integration of changes into the system release. Most of the time, the release master needs to read all the modified code, check the diffs to build an idea of a change, and dig for details from related unchanged code to understand the context and potential impact of some changes. As a result, such a task can be overwhelming. In this article we present a visualization tool to support integrators of object-oriented programs in comprehending changes. Our approach named Torch characterizes changes based on structural informa- tion, authors and symbolic information. It mixes text-based diff information with visual representation and metrics characterizing the changes. The current implementation of our approach analyses Smalltalk programs, and thus we de- scribe our experiments applying it to Pharo, a large open-source system. We also report on the evaluations of our approach by release masters and developers of several open-source projects
- …