Results 1 - 10
of
16
A state-of-the-art survey on software merging
- IEEE Transactions on Software Engineering
, 2002
"... AbstractÐSoftware merging is an essential aspect of the maintenance and evolution of large-scale software systems. This paper provides a comprehensive survey and analysis of available merge approaches. Over the years, a wide variety of different merge techniques has been proposed. While initial tech ..."
Abstract
-
Cited by 89 (5 self)
- Add to MetaCart
AbstractÐSoftware merging is an essential aspect of the maintenance and evolution of large-scale software systems. This paper provides a comprehensive survey and analysis of available merge approaches. Over the years, a wide variety of different merge techniques has been proposed. While initial techniques were purely based on textual merging, more powerful approaches also take the syntax and semantics of the software into account. There is a tendency towards operation-based merging because of its increased expressiveness. Another tendency is to try to define merge techniques that are as general, accurate, scalable, and customizable as possible, so that they can be used in any phase in the software life-cycle and detect as many conflicts as possible. After comparing the possible merge techniques, we suggest a number of important open problems and future research directions. Index TermsÐSoftware merging, large-scale software development, merge conflicts, conflict detection, conflict resolution. æ 1
Automated Support for Framework-Based Software Evolution
, 2003
"... In this paper, we show how elaborate support for framework-based software evolution can be provided based on explicit documentation of the hot spots of object-oriented application frameworks. Such support includes high-level transformations that guide a developer when instantiating applications from ..."
Abstract
-
Cited by 30 (5 self)
- Add to MetaCart
In this paper, we show how elaborate support for framework-based software evolution can be provided based on explicit documentation of the hot spots of object-oriented application frameworks. Such support includes high-level transformations that guide a developer when instantiating applications from a framework by propagating the necessary changes, as well as application upgrading facilities based on these transformations. The approach relies on active declarative documentation of the design and evolution of the framework's hot spots, by means of metapatterns and their associated transformations.
A Declarative Evolution Framework for Object-Oriented Design Patterns
, 2001
"... Object-oriented design patterns and high-level refactorings are popular means of implementing and evolving large object-oriented software systems. Unfortunately, these techniques are inadequately supported at implementation level by current-day software development environments. To alleviate this pr ..."
Abstract
-
Cited by 20 (5 self)
- Add to MetaCart
Object-oriented design patterns and high-level refactorings are popular means of implementing and evolving large object-oriented software systems. Unfortunately, these techniques are inadequately supported at implementation level by current-day software development environments. To alleviate this problem, we propose to use the promising technique of declarative metaprogramming. It offers a tight, yet flexible, symbiosis between a base language and a metalevel declarative reasoning engine. It provides a uniform and language-independent way to specify design patterns and transformations declaratively, to instantiate patterns and generate code for them, and to deal with the evolution of these pattern instances. Providing support for evolution of a software system in terms of the design pattern instances it uses is the main emphasis of this paper. 1.
Conditional Graph Rewriting as a Domain-Independent Formalism for Software Evolution
- In the Applications of Graph Transformations with Industrial Relevance International Workshop, AGTIVE’99, p. 127, Kerkrade, The Netherlands. LNCS 1779
, 2000
"... This paper presents a formal approach for managing unanticipated software evolution. Labelled typed nested graphs are used to represent arbitrarily complex software artifacts, and conditional graph rewriting is used for managing evolution of these artifacts. More specifically, we detect structural a ..."
Abstract
-
Cited by 16 (4 self)
- Add to MetaCart
This paper presents a formal approach for managing unanticipated software evolution. Labelled typed nested graphs are used to represent arbitrarily complex software artifacts, and conditional graph rewriting is used for managing evolution of these artifacts. More specifically, we detect structural and behavioural inconsistencies when merging parallel evolutions of the same software artifact. The approach is domain-independent, in the sense that it can be customised to many different domains, such as software architectures, UML analysis and design models, and software code.
Transformation dependency analysis - A comparison of two approaches
- Langages et Modèles à Objets (LMO 2006)
, 2006
"... Transformation dependency analysis is crucial to provide better tool support for current-day software development techniques – two prominent examples are program refactoring and model transformation. Unfortunately, it is unclear how existing tools that provide generic support for these techniques re ..."
Abstract
-
Cited by 6 (2 self)
- Add to MetaCart
Transformation dependency analysis is crucial to provide better tool support for current-day software development techniques – two prominent examples are program refactoring and model transformation. Unfortunately, it is unclear how existing tools that provide generic support for these techniques relate to each other, due to their difference in terminology, concepts and formal foundations (graphs versus logic). This article reports on the results of an experimental comparison between two tools: AGG and Condor. Among others, we noticed a performance advantage of several orders of magnitude for the logic-based approach.
A category-theoretic approach to syntactic software merging
- In ICSM ’05: Proceedings of the 21st IEEE International Conference on Software Maintenance (ICSM’05
, 2005
"... Software merging is a common and essential activity during the lifespan of large-scale software systems. Traditional textual merge techniques are inadequate for detecting syntactic merge conflicts. In this paper, we propose a domain-independent approach for syntactic software merging that exploits t ..."
Abstract
-
Cited by 6 (2 self)
- Add to MetaCart
Software merging is a common and essential activity during the lifespan of large-scale software systems. Traditional textual merge techniques are inadequate for detecting syntactic merge conflicts. In this paper, we propose a domain-independent approach for syntactic software merging that exploits the graph-based structure(s) of programs. We use morphisms between fuzzy graphs to capture the relationships between the structural elements of the programs to be merged, and apply a truth ordering lattice to express inconsistencies and evolutionary properties as we compute the merge. We demonstrate the approach with a three-way consolidation merge in a commercial software system; in particular, we show how analyzing merged call structures can help developers gain a better understanding and control of software evolution. 1
Transformational Software Evolution by Assertions
, 2001
"... This paper explores the use of software transformations as a formal foundation for software evolution. More precisely, we express software transformations in terms of assertions (preconditions, postconditions and invariants) on top of the formalism of graph rewriting. This allows us to tackle scalab ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
This paper explores the use of software transformations as a formal foundation for software evolution. More precisely, we express software transformations in terms of assertions (preconditions, postconditions and invariants) on top of the formalism of graph rewriting. This allows us to tackle scalability issues in a straightforward way. Useful applications include: detecting syntactic merge conflicts, removing redundancy in a transformation sequence, factoring out common subsequences, etc.
A Discussion of Refactoring in Research and Practice
, 2004
"... In this paper we provide a detailed overview of the field of software restructuring and refactoring from a formal as well as a from a practical point of view. After summarizing refactoring's current applications and tool support, we discuss the current research on refactoring in a number of essentia ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
In this paper we provide a detailed overview of the field of software restructuring and refactoring from a formal as well as a from a practical point of view. After summarizing refactoring's current applications and tool support, we discuss the current research on refactoring in a number of essential research questions. Lastly, we highlight the key directions in which refactoring research is moving forward.
Consistency Checking in an Infrastructure for Large-Scale Generative Programming ∗
"... However, permission to reprint/republish this material for advertising or promotional purposes or for creating new collective works for resale or redistribution to servers or lists, or to reuse any copyrighted component of this work in other works must be obtained from the IEEE. ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
However, permission to reprint/republish this material for advertising or promotional purposes or for creating new collective works for resale or redistribution to servers or lists, or to reuse any copyrighted component of this work in other works must be obtained from the IEEE.
Refactoring: Current research and future trends
- In Proceedings of Third Workshop on Language Descriptions, Tools and Applications
, 2003
"... Lab on Re-Engineering ..."

