Path: utzoo!utgpu!water!watmath!clyde!rutgers!husc6!cca!g-rh
From: g-rh@cca.CCA.COM (Richard Harter)
Newsgroups: comp.software-eng
Subject: Re: Development Control: terminology needed
Message-ID: <22435@cca.CCA.COM>
Date: 16 Dec 87 21:54:32 GMT
References: <336@dlhpedg.co.uk>
Reply-To: g-rh@CCA.CCA.COM.UUCP (Richard Harter)
Organization: Computer Corp. of America, Cambridge, MA
Lines: 54

I will just mention that we (Software Maintenance and Development Systems)
sell a software system for managing development control in complex 
environments by way of background.

The terminology problem is messy.  Different people use different nomenclature.
We use the term "justification" instead of "reconciliation", as in adjusting
one change to fit another.  The term is no better; either will do.

We don't have a good term for the set of directories and files that occur
in a development effort.  We call it a "development environment" which is
clumsy and misleading.  The other term used is a "work project".  However
"build" and "view" have their problems too.

A "build", as a noun, is the result of doing a build operation.  It is the
result of a build operation in the "work project".  "View" is plausible;
however it implies that the view of the software is an invariant of the
"work project".  This need not be true, and using the term "view" will
put blinkers on you.

Instead of product, you may want to use the term configuration, which is
fairly standard, as in configuration control.  A configuration is a
description a collection of pieces and  their relationships, including the
versions of each piece.  A good, but long winded, term for the directories,
files, etc is a "configuration change environment" or CCE for short.

I like the term "view".  We use the term "version" instead.  However in
our system all versions are explicitly versions of the entire body of
software being managed.  When you specify a particular 'version' you
automatically specify the entire view of the software.  This all makes
sense, but it confuses people who are accustomed to thinking of versions
only in terms of individual files.

The terms "migration" and "change migration" are fairly standard for
moving "configuration changes" (itself a standard term) from one 
configuration to another.  Migration is a part of integration; however
integration usually refers to the cycle of building, testing, and justification
that is implicit in folding in changes.

Your system seems to have the multiple level concept for which we also
don't have a good term.  In a multiple level system there are several
levels of official versions, corresponding to how 'official' a change
is.

It is useful to distinguish between static and dynamic 'views'.  A static
view is one which is frozen, e.g release 5.2 of the foobar system.  A
dynamic (plastic) view is one which changes over time, e.g the latest
version of the foobar system.  In general it is best if dynamic views
have a fixed meaning associated with them.

-- 

In the fields of Hell where the grass grows high
Are the graves of dreams allowed to die.
	Richard Harter, SMDS  Inc.