Results 1 - 10
of
50
Version Models for Software Configuration Management
- ACM Computing Surveys
, 1995
"... This paper focuses on the version models underlying both commercial systems and research prototypes. It provides an overview and classification of different versioning paradigms. Furthermore, it defines and relates fundamental concepts such as revisions, variants, configurations, and changes. In par ..."
Abstract
-
Cited by 169 (8 self)
- Add to MetaCart
This paper focuses on the version models underlying both commercial systems and research prototypes. It provides an overview and classification of different versioning paradigms. Furthermore, it defines and relates fundamental concepts such as revisions, variants, configurations, and changes. In particular, we focus on intensional versioning, i.e., construction of versions based on configuration rules. Finally,we provide an overview of systems whichhave had significant impact on the development of the SCM discipline, and classify them according to a detailed taxonomy
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
Predicting source code changes by mining change history
- IEEE Transactions on Software Engineering
"... ©2004 IEEE. Personal use of this material is permitted. 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 ..."
Abstract
-
Cited by 86 (0 self)
- Add to MetaCart
©2004 IEEE. Personal use of this material is permitted. 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
Reengineering of Configurations Based on Mathematical Concept Analysis
- ACM Transactions on Software Engineering and Methodology
, 1996
"... We apply mathematical concept analysis to the problem of reengineering configurations. Concept analysis will reconstruct a taxonomy of concepts from a relation between objects and attributes. We use concept analysis to infer configuration structures from existing source code. Our tool NORA/RECS will ..."
Abstract
-
Cited by 45 (6 self)
- Add to MetaCart
We apply mathematical concept analysis to the problem of reengineering configurations. Concept analysis will reconstruct a taxonomy of concepts from a relation between objects and attributes. We use concept analysis to infer configuration structures from existing source code. Our tool NORA/RECS will accept source code, where configuration-specific code pieces are controlled by the preprocessor. The algorithm will compute a so-called concept lattice, which —when visually displayed — offers remarkable insight into the structure and properties of possible configurations. The lattice not only displays tine-grained dependencies between configurations, but also visualizes the overall quality of configuration structures according to software engineering principles. In a second step, interferences between configurations can be analyzed in order to restructure or simplify configurations. Interferences showing up in the lattice indicate high coupling and low cohesion between configuration concepts. Source files can then be simplified according to the lattice structure. Finally, we show how governing expressions can be simplified by utilizing an isomorphism theorem of mathematical concept analysis.
Towards a Uniform Version Model for Software Configuration Management
- In Proceedings of the Seventh International Workshop on Software Configuration Management, number 1235 in Lecture Notes in Computer Science
, 1997
"... A rich variety of version models for software configuration management (SCM) has been proposed over the years, and understanding of the basic concepts and their interrelations has been growing accordingly. ..."
Abstract
-
Cited by 19 (6 self)
- Add to MetaCart
A rich variety of version models for software configuration management (SCM) has been proposed over the years, and understanding of the basic concepts and their interrelations has been growing accordingly.
Software Configuration Management for the 21st Century
- Bell Labs Technical Journal
, 1997
"... This paper discusses the characteristics of SCM systems, the future SCM challenges for Lucent Technologies, the SCM systems now being used within the company, and the issues surrounding successful deployment of an SCM system. The Essence of SCM ..."
Abstract
-
Cited by 18 (0 self)
- Add to MetaCart
This paper discusses the characteristics of SCM systems, the future SCM challenges for Lucent Technologies, the SCM systems now being used within the company, and the issues surrounding successful deployment of an SCM system. The Essence of SCM
A Layered Architecture for Uniform Version Management
, 2000
"... Version management is a key function of software configuration management (SCM). A big variety of version models has been realized in both commercial systems and research prototypes. These version models differ with respect to the objects put under version control (files, directories, entitles, obje ..."
Abstract
-
Cited by 18 (1 self)
- Add to MetaCart
Version management is a key function of software configuration management (SCM). A big variety of version models has been realized in both commercial systems and research prototypes. These version models differ with respect to the objects put under version control (files, directories, entitles, objects), the organization of versions (version graphs rs. multi-dimensional version spaces), the granularity of versioning (whole software products rs. individual components), emphasis on states rs. emphasis on changes (staters. change-based versioning), rules for version selection, etc. We present UVM, a Uniform Version Model - and its support architecture - for SCM. Unlike other unification approaches such as e.g. UML for object-oriented modeling, we do not assemble all the concepts having been introduced in previous systems. Instead, we define a base model that is built on a small number of concepts. Specific version models may be expressed in terms of this base model. Our approach
Yesterday, my program worked. Today It Does not. Why?
- In Proc. of the 7th European Software Engineering Conf./7th ACM SIGSOFT Symp. on the Foundations of Software Engineering (ESEC/FSE’99
, 1999
"... Imagine some program and a number of changes. If none of these changes is applied ("yesterday"), the program works. If all changes are applied ("today"), the program does not work. Which change is responsible for the failure ? We present an efficient algorithm that determines the minimal set of f ..."
Abstract
-
Cited by 18 (0 self)
- Add to MetaCart
Imagine some program and a number of changes. If none of these changes is applied ("yesterday"), the program works. If all changes are applied ("today"), the program does not work. Which change is responsible for the failure ? We present an efficient algorithm that determines the minimal set of failureinducing changes. Our delta debugging prototype tracked down a single failureinducing change from 178,000 changed GDB lines within a few hours.

