User's Guide
Change control is based on a number of distinct roles for the persons on
the development team, noted as follows:
- Class owner
- Class developer
- Application manager
- Configuration map manager
A class owner is the team member responsible for the integrity
of a class in an application edition. Class ownership promotes the
creation and maintenance of quality code, for the following reasons:
- Classes are not equivalent to modules in the traditional structured
programming sense. Classes are building blocks for present and future
systems. To improve code quality and reuse, class ownership helps to
ensure a class's reliability and generality throughout the software life
cycle.
- The semantic dependencies of an object-oriented model (such as
inheritance) increase the risk that a poorly considered change could have a
calamitous ripple effect. Only a class owner can change a class and be
reasonably expected to understand the ramifications of that change.
- The semantics of check-in/check-out are unclear when inheritance is
introduced. If an abstract superclass is checked out, for example,
should all of its concrete subclasses be reserved also?
- Long-term class ownership introduces cultural changes in the software
team. When developers know they will be maintaining a class for a
significant period of time, they will be less likely to program short-term
fixes.
Class ownership provides the controls necessary for serious software
development while offering the flexibility to let developers quickly
experiment. The key is that only the class owner can release a class
into its containing application. Other developers can create an edition
of a class, change the edition, and even version the edition. The class
owner, however, determines the main stream of development for the class
through releasing.
Only a class owner can do the following:
- Release a class version
- Delete a class from an application
The scope of class ownership is restricted to a single application
edition. This means that where a class is defined in one application
and extended in others, its definition and each of its extensions can have
different owners. Further, if an application has multiple streams of
development, the class might have a different owner in each stream.
A class developer is a team member who develops and changes
classes.
A class developer need not be the class owner. Unless restricted by
access controls, any user can change a class and become a developer of the new
edition or version. However, the class owner retains responsibility for
ensuring that the released version of the class is correct.
A class developer can do the following:
- Load the edition into an image
- Create a version of a class edition
- Change the class definition
- Change a method (load, release, save, or delete)
- Change the public or private status of a method
- Change the comment or notes for the class
The second, third, fourth, and sixth items cannot be performed on
versions. A new edition of the class must be created before such
changes can be made.
An application manager is responsible for the overall status of
an application. An application manager coordinates the activities of
the application's developers and ensures that the configuration
information for the application is correct.
Only an application manager can do the following:
- Add a new user to the application's group
- Delete a user from the application's group
- Assign class ownership or allow members of the application group to
transfer ownership of classes among themselves
- Change the manager of the application
- Change the prerequisites of the application
- Change lineups for the configuration of the application
- Change the subapplications of lineups
- Create an edition of the application
- Create a version of the application
A configuration map manager maintains the integrity of a
configuration map.
Only a configuration map manager can do the following:
- Create a version of the configuration map
- Create an edition of the configuration map version
- Change the applications specified by the configuration map
- Release an application edition or version to the configuration map
- Change the required configuration maps
- Change the lineups of the configuration map
- Allow application managers to release new editions of existing
applications into the lineup
[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]