LMS supports the process of program development by providing the “borrowing” and “return” functions for managing members (referred to in this manual as the “borrowing mechanism”) and by offering an efficient means of updating program systems (referred to as the “make functionality”).
The borrowing mechanism provides a means of controlling access to members which are being worked on by two or more developers in a project. The mechanism is intended to prevent a member (member version) or a sequence of members (“development line”) from being modified by two or more persons simultaneously. Once the mechanism has been activated for a library or member, only the user who has been entered as the current holder of the original version (base version) is allowed to save modifications. When the member is saved, certain information is added to the member’s new status, including the time stamp of the return, the user ID of the holder and perhaps a user-specific comment. The processing status of the member is output as an attribute in the directory and can be used as a selection criterion.
The make functionality describes the dependencies which exist between library members (including the DMS files) of a program system and the rules (“actions”) for updating them. LMS provides users with a number of make substatements, and the standard SDF statements may also be used.
For a given target component (“TARGET-OBJECT”), the make functionality describes the original components (“FROM-OBJECTs”) on which the target is dependent and the actions (“ACTIONS”) which must be performed to generate the target component.
These actions may be specified either directly or in the form of “standard” actions. Standard actions need be declared only once for a given pair of member types (“TARGET-TYPE”, “FROM-TYPE”). The components can also be referenced in the individual steps of an action (“text lines”) by means of S variables. Starting with the selected target components, all the targets are newly generated if the original components of a line have been changed since the target was last generated. Not just the selected target components, but all the related original components represent further subtargets which are handled analogously. The functionality generates a BS2000 procedure which can be started synchronously or asynchronously. make offers a means of efficiently updating program systems since it carries out only those actions which are absolutely necessary.
In order to be available for future use, the sequence of make substatements should be stored in its own member, which is called a “makefile”.