After more than 20 years of research and practice in software configuration management (SCM), constructing consistent configurations of versioned software products still remains a challenge. This article focuses on the version models underlying both commercial systems and research prototypes. It provides an overview and classification of different versioning paradigms and defines and relates fundamental concepts such as revisions, variants, configurations, and changes. In particular, we focus on intensional versioning, that is, construction of versions based on configuration rules. Finally, we provide an overview of systems that have had significant impact on the development of the SCM discipline and classify them according to a detailed taxonomy.
Merging revisions of software documents after development has branched into multiple lines is a difficult task. Previous approaches to merging are either based on text files or refer to specific languages. These approaches do not meet the requirements to a merge tool which is to be integrated into a multilingual structure-oriented environment. In this paper, we present a structure-oriented merge tool that is applicable to software documents (requirements definitions, software architecture descriptions, module implementations, etc.) written in arbitrary languages, preserves their context-free correctness, and also takes binding of identifiers to their declarations into account.
Managing the software development and maintenance process has been identified as a great challenge for several years. Software processes are highly dynamic and can only rarely be planned completely in advance. Dynamic task nets take this into account. They are built and modified incrementally as a software process is executed. Dynamic task nets have been designed t o solve important problems of process dynamics, including product-dependent structural evolution, feedbacks, and concurrent engineering. In order to describe editing and enactment (and their interaction) in a uniform way, task nets are formally defined by means of a programmed graph rewriting system.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.