Versioning Models

There is not yet a common agreement on basic versioning models. Tichy [Tic88] distinguishes between sequential revisions and parallel variants, both being part of a version group. But the ANSI/IEEE SCM standard uses versions and variants in the reverse meaning [ANS87]. Further, there is no agreement on the following topics: Is the versioning model linked to the data model, the product model (schema), the transaction model (e.g. uni-version subdatabases), or is it independent? At what granularity are \deltas" expressed, computed and merged { on the basis of whole les, text lines, or syntactical entities? And how is versioning combined with e.g. inheritance and parameterization? Does basic versioning only apply to atomic and textual objects, and not to composites or to the entire database? How to version relationships, and thus con gurations? How to express intentional version selection, and how to express constraints, defaults and preferences for such selections? Is the selection based on symbolic attribute values, that together constitute a version space. Can the constraints and attribute domains evolve over time? Given a system model with objects and relationships: is the product selection (AND-closure) done before the version selection within each version group (OR-choices), or vice versa, or intertwined? The session contains 4 papers. Pearl Brereton, Paul Singleton; Univ. Keele, UK: \SCM: Issues and Pay-o s of a deductive Approach": This discusses rule-based builds. Bradley R. Schmerl, Chris D. Marlin, Flinders Univ. of South Australia: \CM for dynamically Bound Systems": This discusses versioning constraints for building con gurations. Yi-Jing Lin, Steven P. Reiss; Brown Univ.: \CM in Terms of Modules": This paper discusses a ne-grained versioning of object-oriented modules, using delegation. But how to avoid proliferation of object variants during system con guration? Jacky Estublier, Rubby Casallas; LGI, Grenoble: \Three dimensional Versioning": This discusses three views of versions { historical revisions, logical (permanent) variants, and cooperative (temporary) variants. A rich basic versioning model is sought, allowing the user to select one of these views. Also, some object attributes may be non-versioned (e.g. status), while others are versioned (e.g. contents).