Path: utzoo!attcan!uunet!tut.cis.ohio-state.edu!ucbvax!network!ucsd!orion.cf.uci.edu!uci-ics!zardoz!ccicpg!cci632!rit!tropix!moscom!ur-valhalla!uhura.cc.rochester.edu!rochester!rutgers!cs.utexas.edu!csd4.milw.wisc.edu!uxc.cso.uiuc.edu!uxc.cso.uiuc.edu!m.cs.uiuc.edu!render
From: render@m.cs.uiuc.edu
Newsgroups: comp.software-eng
Subject: Re: Source Code Control
Message-ID: <39400025@m.cs.uiuc.edu>
Date: 22 Jul 89 19:49:00 GMT
References: <133@tirnan.UUCP>
Lines: 229
Nf-ID: #R:tirnan.UUCP:133:m.cs.uiuc.edu:39400025:000:9035
Nf-From: m.cs.uiuc.edu!render    Jun 16 14:49:00 1989


Written  5:52 pm  Jun 14, 1989 by hull@dinl.uucp:
>While having nothing to contribute at this time, I would like to read
>about formal models of SCM (with English descriptions) and
>object-oriented SCM.

Well, the thing about formal models of SCM and OO SCM is that there isn't
much published on either.  There are several papers describing version
control and SCM  systems that give data models for them.  There are few
papers that specifically give models;  Walter Tichy, Karen Huff, Ellen 
Borison and Dennis Heimbigner have written such papers.  I'll list the
references at the bottom of this posting.  As for OO SCM, a few people
are working on an OO data model for a SCM, including myself.  One group
is the Arcadia project, with whom Dennis Heimbigner is related (I believe).
Unfortunately I haven't seen any published models as such, though I'm
working on mine.  Many of the object-oriented database people address 
version control in their systems,  both from the point of maintaining 
multiple versions of data to dealing with dynamic schema evolution.  There 
have been a couple of good papers on models of this, and I'll also append 
those references.  The only actual OO programming system that addresses SCM 
that I know of is called Orwell.  It's a Smalltalk-based system that was 
designed to allow team programming, and deals with concurrent updates, 
change control and the like.  It's not real sophisticated, but it addresses 
the issues. Oh, for those interested I know of one paper on the rigorous 
development of a version control program using VDM.  I like it because it's
the one of the few attempts to apply formal development methods to SCM.
 
Anyway, I don't know how to make a short introduction into this stuff, though
I may try if I get inspired over the weekend.  If anyone has any specifics to 
talk about, I'll try to contribute.  Also, I'm always interested in hearing 
about any other related work or papers people know of.

Hal Render
render@cs.uiuc.edu
-----
%Here are the papers concerning SCM models (all references in bibtex format):
@inproceedings{borison,
    keywords=":scm:data models:process models:",
    author="Ellen Borison",
    title="{``A Model of Software Manufacture''}",
    booktitle="Proceedings of the IFIP International Workshop on Advanced 
	Programming Environments",
    address="Trondheim, Norway",
    month=jun,
    year=1987,
    pages="197--220" }
@article{Ditt88,
    keywords=":vc:dbms:data models:",
    title="{``Version Support for Engineering Database Systems''}",
    author="Klaus R. Dittrich and Raymond A. Lorie",
    journal="IEEE Transactions on Software Engineering",
    volume="14",
    number="4",
    month= apr,
    year=1988,
    pages="429--437" }
@inproceedings{heimbigner2,
    keywords=":arcadia:sde:scm:data models:",
    title="{``A Graph Transform Model for Configuration Management Environments''}",
    author="Dennis Heimbigner and Steven Krane",
    booktitle="Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering 
	Symposium on Practical Software Development Environments",
    address="Boston, Massachusetts",
    month=nov,
    year=1988,
    pages="216--225" }
@techreport{heimbigner3,
    keywords=":arcadia:scm:sde:data models:relations:",
    title="{Active Relations for Specifying \& Implementing Software Object 
	Management}",
    author="Dennis Heimbigner and Leon Osterweil and Sutton, Jr., Stanley",
    school="Department of Computer Science, University of Colorado",
    number="CS-CS-406-88",
    month= jul,
    year="1988"}
@inproceedings{huff81,
    keywords=":sde:dbms:scm:data models:",
    author="Karen E. Huff",
    title="{``A Database Model for Effective Configuration Management 
		in the Programming Environment''}",
    booktitle="Proceedings of the 5th International Conference on Software 
		Engineering",
    address="San Diego, CA",
    month= "March",
    year=1981,
    pages="54--61" }
@inproceedings{lint84,
    keywords=":dbms:data models:scm:views:",
    author="Mark A. Linton",
    title="{``Implementing Relational Views of Programs''}",
    booktitle="Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering 
	Symposium on Practical Software Development Environments",
    address="Pittsburgh, PA",
    month= "April",
    year=1984,
    pages="132--140" }
@incollection{lock83,
    keywords=":scm:vc:sde:data models:er:",
    title="{``Analysis of Version and Configuration Control in a Software 
	Engineering Environment''}",
    author="Peter C. Lockemann",
    booktitle="Entity-Relationship Approach to Software Engineering",
    Editor="C.G. Davis and S. Jajodia and P.A. Ng and R.T. Yeh",
    publisher="Elsevier Science Publishers",
    address="North-Holland",
    year=1983,
    pages="701--713" }
@inproceedings{minsky85,
    keywords=":darwin:sde:scm:data models:",
    title="{``Controlling the Evolution of Large Scale Software Systems''}",
    author="Naftaly H. Minsky",
    booktitle="Workshop on Software Engineering Environments for 
	Programming-in-the-Large",
    address="Harwichport, MA",
    month= "June",
    year=1985,
    pages="1--16" }
@inproceedings{grids,
    keywords=":scm:data models:",
    title="{``Grids:  A New Program Structuring Mechanism Based on Layered 
	Graphs''}",
    author="Harold L. Ossher",
    booktitle="Eleventh Annual ACM Symposium on Principles of Programming 
	Languages",
    month= jan,
    year="1984",
    pages="11--22"}
@techreport{clemma2,
    keywords=":clemma:scm:data models:",
    author="Hal S. Render and Roy H. Campbell",
    title="{The Design of the CLEMMA Configuration Librarian System}",
    institution="Dept. of Computer Science, University of Illinois at 
	Urbana-Champaign",
    number="UIUCDCS-R-88-1458",
    month=Oct,
    year=1988 }
@techreport{staudt,
    keywords=":sde:scm:data models:",
    keywords=":transformgen:software maintenance:sde:",
    title="{TransformGen: Automating the Maintenance of Structure-Oriented 
	Environments}",
    author="Barbara Staudt and Charles Krueger and David Garlan",
    school="Department of Computer Science, Carnegie Mellon University",
    number="CMS-CS-88-186",
    month= nov,
    year="1988"}
@inproceedings{tichy81,
    keywords=":vc:scm:data models:",
    title="{``A Data Model for Programming Support Environments''}",
    booktitle="Proceedings of the IFIP WG 8.1 Working Conference on Automated
	Tools for Information System Design and Development",
    author="Walter F. Tichy",
    month= oct,
    year="1981"}
@inproceedings{klahold,
    keywords=":vc:data models:dbms:",
    title="{``A General Model for Version Management in Databases''}",
    booktitle="Proceedings of the 12th International Conference on 
	Very Large Databases",
    author="Peter Klahold and Gunter Schlageter and Wolfgang Wilkes",
    address="Kyoto, Japan",
    month= aug,
    year="1986",
    pages="319--327"}
@incollection{lock83,
    keywords=":scm:vc:sde:data models:er:",
    title="{``Analysis of Version and Configuration Control in a Software 
	Engineering Environment''}",
    author="Peter C. Lockemann",
    booktitle="Entity-Relationship Approach to Software Engineering",
    Editor="C.G. Davis and S. Jajodia and P.A. Ng and R.T. Yeh",
    publisher="Elsevier Science Publishers",
    address="North-Holland",
    year=1983,
    pages="701--713" }
@inproceedings{perr87b,
    keywords=":sde:vc:mi:data models:",
    author="Dewayne E. Perry",
    title="{``Software Interconnection Models''}",
    booktitle="Proceedings of the 9th International Conference on Software 
	Engineering",
    address="Monterey, CA",
    month= "March",
    year=1987,
    pages="61--69" }

%Here are the OO papers:
@article{orwell,
    keywords=":scm:oo:pl:",
    title="{``Orwell: A Configuration Management System for Team Programming''}",
    author="Dave Thomas and Kent Johnson",
    journal="ACM SIGPLAN Notices",
    volume="23",
    number="11",
    month= Nov,
    year="1988",
    pages="135--141" }
@inproceedings{beech,
    keywords=":oo:dbms:vc:",
    title="{``Generalized Version Control in an Object-Oriented Database''}",
    author="David Beech and Brom Mahbod",
    booktitle="Proceedings of the 1988 IEEE Fourth International Conference 
	on Data Engineering",
    address="Los Angeles, California",
    month= feb,
    year="1988",
    pages="14--22" }
@inproceedings{katz87,
    keywords=":oo:vc:dbms:data models:",
    title="{``Managing Change in a Computer-Aided Design Database''}",
    author="R. H. Katz and E. Chang",
    booktitle="Proceedings of the 13th International Conference on 
		Very Large Data Bases",
    address="Brighton, England",
    month= sep,
    year=1987,
    pages="455--462" }

%Here's the rigorous development paper:
@article{cott84,
    keywords=":vc:sde:svce:",
    title="{``The Rigorous Development of a System Version Control Program''}",
    author="Ian D. Cottam",
    journal="IEEE Transactions on Software Engineering",
    volume="SE-10",
    number="2",
    month= mar,
    year=1984,
    pages="143--154" }