|
|
 |
|  | |
 |
SCLM: IBM's Best Kept Secret
TR29.2194
Marsha O'Brien and Beth Shelly
ISPF/PDF and SCLM Development
Research Triangle Park, N.C.
Table of Contents
Back to
top
Abstract
Software Configuration and Library Manager (SCLM) offers software
developers
and project administrators the tools they need to develop and manage
software projects.
SCLM is an optionally installed feature of Interactive
System Productivity Facility (ISPF). When you select SCLM from the
ISPF primary option menu, SCLM
provides programmers an easy-to-use interface for
developing and maintaining programs. There is also
a service interface which allows developers and project administrators
more flexibility in support of
different processes.
The components of a software project are kept in hierarchies of
libraries.
Project administrators
define
hierarchies using SCLM macros.
SCLM provides solutions to library management and configuration
problems. For library management,
member locking prevents developers from overlaying each
other's changes.
Promotion moves members from one level to the next
in the hierarchy.
SCLM provides configuration management through the build
function.
Build invokes compilers or other translators and
ensures that the outputs in a given group have been created
by the inputs. The object and load module are always synchronized
with the source from which it was built.
When a source member is promoted, the object and load module
that resulted from the build are promoted at the same time, so that
the inputs and outputs are synchronized at every level.
SCLM only builds members that
have changed or members that include members that have changed since the
last build.
A variety of languages are supported, and if you need more
languages, SCLM is
flexible enough to let you define them yourself.
The utilities help: migrate to SCLM, create a member list to
perform your SCLM functions, report on the contents of your
application, export or import accounting data, view audit information,
and retrieve previous versions of members.
ITIRC KEYWORDS
- build
- configuration management
- development process
- hierarchy
- library administrator
- library management
- member locking
- project administrator
- promote
- Interactive System Productivity Facility
- ISPF
- software configuration
- Software Configuration and Library Manager
- SCLM
- versioning
Back to
top
About the Authors
Beth Shelly has been a member of the ISPF development team since 1982. She is currently on the SCLM development team, and provides level 3 support for SCLM.
Marsha O'Brien leads the SCLM development team and
provides level 3 support for SCLM.
She frequently presents SCLM sessions at the SHARE user group meetings.
Back to
top
Introduction
Are you
looking for a library manager or software configuration manager
for MVS?
You could have them and not even know it.
IBM's Software Configuration and Library Manager (SCLM) provides
both. SCLM
was
first introduced in Version 3 of the
Interactive System Productivity
Facility (ISPF).
SCLM is an installable option of
ISPF, so if you already have ISPF, SCLM is free!
Library Management
Library
management products have been around for a long time.
They have
traditionally been used to manage source code and for the versioning
and auditing of changes to the source.
Some products also provide
a mechanism, often called promotion,
for moving the source code from one set of staging libraries
to the next.
SCLM provides all of these library management functions.
Configuration management
Configuration management, although an old friend in the
hardware arena, is a newer concept in software application development.
Software configuration management tools track how all
of the pieces of
an application fit together - not just the source code, but the objects
and load modules as well.
Some products, like SCLM, go even farther and
allow the specification of additional relationships, such as which
testcase or publication is associated with a source module.
Build is a configuration management function which invokes translators,
such as compilers, assemblers, and linkage editors.
Configuration
management tools use information about how an application is put
together to control the build and promotion
of the
application.
In the best products, the build function is optimized
such that only the members that need to be regenerated are built when a
change is made, rather than rebuilding
the entire application.
Tools in this class, such as SCLM, also provide
for secure promotes - they ensure that all of the components of
an application are synchronized
(objects and load modules were generated
from the current level of the source code) before allowing the
movement of the application from one stage to the next in the development
or maintenance process.
SCLM Projects
SCLM uses hierarchies to represent the stages in your
development and maintenance processes.
The number and content of
these hierarchies is defined by each customer: you can choose to store
all of your applications in one hierarchy or have one for each
application; you may have one hierarchy to define your development
process and another one for maintenance. It's up to you.
Each hierarchy is referred to as an SCLM PROJECT. Libraries in a
hierarchy are arranged in GROUPs.
Within each group, SCLM TYPEs are used
to represent the different kinds of application data that will be
controlled by SCLM (source, object, load, testcase, etc.).
All
application data is stored in partitioned data sets, logically
referred to by project.group.type within SCLM.
Figure 1. Sample development hierarchy.

Figure 1 shows an example of a development hierarchy.
In this example, the project name is PROJ1. RELEASE, TEST, DEV1, and
DEV2 are all the
groups in the hierarchy.
Groups DEV1 and DEV2 make up the development
level.
Groups are made up of libraries. Each of the
boxes represents a library. The libraries in group DEV1 are:
- PROJ1.DEV1.SOURCE
- PROJ1.DEV1.OBJ
- PROJ1.DEV1.LOAD
- PROJ1.DEV1.SCRIPT
- PROJ1.DEV1.DOC
If your data set naming convention is different than
project.group.type,
you can use
flexible data set
naming to map these logical names to the names of the physical
data sets.
SCLM uses VSAM (Virtual Storage Access Method)
data sets to store all of the information that
it needs about the application and its components.
SCLM never
updates the application data itself; it is preserved intact.
This is in strong contrast to some other
products where updates are made to the application data in order to
ensure synchronization and control.
SCLM and ISPF
If you are
currently using ISPF, then you already know how to use SCLM!
SCLM view and browse functions are the same as its ISPF counterparts.
The SCLM edit function is built on top of ISPF edit. It supports the
ISPF edit macros and commands, language sensitive editing, and the
edit COMPARE command. From a user's perspective, an SCLM edit
session
is no
different than an ISPF edit session.
All of the SCLM processing to
verify the group being used and to draw down and lock the member
is transparent to the user. An ISPF configuration table option
determines whether or not a member can be accessed from outside of
SCLM.
If such access is allowed and
the data is changed, SCLM does not allow a build or promote
until the member is either edited again from the SCLM editor or
migrated back into SCLM using the Migration Utility.
Back to
top
SCLM Functions
Develop your applications
If you are a developer, to get into SCLM, all you have to do is
select option 10 from the ISPF Primary Option Menu.
The SCLM Main Menu, shown in the following figure,
is a primary option panel, so that you can
use the jump function to navigate between SCLM options, without ever
leaving SCLM.
Figure 2. SCLM Main Menu
There are 6 options on the SCLM Main Menu to help you develop
and maintain your applications. They are:
- View
- Edit
- Utilities
- Build
- Promote
- Command
View Option
SCLM's view option is an interface to ISPF view. SCLM view
automatically fills the ISPF library entry fields to the
project hierarchy based on
the
SCLM Main Menu
project, alternate project, and
group fields.
Edit Option
When you want to create or change members
in the hierarchy, you use the SCLM editor.
SCLM keeps
track of which types of members are editable, such as source code
and messages, and which types of members are not, such as object and
load.
SCLM uses the ISPF editor with several additional features. One
of the most important features is member locking. If you edit a member,
SCLM keeps anyone else from updating and promoting
it without letting you know.
When you promote the member, SCLM unlocks it and another developer
can edit it.
Every member in SCLM has a language associated with it. The
editor has a primary command that gives you the opportunity to
assign a language to the member.
Each language in the
project has a parser associated with it and edit parses each member when
it is saved.
The most important job
of the parser is to track included members, whether they are COBOL
copybooks, PL/I includes, or SCRIPT imbeds. This tells build
if any member needs to be rebuilt when a member it includes
is changed.
You can edit a member that someone else is editing at the same time
by using authorization codes.
You supply the authorization code on
the SCLM Edit - Entry panel.
If
someone is updating a member that you need, you can use a different
authorization code, make the changes in your library, and
merge them later.
Edit is where you specify change codes for members.
Change codes are a way
of tagging members with a problem number or the name of a functional
enhancement. This groups members together. That way, any members
you
change
to fix a problem or add a function can be built and promoted
together.
Utilities Option
SCLM provides 9 utilities to make application development and
maintenance easier. They are:
- Library
- Ada Sublibrary Management
- Migration
- Database Contents
- Architecture Report
- Export
- Import
- Audit and Version
- Delete Group
These utilities are explained below:
- Library Utility
The library utility is the one-stop shopping place of SCLM.
Almost everything that a developer would want to do can be done within
the library utility.
The most basic function of the library utility is to provide
a list of members, either from a single library, or from the entire
promotion
hierarchy, starting from a given library up to the top group.
You can select to
browse, edit, view, build, and delete any member on the list.
The member list also allows you to update a member's
authorization code.
The library utility is the place where SCLM makes its
accounting information available to you. The accounting information
comes in two parts: the accounting record, which is created when a
member is locked, and the build map record, which is created when
a member is built.
The accounting record tells who updated the member, what language
it is, when the member was last promoted, and lots of other information
used by SCLM. It displays the statistics generated by the
parser, such as how many comment lines and
non-comment lines are in the
member. You can display a list of all the change codes that have been
used for the member, and you can delete any change codes you no longer
need. If you want, you can look at the list of members that this member
includes, or a list of compilation units, or user entries.
The build map record contains general build map information,
such as the language and language version,
the name and type of the build map, and the date and
time that the build map was created.
If you choose to browse the build map
contents, SCLM displays a list of all the members that
are involved in the build of the
selected member. There is a keyword to tell why the
member was included, the member name, the type name, and the date and
time the member was last modified.
- Ada Sublibrary Management Utility
Ada processing creates intermediate forms of compilation units.
SCLM tracks intermediate forms of compilation units. The Ada
sublibrary management utility lets you browse and delete the
intermediate forms and the accounting records that track them.
- Migration Utility
The migration utility gives you all of the SCLM functions of the
editor, but without the editor.
The migrate function locks members,
and assigns authorization codes and change codes to a member or
group of members. Migrate parses members according to the language
you specify.
Migration is useful for introducing lots of members to SCLM at
one time, as when first starting a project.
Members can be migrated
in batch or foreground mode.
You can choose to have the migration stop processing as soon as a
parser gets an unacceptable return code. You can choose to migrate
members that already have accounting records, or you can have migrate
keep the existing accounting records.
- Database Contents Utility
The database contents utility produces a report that
is your window into the SCLM's
view of your project. You use variables to design the report you
want. You can select accounting records, build maps, or
both. If you want, you can choose to see only records containing
certain change codes, authorization codes, languages, or userids,
or you can limit the report to certain hierarchies.
- Architecture Report Utility
The architecture report utility gives you information about all
the components in your application.
The first member of the report gives you a visual representation of
the architecture structure. The second member of the report is
a cross reference section that helps you determine the origin of
a member.
- Export Utility
The export utility copies an image of the accounting database. Using
the export utility, you can either archive your accounting database, or
send it to another system.
- Import Utility
The Import Utility reintroduces an exported database into SCLM.
- Audit and Version Utility
The audit and version utility allows you to view SCLM audit records,
retrieve a previous version of a member or delete an audit record and
associated version. A version can be retrieved into an SCLM development
group or a non-SCLM controlled partitioned or sequential data set.
- Delete Group Utility
The delete group utility deletes
accounting records, build maps, or build outputs associated with a
specified group .
Build Option
Build is the core of SCLM's configuration management. Build's job
is to determine
which members need to be translated, invoke the correct
translators, and store the outputs in the correct libraries.
One way SCLM saves processing time is to regenerate
only the members that are effected by a change when
a build is requested.
A build translator can be a compiler, an assembler, a script
processor, or anything else you can write a language definition
for.
You can build a single member or an architecture definition.
Architecture definitions let you define which members to build and
how to build them.
An architecture definition is a member of a library in the hierarchy.
You write an architecture definition using a simple keywords. There
is a model available from the edit MODEL command, in the ARCHDEF model
class. The model gives the syntax of the valid architecture definition
statements.
You can have builds that
are one step, such as assembling a program to object, or you can have
builds with many steps, such as, compile, link, and DB2 bind.
Build has several modes which allow you to build until you get
an error, continue building even if you have an error, or build
members that have already been built.
Members can be built
in batch or foreground mode.
Builds can take place on the host or on the workstation.
SCLM is shipped with examples in the sample library
to show you how to set up a language
definition, and additional data sets to tell SCLM how to build
on the workstation.
Promote Option
The promote function moves members from one level of the hierarchy
to the next.
You can promote a single member or an architecture definition.
When you promote an architecture definition, the architecture definition
and all of the members included by the architecture definition are
promoted, including other architecture definitions.
If a member has changed since it was last built, the promote function
stops and displays a message.
This is how promote ensures that
the outputs are synchronized with the inputs.
The project administrator can define groups to be key or
non-key. When you promote from a non-key group, the
members
are copied from one group to the next. If you promote from
a key group, the members are moved
from the lower level into the
higher one.
Promote has several modes which allow you to promote until you get
an error, continue promoting even if you have an error, or promote
members even if they have not been built.
Members can be promoted
in batch or foreground mode.
Command Option
The Command option has an input field where you can execute SCLM
commands, REXX execs, CLISTs, or TSO commands.
Back to
top
Extend SCLM's Development Environment
For people who want to use REXX, CLIST, or a programming
language to work with controlled libraries, SCLM provides the
following services:
- ACCTINFO
- Retrieves information about an SCLM controlled member into ISPF
variables and tables
- BUILD
- Build a member
- DBACCT
- Retrieve accounting records for a member
- DBUTIL
- Generate a tailored report of the data base
- DELETE
- Delete database components
- DELGROUP
- Delete a group of database components
- DSALLOC
- Allocate a hierarchy view to a ddname
- END
- End an SCLM services session
- EXPORT
- Extract SCLM accounting information for a group
- FREE
- Free an SCLM ID
- IMPORT
- Import SCLM accounting information to the current project
- INIT
- Generate an SCLM ID
- LOCK
- Lock a member in a development library
- MIGRATE
- Create accounting information for selected members
- PARSE
- Parse a member for statistical and dependency information
- PROMOTE
- Promote a member from one library to another
- RPTARCH
- Generate an architecture report
- SAVE
- Lock, parse, and store a member
- SNAPSHOT
- Extract SCLM control information and populate Repository Manager
- START
- Generate an application ID for a services session
- STORE
- Store member information in an accounting record
- UNLOCK
- Unlock a member in a development library
- VERDEL
- Delete version information
- VERINFO
- Retrieve version information
- VERRECOV
- Recover a version
Most of these services are the same as
functions available from SCLM panels, or are subsets of functions.
Back to
top
Define SCLM Projects
If you are a project administrator, SCLM provides you with assembler
macros to allow you to define the project for your users.
When the project definition is assembled and linked, SCLM uses
it to determine information it needs to perform the actions you
request.
Some macros define the hierarchy. They tell SCLM:
- project name
- what groups are
in the hierarchy
- which group each group promotes into
- which authorization codes allow promotion into which groups
- which types are in
the hierarchy
- if a
member is not found in a given type, which other types to search.
Some macros tell SCLM how to build applications.
They define information
such as:
- language name
- name of the translator to invoke
- library where the translator is located
- which version of the translator to invoke
- translator options
- which data sets to allocate to which ddnames
- where included members are located
- libraries necessary for processing, but not controlled by SCLM.
Then there are the macros that specify control information for
SCLM. They specify:
- whether to perform auditing and versioning
- what VSAM data sets to use for the accounting database
- whether to have secondary accounting databases
- if any alternate control information is needed for a particular
group
- what DASD unit to use.
Back to
top
SCLM Features
Whether you use SCLM for developing new products,
maintaining existing products, or storing vendor code, SCLM provides
the functions you need to manage your libraries.
SCLM's features help
project
administrators to structure the hierarchies,
programmers to perform
day-to-day development and maintenance tasks,
and
auditors to
track changes.
Back to
top
Develop a Software Product
Develop software components
Since SCLM is part of ISPF,
it is easy
for those who are used to using ISPF to use SCLM.
The concept of
concatenated libraries in ISPF, which are evident on the entry
panels for edit, view, and many other options,
is consistent with SCLM's hierarchical approach to library management.
The SCLM panels are consistent with ISPF's user interface, which
means that developers do not have to waste precious time
learning something new.
When you develop members in SCLM, you use
ISPF's editor with a few added features to support library and
configuration management. In fact,
SCLM makes direct use of ISPF's browse, view, and
edit functions, so that developers who are used to ISPF have no
trouble learning to use these parts of SCLM.
Convert an existing application to SCLM control
Whether your application is "out-of-control" or you are
migrating your application from another library management system,
you can use a utility to put your members under SCLM control.
SCLM's migration utility sets the initial controls for members and
parses the member according to the language you specify.
Back to
top
Manage Libraries
Lock members
The basic function of a library management system is to control
updates to members. If one developer is updating a member, no other
developer
else is
allowed to update it until the first person is done. This function,
called member locking, provides source member control in SCLM.
Promote members
Another issue in source member control is defining how members
are moved within the hierarchy.
SCLM allows project administrators to define hierarchies that have
as many developers and as many levels as storage allows.
In SCLM, members are moved by means of
promotion.
Promotion moves a member from one level of the hierarchy to the next,
according to how the project administrator has defined the hierarchy.
Back to
top
Configure Your Applications
Build members
SCLM can build your members for you using translators that you
specify.
Some examples of translators are:
- compilers
- BookMaster
- Dialog Tag Language
SCLM offers examples to show how to invoke
many common languages. These can be modified to use different data
set names, compiler options, or compiler names. If you need a
language that is not provided, you
can add your own, using one of the examples as a starting point.
Relate Members
You can define
how members relate to each other, using SCLM's architecture definitions.
Architecture definitions allow you to relate all kinds of members,
so they can be built and promoted as a group. For example, if you
are adding new function to your application,
you
might want to have your source code, object, load, DTL source,
generated panels, messages,
design documentation, and user documentation for the new function
all in one architecture.
On the other hand, you might want to have all of your source
parts in on architecture, so that if you change a member that is
included in most of the source members, you only have to build
that one architecture. The same member can be included in more
than one architecture definition, leaving you flexibility in
how you build your application.
Synchronize Related Members
During development, there are many times that you want to group
members together. For example, if you have source members that you
compile and link, you would want to make sure that the source, object,
and load were promoted together. SCLM keeps track of which members
were inputs and outputs to a build, and when you promote the source,
the object and load are promoted automatically.
Inputs and outputs can be tracked for members that are not programs.
Documents that are build from BookMaster
source can be stored in SCLM. So can Dialog Tag Language output.
When the input member is promoted, the output member is
automatically promoted, too.
Ensure Integrity
SCLM's member synchronization ensures when you build your
application that all of the members are synchronized. If a member
changes, SCLM ensures that when you build the architecture that defines
your application,
all of the
source, object, and load modules reflect that change.
Build only the Members that have Changed
SCLM keeps track of which members have changed. When you build
a member, SCLM only performs the translation if
the member has changed since the last time SCLM built it.
If you want to rebuild a member that has not changed, you
can opt to build in forced mode.
Build Subsystems
Architecture definitions allow you to define not only the big
picture, but the smaller details as well. You can break your
application into subapplications, each of which can be built
individually. This can save a lot of time for large applications.
Track Included Members
SCLM tracks included members, so that if a source member has an
included member which is changed, the next time the source member is
built, the translation will take place.
If you try to promote a member which includes a changed member, SCLM
displays a message if you haven't built since the member was changed.
Back to
top
Use Different Translators
Define Languages
SCLM supports different programming languages by use of language
definitions. Language definitions allow you to specify the details of
how the build will take place. You can specify which translator will be
invoked, which ddnames will be allocated to which data sets, and which
default parameters are to be used during the build.
Parse Members
When you create a member, you specify which language definition
to use by associating the member with a language name.
In the language definition, you can specify a parser to be used
by the editor when the member is saved. The parser collects
statistics about the member and creates a list of included members
so that SCLM will be able to track them at build time.
To see the statistics created by the parser,
use the library utility.
SCLM provides sample parsers in the sample library
for many common programming languages,
such as assembler, COBOL, and C.
Use Special Languages
SCLM includes special processing for Ada, with the sublibrary
management utility,
intermediate record
processing, and the concept of scope. There is a cross reference
data set that you can use to track Ada cross reference information.
Jovial is supported through
compilation unit processing. A member's compilation units can be
browsed using the library utility.
SCLM can also be used to control Cross System Product
(CSP) outputs, even though
CSP members cannot be developed within SCLM.
Back to
top
Process Dependencies
When the project administrator defines the languages for a project,
a parser is associated with the language. Then, when the member is
created or migrated, the developer associates a language with the
member. The parser is invoked when the member is saved.
SCLM uses the parser to determine which members are dependent upon
which other members. SCLM can track nested dependencies, so that if
a member includes another member which includes another member which
gets changed, all of the members that include it get translated
when
a build is requested.
If you want to see the dependencies SCLM is tracking, you
can use the library utility to view the list of included members.
Back to
top
Use workstation tools to develop applications
Use workstation editors
SCLM, because it uses ISPF's edit interface, allows you to use
a workstation editor of your choice to create and change members.
The members are kept in the SCLM-controlled libraries on the host.
SCLM locks the member and downloads it
to your workstation for you. When you are finished with your changes,
SCLM uploads the member and deletes it from your workstation.
Build applications on your workstation
If you want to compile your application on your workstation,
you can create a translator that will do that. SCLM provides a sample
translator
in the sample library that
you can follow.
SCLM copies all of the members necessary for the build
to your workstation. Then SCLM invokes the translator, and copies
the output files back to the SCLM-controlled host libraries.
SCLM can be used to invoke a workstation translator with a command
line interface.
Back to
top
Manage Changes
Use change codes
Change codes are a set of characters that you can associate with
a member.
These change codes can be used for
tracking changes.
It is common to use problem numbers as change
codes to provide a link between your problem management system and
SCLM.
You can assign a change code to a member using the editor
or the migration utility.
The library utility allows you to delete
change codes, if you want.
Track change codes
One of the many pieces of information
that you can get from the database
contents utility is the change code. If you want a report on every
member in the hierarchy that has a particular change code, you can use
variables to create that report.
Verify change codes
SCLM provides a Change Code Verification exit, which allows you
to prohibit promotion of members unless the change
code associated with the member meets whatever criteria you set.
Use Information/Management with change codes
Information/Management is an IBM
software product consisting of an
integrated set of tools and services for customizing and automating
your: help desk or call center, problem management, change management,
and configuration management.
SCLM provides a sample in the sample library
to show how to link SCLM's change codes
and Information/Management.
Merge changes
Occasionally, developers have to merge their changes with changes
made by other developers. When this happens, the edit COMPARE
command is invaluable. Using the COMPARE command, you can see
what changes you made, what changes the other developer made, and
what remains the same. Simple edit line commands are all that is
needed to bring the other developer's changes into your library.
Back to
top
Get information about your application from SCLM
Information about SCLM's view of your data is available in a
variety of places.
Report the database contents
If you want information about the structure of your hierarchy,
the statistics of individual members, the dates and times when
builds and promotes occurred, or almost anything else SCLM
tracks in the accounting database, you can use
the database contents utility. The database contents utility provides
variables which allow you to produce a report with whatever
information
you choose.
Report the architecture
The architecture report utility allows you to report on the
structure of your architecture definitions. The report gives you
a complete list of the application components. The report indents
each
architecture definition name
and
source member name
under the name of the
architecture definition
or source
member
which included it.
Report the migrate, build, and promote processing
The migrate, build, and promote functions all create reports to
describe what each of the functions did.
The reports contain
a heading which shows the input to the function. The body
lists each member that was processed and the result.
Back to
top
Multiple developers editing the same member at the same time
Often, more than one developer has to change a member. For example,
an information developer might be editing some text on a panel which
needs a technical change by a programmer.
Prevent developers overlaying each other's changes
SCLM allows two developers to make changes at the same time without
overwriting each other's work
by means of authorization codes.
The project administrator determines what authorization codes allow promotion
into which libraries. If someone has a member locked, another developer
can edit a copy of that member using a different authorization code.
When the first person completes their changes and promotes the
member, the second person can change the authorization code,
merge the changes using the edit COMPARE command,
and promote the member that contains both sets
of changes.
Back to
top
Emergency fixes
Alternate project definitions
If something goes wrong with an application in the production
library, you want a way to get your fix into production as quickly
as possible. SCLM has a concept of an alternate hierarchy. A project
administrator defines an alternate hierarchy by means of an alternate
project definition.
An alternate project definition for emergency
fixes is typically identical to the project definition that is used
all the time, except that the promotion hierarchy allows selected
developers to promote directly into the production library.
A typical scenario for an emergency fix would involve a maintenance
developer, who is keeping the production libraries running,
and a release developer, who is adding new function for the
next release.
The maintenance developer edits the part using the
alternate hierarchy, and then promotes the part back into the
production library.
If the member that needed to be changed
is locked in the release developer's library, the maintenance
developer can update and promote the member
by changing the authorization code in the
library of the release developer.
SCLM prevents
the release developer from overwriting the emergency changes.
SCLM notifies the release developer when an attempt is made
to promote the member up the release hierarchy.
The release
developer can lock the member again with the original authorization
code,
and merge the emergency
fix with the new function, using the edit COMPARE command.
Back to
top
Manage multiple releases
It is common for a product to have more than one release in
development at a time. Sometimes the same members need to be
available for both fixing errors in an application, and adding
new function for a future release.
SCLM supports developing multiple releases
in a variety of ways.
Alternate Project Definitions
Alternate project definitions, in addition to emergency fixes
(as explained in
"Emergency fixes"), can be used to define
hierarchies where developers can work on more than one release.
Multiple hierarchies
It is often easiest to define a new hierarchy for each release
of the product. When a product goes into production, the project
administrator can define a new maintenance hierarchy, using the
production code as the base. When developers make changes
to the maintenance hierarchy, they can roll the changes into the
development hierarchy as well, using the edit COMPARE command.
Back to
top
Impact analysis
Build and promote in report mode
With large projects, building and promoting your application
can take a long time.
You might want to be able to determine how big a job is going to be
before you actually do it.
Both build and promote allow you to execute in report mode.
This means that you get a report which tells what would have been
built or promoted, without the actual overhead of doing it. For
example, if you change a copybook that is included in
lots of members, building the application in report mode can
tell you how many members will be rebuilt.
Delete Group in Report Mode
The delete group utility deletes groups of members, accounting records,
build maps, or build outputs. Since there is risk of accidentally
deleting something you do not intend to delete, the delete group
utility defaults to report mode, so you can make sure you delete only
the
components or accounting information you want.
Back to
top
Manage risk when integrating software members
Sometimes there are changes that you know have the potential to
break your application.
If something goes wrong, it could slow down the
whole project.
SCLM lets you isolate the risk by using an alternate project
definition with a primary non-key group.
Manage high-risk changes with primary non-key groups
To define a primary non-key group, the project administrator
defines an alternate project definition. It matches the
base project definition, except that there is a primary non-key
group that a subset of the developers promote into.
This library is in the path of only the high-risk developers.
Since the group is non-key, when
the developers promote
individual changes
for integration testing, the members are not moved from their library.
They are still locked, so that other developers are aware that changes
are in process. Anyone who wants to test the high-risk changes
can allocate that library. The others can continue their development
without interference.
Back to
top
Back out fixes
Every so often, someone makes a change that turns out to be
unwanted. In that case, it is helpful to have a method of
removing the change from the hierarchy.
Keep previous versions of your code
SCLM allows you to keep previous versions of editable members in
partitioned data sets. You can keep versions of members for whichever
groups and types you specify.
If you need to go back to a previous version,
all of the information is there.
You can specify how many versions to keep for each group and type.
Versions can be retrieved into the hierarchy, or into a sequential
or partitioned data set.
SCLM maintains versions in reverse delta format. Reverse delta
format means that your source code is stored at the current level, and
in order to go back, changes are removed in the reverse order they
were applied. Reverse delta design means increased performance when
members are edited and built, since changes do not have to be reapplied
every time the member is used.
Backup your project
SCLM offers promote exits. From within an exit, you can copy the
member that is being promoted to a backup library.
Archive your accounting information
The export utility saves your accounting information for
your project. You can archive your data sets and accounting information
to create a complete package containing all current information
about your application. If you need to reintroduce the exported
accounting information, you can use the import utility.
Back to
top
Recover from system problems
Backup the accounting database
One of the features of the project definitions is the
ability to have a secondary accounting database. If you specify
a secondary accounting database on a different volume from
your primary accounting database, SCLM automatically synchronizes the
databases.
If disaster strikes, you can REPRO the primary
database from the secondary database, and continue work on your project.
Back to
top
Audit changes
Track changes made in SCLM
Auditing, in SCLM, means that you can keep track of who makes
changes to which modules at what time.
The auditing information is kept in the VSAM database. To view the
audit trail, use the audit and version utility or the VERINFO
service.
Back to
top
Develop SCLM controlled members outside of SCLM
Use SCLM services
SCLM provides a variety of services to help with your
library configuration and management tasks. Most things that you
can do from the SCLM panels can also be done through the SCLM
services.
For example, you can BUILD, PROMOTE, EXPORT, IMPORT, and MIGRATE,
using SCLM services.
The services provide the ability to use editors other than the
one provided by SCLM's edit option.
For example,
using the PARSE, LOCK, and
STORE parameters with another editor gives you the same function,
from SCLM's point of view.
Back to
top
Propagate applications to other systems
Use exits to send your application to another system
You can define a promote exit to send members to another system
when they are promoted. After the members are received,
you can use the migrate utility to introduce them to SCLM
on the other system.
Export and Import your applications
If you have an application under SCLM on one system, and you
want to move it to another system, SCLM has the Export and Import
Utilities to help you.
Export captures your accounting information for you. Then you
can send it to another system or archive it. If you send it to
another system, the import utility puts the accounting
information into the current project on that system.
Back to
top
Project security
Secure your data
SCLM lets you use
standard partitioned data sets (PDSs) and extended
partitioned data sets (PDS-Es) to store your application.
To secure your data sets, use a security
package such as RACF.
Different levels of the hierarchy might require different levels
of access.
For example, your hierarchy can have an integration level,
which all developers can change, but have the higher
levels only accessible for update by the
project administrator, and perhaps a backup administrator.
Define VSAM databases
To keep your VSAM accounting database secure, you can define
separate VSAM data sets for each group of the hierarchy. Each of the
data sets can be protected separately.
You might have more security for
the database at the higher levels of the
hierarchy.
Back to
top
Select your processing mode
Batch or Foreground
SCLM supports many of its functions in both batch and foreground
modes
so each user can select the mode that they prefer.
The utilities (migration, database contents report, architecture
report, import, export, and delete group), build, and promote,
all allow you to choose either batch or foreground processing.
Back to
top
Customize SCLM
Exits (change code verification, build, and promote)
To support your
development process, you can take advantage of the exit points offered
throughout SCLM.
-
A change code verification routine is called by SCLM when a developer
attempts to update a member.
The routine might verify that the change code provided by the developer
is correct, create a defect or feature record in an information database,
or notify other users of the change activity.
-
The build exit routine is called at the end of the build.
It may be used for logging information or notifying others of the
build activity.
-
The first promote
exit routine is called after the promote verification phase.
It can be used for saving members in the "to-group" to a private data set
before the copy operation, stopping the promote
at this point, or notifying other users of the promote activity.
-
The second promote
exit routine is called after the promote copy operation.
It can be used for logging information about the copied members,
copying the promoted members to a backup library,
stopping the promote at this point, or notifying other users of the
promote activity.
-
The third promote
exit is called after the promote purge activity.
It can be used for logging information or notifying others of the
promote activity.
User entries
If you have some particular information that you want stored with
the member, SCLM provides User Data Entry fields. You can input the
data through the BUILD service, and you can view the data
from the library utility.
Back to
top
Name your data sets
Use flexible data set names
Sometimes system requirements do not allow you to use
standard three level ISPF library names. In that case, you can use
SCLM's flexible data set name feature, which maps your data set name
to an ISPF library name. The SCLM panels show the ISPF library name,
but all of the processing is done with the physical data set name.
If you want to see the physical data set name that SCLM is using,
you can view the accounting record from the library utility.
Back to
top
Keep track of your application
VSAM accounting database (accounting record, build map record)
SCLM accounting information is stored in a VSAM database. The
database contains information about the members, such as who has
it locked, when it was last promoted, when it was most recently changed,
and much more. There is also a build map record that contains
the include information, so that SCLM can track included members.
No footprints left in your application
SCLM does not alter your application in order to track it.
It leaves no footprints. All of the information that it needs is
stored in the accounting database and project definition load module.
Back to
top
Manage Vendor Code
Manage user modifications to SMPE installed products
SCLM can be used to manage the user modification and
customization of
the tables, panels and other "source" type data that is shipped along
with an SMP installed product. The customization of a new release can
then be done in a controlled manner and becomes much simpler. The
edit COMPARE command is a great asset in merging your changes into the
next release.
Manage object and load modules without source
SCLM can be used to manage object and load modules received from
a vendor or another group within your organization. It can also be used
to manage your own applications for which source is no longer available.
Back to
top
Frequently Asked Questions
-
Q:
What is the direction of SCLM?
A:
SCLM is considered by many users to be a powerful, yet flexible,
software configuration and library manager for MVS. SCLM will
continue to be enhanced to benefit customers who have heavy
investment in the MVS mainframe for managing their application
development. SCLM requirements are addressed and prioritized
along with the other ISPF requirements to help customers increase
the value of their mainframe investment while extending product
capability into the client/server world. We will continue to consider
additional SCLM capabilities that are in line with customer needs and
IBM software strategy.
-
Q:
Does SCLM guarantee YEAR 2000 compliance?
A:
Yes. OS/390 Release 2 of SCLM and all later releases are
Year 2000 enabled. PTFs to provide Year 2000 support for SCLM 3.5
and 4.2 are available.
-
Q:
What has changed in SCLM in the last 2-3 years?
A:
Significant enhancements were made to SCLM in ISPF Version 4 and
OS/390. Some of the highlights include:
- Year 2000 enablement
- workstation edit, view and build support for the ISPF client
environments
- build and promote by change code
- library utility extensions
- versioning enhancements
- services for versioning and auditing
(VERINFO, VERRECOV, VERDEL)
- performance improvements
-
Q:
How often do you provide upgrades or product enhancements?
A:
ISPF is now part of OS/390. OS/390 plans to make new releases
available every six months. SCLM enhancements might or might not
appear in each of these releases.
-
Q:
Is IBM's SCLM group receptive to software enhancements requested
by clients?
A:
SCLM has been continuously improved since it was first introduced as
part of PDF Version 3. Future enhancement decisions will be made
based on how well they support the direction of SCLM, the pervasiveness
of the requirement, its priority in relation to other SCLM and ISPF
requirements, and available resources. We cannot do everything, but we
try to be as responsive as possible.
-
Q:
What operating systems does SCLM support? (e.g. MVS/ESA-JES2,
Windows, OS/2)
A:
All application data controlled by SCLM is stored in partitioned data
sets on MVS. The tools invoked against this data at edit, view,
or build
time can reside on MVS or any of the ISPF-supported client environments
(OS/2, Windows, AIX...).
-
Q:
Does SCLM function across multiple CPU's?
A:
SCLM does not currently support the sharing of its VSAM control
information. Support for multiplex environments is a high priority
requirement. We are currently working on this and expect to provide
this support through the use of DFSMS 1.3 record level sharing. Some
customers are using a Computer Associates
product called MIM to allow the VSAM sharing
today.
-
Q:
Does SCLM function online and in batch?
A:
Most SCLM functions such as build, promote, and migrate are available
from foreground or batch.
-
Q:
Is SCLM compatible with ISPF and TSO?
A:
Yes. SCLM is a component of the ISPF product.
-
Q:
Are there any inconsistencies or conflicts with other features we
might use?
A:
We use SCLM to manage the development of ISPF and the maintenance of the
PDF and SCLM components. We have not found any inconsistencies or
conflicts between the way SCLM and the rest of the ISPF product works.
In fact, many of the functions that you are used to using in ISPF, such
as browse, view, and edit, are exactly the same as their ISPF
counterparts. SCLM edit is ISPF edit with the addition of member
locking. You still have the same edit primary and line commands
(including the COMPARE command), and edit macros
that you have available when using ISPF Edit. SCLM workstation
build is built upon the ISPF Client/Server support and services such as
WSCMDV and FILEXFER.
We haven't found any inconsistencies or conflicts between SCLM and
any of the other products that we are using either.
-
Q:
Does your product store components in a format that can be accessed
by other common MVS tools and utilities such as SAS, FILE-AID and the
ISPF editor?
A:
Yes. SCLM does not use any proprietary file structures. All
application data is stored in partitioned data sets. All SCLM control
information is stored in VSAM databases. SCLM uses ISPF's edit and view
functions. Editing of an SCLM-controlled member from outside SCLM can
be allowed or forbidden, based on an ISPF configuration table option.
-
Q:
What are the product limitations?
A:
SCLM only directly manages application data stored in partitioned
data sets. Other data, for example CSP MSLs, are handled through the
use of specialized translators.
-
Q:
Did IBM develop this product? Are the primary developers
of your product still employed by IBM?
A:
Yes. SCLM was first developed by the old IBM Federal Systems division
and was used to manage the development of their software
before it was first introduced as part of the ISPF product.
Primary developers of SCLM are still employed by IBM with ISPF and
other product areas.
-
Q:
Do SCLM developers use a configuration management tool?
Do you use your product to develop your new releases?
A:
SCLM has been used to manage its own development and maintenance since
it was first introduced as part of the ISPF product. It has been used
to manage the development of ALL of the host components of ISPF since
Version 4.
-
Q:
What training, support, and documentation is provided on SCLM?
A:
IBM offers an SCLM Implementation course, which teaches you the
basics of SCLM. For information on the latest course offerings
and schedules, in the United States
call 1-800-IBM-TEACh (1-800-426-8322).
IBM also offers services
to help you get started or to help you migrate from another
configuration management system. See
"For Additional Information" to
find out how to contact ISSC (Integrated Systems Solutions Corporation)
to set up consulting services.
SCLM is very active in the SHARE IBM User Group. Four SCLM sessions
were offered at the last conference in New Orleans, including two
hands-on sessions on setting up and using SCLM.
Three technical manuals and several Redbooks and Technical Reports are
available. The Redbooks and Technical Reports can be ordered or
downloaded from the World Wide Web. (See
"For Additional Information" for
details on how to visit our web site.)
-
Q:
Is access to an implementation and installation specialist available
during the initial implementation phase?
A:
Yes. See
"For Additional Information" for
information on contacting ISSC about
consulting services available for SCLM.
-
Q:
Does SCLM require 100% implementation in order to enjoy its
benefits and features or can SCLM use a phased-in approach to
implementation?
A:
SCLM can be implemented in a phased manner, for instance, one
application at a time. This is actually ideal in the beginning as it
allows you to refine the definition of your project to best match
your processes. Once the first project is working the way you want,
you can copy the project definition and modify it to
support
additional applications or releases.
-
Q:
What skills, tasks, and time are required to perform implementation
tasks?
A:
The amount of time required for full implementation will vary according
to the customer environment and skills. IBM ISSC consulting services
would be the best ones to estimate this effort for your shop.
During the implementation phase, you will need someone with knowledge
of both systems and applications as well as the development and
maintenance
processes you currently use or wish to implement.
-
Q:
Once set up, how much ongoing administration is needed?
A:
This will vary by customer and
environment, but in general, very little.
SCLM project design is modular. Making modifications is
very easy. We have one full-time developer that maintains our
projects, creates new ones as needed for a new release, and performs
our builds and promotes at the higher groups in our projects
where RACF prevents other developers from updating the libraries.
All of this takes less than 2% of his time;
the rest is spent on development.
-
Q:
Is technical support available 24 hours a day, 7 days a week?
A:
SCLM customers are entitled to the standard IBM host software service
support: 7 days a week, 24 hours a day
for severity 1 problems, 8 a.m. - 8 p.m. Monday through Friday
for all other problems.
-
Q:
Do you currently have an established User Group? Please
supply contact information.
A:
ISPF participates in both the SHARE and GUIDE user groups. SCLM is
particularly active at the SHARE conferences. For information on
SHARE, call 1-312-822-0932 or visit their web site at
http://www.share.org. Information on GUIDE is available at
1-312-245-1599 or http://www.guide.org.
-
Q:
Do you have some customer references who are successfully using
SCLM? Have any references switched to SCLM because their current
configuration management system failed?
A:
You can contact our SCLM development manager or ISSC
for customer references. (See
"For Additional Information" for details.)
You are welcome to
talk to the references directly about their reasons for moving to SCLM.
-
Q:
What do I need to think about when deciding whether to use
SCLM, TeamConnection, or both?
A:
Both SCLM and TeamConnection support the development of client/server
and distributed applications on MVS, OS/2, and Windows.
SCLM is a host-driven library and configuration management system.
All data is stored on MVS. All builds, even workstation builds,
are initiated from the host.
TeamConnection
integrates software configuration
management function services and object-oriented repository services.
It can be configured as stand-alone, or in LAN-based client/server mode.
TeamConnection supports the development of OS/2 or Windows and MVS
client/server and distributed applications.
TeamConnection commands can be issued using ISPF services on
MVS for command execution on supported workstations. In addition,
TeamConnection commands can be included in SCLM build definitions so
that SCLM and TeamConnection Builds can be synchronized.
The following table shows some of the things you might
want to consider when deciding which IBM software configuration
management solution to use.
Figure 3. Choosing SCLM or Team Connection
| Points to Consider
| Try Using
|
| Your project is developed
exclusively on the mainframe. Your application is based
on TSO, DB2, COBOL, PL/I, etc.
| SCLM
|
| Your project is developed
exclusively on the workstation.
Your developers are all experts in LAN and
workstation development tools.
| TeamConnection
|
| Your project is a distributed or client/server application, involving
both host and workstation components.
| SCLM, TeamConnection, or both
|
| You want to store your application on the host.
| SCLM
|
| You need electronic signatures, and are not willing to
write and maintain exits to get this function.
| TeamConnection
|
| You need electronic signatures, and are willing to
write and maintain exits to get this function.
| SCLM, TeamConnection, or both
|
| You want to track members against defects and features, and are
not
willing to
write and maintain exits to get this function.
| TeamConnection
|
| You want to track members against defects and features, and
are
willing to
write and maintain exits to get this function.
| SCLM, TeamConnection, or both
|
| Your application needs to interface with VisualAge, VisualAge
Generator, PACBASE/CS, or DataAtlas.
| TeamConnection
|
For more information about TeamConnection, visit their web site
at http://www.ibm.com/software/awdtools/teamcon/.
Back to
top
For Additional Information
For additional information about SCLM, you can:
- Visit our web site. It is easy to find from the ISPF web site
at http://software.ibm.com/ad/ispf.
There is lots of information including Redbooks and presentations from
GUIDE and SHARE. (If you do not have access to the web, ask
your IBM representative to get the information from marketing tools.)
- Participate in our various fora. ISPF CFORUM is available for
customers, and there is an
SCLM FORUM which your marketing representative can use on your
behalf to ask questions or share information about SCLM.
- Read the ISPF newsletter. It has lots of articles about SCLM. To
get on the newsletter mailing list, do one of the following:
- fax a request to 1-919-254-4914
- call 1-800-IBM-2468 (1-800-426-2468).
- write to Diann King, IBM Corp.,
P.O. Box 12195, Research Triangle Park, NC 27709-2195
- send email to Diann King at monarc34@raleigh.ibm.com
- Hire a consultant. If you are ready to begin using SCLM and would
like some help getting started,
call Peter Smith in ISSC at 1-919-254-7830.
Back to
top
Conclusion
SCLM is a library manager and a configuration manager rolled into
one. It provides the features project managers need
to control their projects. It is easy for developers to use, because
it is based on ISPF. It is easy to justify purchasing it,
because it comes free with ISPF!
Back to
top
Glossary
- architecture definition
- An architecture definition is a means of organizing
components of an application into conceptual units. It is
SCLM's method of defining an application's configuration. It describes
how the components of an application fit together and is used to drive
both the build and promote functions.
Architecture definitions are used to group components
into applications, sub-applications, and load modules.
- authorization code
- An authorization code is
an identifier used by SCLM to control the authority to update and promote
members within a hierarchy. These codes can be used to allow concurrent
development without the risk of module collisions (overlayed changes).
- build
- Build is the
process of transforming inputs into outputs through the invocation
of translators specified in the language definition. Compilers,
preprocessors, and linkage editors are examples of translators that
might be invoked at build time.
- change code
- A change code is
an eight-character identifier used to indicate the reason for an
update or modification to a member controlled by SCLM.
- component
- A component is any input or output member
associated with an application,
which together make up all or a member of the application.
- concurrent updates
- Concurrent updates occur when
two programmers update the same member at the same time. This is
supported through the use of authorization codes and the Edit Compare
tool or alternate project definitions.
- configuration
- A configuration is a relationship between software components.
- CSP
- Cross System Product
- dependency
- Dependency describes a relationship between a
source member and the members it includes.
A source member has a dependency on a
member which it includes.
- development group
- All groups in the lowest level of the hierarchy are known as
'development groups'. These groups represent end-nodes with no other
lower groups promoting into them.
- draw down
- During edit, SCLM copies the member from its first occurrence in a key
group in the library concatenation into a development group and locks it.
- hierarchy
- A hierarchy is an organization of libraries where each library is
subordinate to the one above it.
- ISPF
- Interactive System Productivity Facility
- ISSC
- Integrated Systems Solutions Corporation
- language definition
- A language definition specifies the set of translators to be executed
for SCLM functions PARSE, VERIFY, BUILD, COPY, and PURGE.
A language definition is composed of one FLMLANGL macro followed
by an FLMTRNSL macro for each translator to be executed for members of
SCLM libraries whose language attribute matches the value of the LANG
keyword in the FLMLANGL macro.
- level
- A level is a set of libraries representing one tier of a hierarchy.
- lock
- When a user locks a member, only that user can change it. All other
users are unable to change that member until the member is promoted
or unlocked. When you lock a member, you specify an authorization
code. If two users need to change a part, they can use different
authorization codes.
- migration
- Migration is the process of introducing members into SCLM control.
Migration locks the member, parses it according to the requested
language, and stores the information in the accounting database.
You can use the migration utility to enter a large number of members
into a project's database, such as during conversion to SCLM.
- nested dependencies
- Nested dependencies occur when a source member includes another
member, which in turn includes another
member. SCLM tracks nested dependencies, so
that when a member changes, any member
that includes it is rebuilt, no matter how
many levels of nesting there are.
- parser
- A parser is
a program that reads an editable member to determine dependency
and statistical information about the member.
This information is stored in the SCLM accounting database.
- PDF
- The Program Development Facility component of ISPF.
- project
- A project is a collection of libraries representing an integrated
SCLM database, under a single high-level qualifier.
- project definition
- A project definition defines the
SCLM library structure, project control information, and language
definitions.
A project definition is a load module used by SCLM at run time.
The source code for
a project definition is composed of macros.
- promote
- Promote is the
process of moving an application or its components from one
level in the project hierarchy into the next. Promotion out of a
development group removes the lock on editable members that
were successfully promoted.
- RACF
- Resource Access Control Facility
- SCLM
- The Software Configuration and Library Manager is a component of the
ISPF product.
SCLM was first introduced in ISPF/PDF Version 3 Release 1.
- translator
- A translator is a load module, CLIST, or REXX program that receives
control from SCLM for execution.
The name of the translator is specified as the value of the COMPILE
keyword for the FLMTRNSL macro.
Examples of translators are compilers, assemblers, linkage editors,
text processors, DB2 preprocessors, CICS preprocessors, utilities,
and customer tools.
- version
- A version is
a copy of a member as it existed at a previous point in time.
- versioning
- Versioning is a function that allows you to retrieve a version
of a member. Versioning is useful for backing out changes.
- VSAM
- Virtual Storage Access Method.
Back to
top
Trademarks and Service Marks
The following terms used in this publication are trademarks or service marks of
the IBM Corporation in the United States or other countries:
- AIX, BookMaster, CICS, DB2, DFSMS, Integrated Systems Solutions, IBM, ISSC, MVS, MVS/ESA, OS/2,
S/390, Repository Manager, RACF, TeamConnection, VisualAge, YEAR 2000
The following terms and phrases used in this publication are
trademarks or service marks of other companies:
- Windows (Microsoft Corporation)
- SAS (SAS Institute, Inc.)
|
Back to
top
|