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.