Appendix A. Configuration Management Process Model: A Software Code Example

In this example, an object's unique identification is indicated by <CI name > . ( "CI" stands for "configuration item.") The name alone is depicted as <Module> . The example includes only a few procedure descriptions and templates referenced in the flow diagrams.

AAC

Document:

SDT- CM -A02 Configuration Management

 

Department:

Software Development and Test

 

Doc. Type:

Process Area

 

Item type:

Source code and related items

 

Status:

Accepted

Written by: NN Date: 8-31-2001

Change History

This is the first accepted version.

Purpose

Ensure that configuration management is performed in a structured way.

Scope

This process area description is valid for source code and related items developed in the Software Development and Test Department.

Responsibility

Ms. Anni Capella holds the overall responsibility for configuration management.

Input

Source code files and related files.

Procedure

This process area is divided into four main processes:

  • Creation

  • Release

  • Change control

  • Status reporting

Each process is shown with its activities below.

Creation

During creation, source code or a related item is identified and placed in storage in the controlled library.

graphics/afig01.gif

Release

Source code or related items may be released from storage, either for usage or as the basis for production of a new item.

graphics/afig02.gif

Change control

All events observed during usage of source code or a related file must be registered and must follow the life cycle for software code events.

graphics/afig03.gif

Status reporting

It's possible to extract both predefined and ad hoc reports .

graphics/afig04.gif

Output

Source code files and corresponding files in controlled storage, associated metadata, and report facilities.

References

SDT- CM -P01 Unique Identification

SDT- CM -P02 Placement in Storage

SDT- CM -P03 Release for Usage

SDT- CM -P04 Release for Production

SDT- CM -P05 Event Registration

SDT- CM -P06 Event and Change Request Life Cycles

SDT- CM -P07 Extraction of Predefined Report

SDT- CM -P08 Extraction of Ad Hoc Report

SDT- CM -T01 Source Code Header

SDT- CM -T02 Source Code Approval Form

SDT- CM -T03 Source Code Release Request

SDT- CM -T04 Event Registration

SDT- CM -T05 Change Request

SDT- CM -T06 Predefined Status Reports

Reference to other process area:

SDT-CP-A01 Code Production

AAC

Document:

SDT- CM -P02 Placement in Storage

 

Department:

Software Development and Test

 

Doc. Type:

Procedure

 

Item type:

Source code and related items

 

Status:

Accepted

Written by: NN Date: 9-05 - 2001

Change History

Correction of scope since the version dated 8-31-2001.

Purpose

Ensure that all source code files and related items are stored in the controlled library when they are supposed to be under configuration management.

Scope

This procedure is used when source code files and related files are approved according to ATP-QA-P03 and therefore to be placed under configuration management. This means that the source module is in a state where it can compile and at least one operation is working such that modules using it may benefit from the implemented functionality.

Responsibility

The developer of the file to be placed in storage is responsible for this being done correctly.

Input

A source code module and related file(s) (objects) to become configuration items.

An approval form, SDT- CM -T02 , correctly filled in for the module.

Procedure

The command to use to place an object in storage is

Format: propose [-h -u -b] <CI name>

This command saves the configuration item with status "proposed" and copies and creates derived files according to the type of configuration item ( -h for header file; -u for unit, -b for build).

After successful storage, the approval form, SDT- CM -T02 , must be handed to the project manager.

Explanation:

First of all, .hxx and .h files are to be shared. This is made possible by issuing the command propose h <Module>.hxx . This command will prompt for a comment and save the new version of <Module>.hxx in the controlled area, where it receives the status "proposed." It will then retrieve the <Module>.hxx in a read-only version into the appropriate subdirectory in the development area and recompile whatever needs to be recompiled in this area as a consequence of the new .hxx file.

This must be done before the <Module>.cxx may be proposed, which is done by issuing the command propose <Module>.cxx . This command will check that the <Module>.o file was actually created with the latest available .h and .hxx files. If not, the proposal is rejected and the developer must ensure that the module is still in a "useful" state. If everything is OK, the command will prompt for a comment and

  1. Save the new version of <Module>.cxx in the controlled (AtFS) area, where it receives the status "proposed."

  2. Retrieve the <Module>.cxx in a read-only version into the appropriate subdirectory in the development area.

  3. Place the <Module>.o in the appropriate subdirectory in the development area.

  4. Re-create the library.

  5. Place the <Module>_dep.txt in the appropriate subdirectory in the development area, but not under version control in the controlled area, as it's a derived file.

This is illustrated below, where <Module> = U1 .

graphics/afig05.gif

Output

A configuration item in controlled storage with the status "proposed."

References

SDT- CM -T02 Source Code Approval Form

Reference to other process area:

ATP-QA-P03 Approval of Source Code

AAC

Document:

SDT- CM -P04 Release for Production

 

Department:

Software Development and Test

 

Doc. Type:

Procedure

 

Item type:

Source code and related items

 

Status:

Accepted

Written by: NN Date: 8-31-2001

Change History

This is the first accepted version.

Purpose

Ensure that a source code file and related items are extracted correctly when they are going to be used as the basis for production of a new version of the same file family.

Scope

This procedure is used when source code files or related files are the basis.

Responsibility

The developer of the file is responsible for the release of a file as a basis for production.

Input

A change request for the module, stating what needs to be changed

Procedure

The commands to use to extract objects from storage as basis for production are

Format: user -update

This command copies all files from the central marfdev area to the developer's area. This is done to get the production started.

Format: make -f Makefile.<CI name> depend This command creates the <CI name>_dep.txt file, containing the names of all files on which <CI name> depends directly for compilation. This file must be available during development and test, as all other commands may use the information in it.

Format: retrv -lock <CI name> This command retrieves a writable version of <CI name> from the marfdev area to the developer's area and locks the configuration item for other developers.

Format: get-deps [-u -b] [-nocheck] <CI name>

This command copies files on which the CI depends from the marfdev area to the developer's area, for either a unit CI ( -u ) or a build CI ( -b ). If the -nocheck option is not given, all dependent configuration items will be checked for proper status.

Explanation:

When the developer starts work on <Module> , he/she must retrieve a working copy of <Module>.cxx from the AtFS repository to his/her own area. This is done by issuing the command retrv -lock <Module>.cxx to place a writable copy of the <Module>.cxx in the user's area, where it has the status "busy." This is illustrated below, where <Module> = U1 .

graphics/afig06.gif

The same may be done for <Module>.hxx if the developer needs to work on that file as well. The developer then needs to get all the files necessary for compilation and linking of <Module> . This is done by issuing the command get-deps -nocheck <Module>.cxx to copy the newest version of all .h and .hxx files on which <Module>.cxx directly depends to the developer's area (using the -dep.txt file) and to copy all object libraries to the users' area. This command may be used anytime during development to ensure that work is done with the newest available version of the dependency files. Note that files retrieved by get-deps may not be changed by the developera changed version cannot be stored. This is illustrated below.

graphics/afig07.gif

Output

A set of files to be used as the basis for development of the new version of <Module>.cxx

References

None.

AAC

Document:

SDT- CM -P05 Event Registration

 

Department:

Software Development and Test

 

Doc. Type:

Procedure

 

Item type:

Source code and related items

 

Status:

Accepted

Written by: NN Date: 8-31-2001

Change History

This is the first accepted version.

Purpose

Ensure that events are registered correctly.

Scope

This procedure is used when an event is identified for a source code file or a related file.

Responsibility

Everybody who identifies an event in a source code file or a related file is responsible for correctly registering the event.

Input

An identified event and all possible documentation to support the description of the event

Procedure

In Word, create a new file, based on the event registration template SDT- CM -T04 .

Fill in the event registration.

Mail the event registration and any supporting documentation to CCB@marfdev.com.

Output

An event registration. A receipt will be mailed.

References

SDT- CM -T04 Event Registration

AAC

Document:

SDT- CM -T01 Source Code Header

 

Department:

Software Development and Test

 

Doc. Type:

Template
 

Item type:

Source code and related items

 

Status:

Accepted

Written by: NN Date: 8-31-2001

Change History

This is the first accepted version.

Content

 #ifndef FILENAME_H /**************************************************************** file: $Source$     $Revision$ Responsible $Author$     checked in at $Date$ Log: $Log$ ******************************************************************/ #endif 

Example 1: Before first placement in storage

 #ifndef MOTOR_H /**************************************************************** file: $Source$     $Revision$ Responsible $Author$     checked in at $Date$ Log: $Log$ ******************************************************************/ typedef double speed; typedef double position; typedef double time; speed ac(time t); position where(speed s, position p, time t); #endif 

Example 2: After a change request

 #ifndef MOTOR_H /**************************************************************** file: $Source: /home/cj/amj/motor.h,v $     $Revision: 1.2 $ Responsible $Author: cj $     checked in at $Date: 2002/02/06 22:54:39 $ Log: $Log: motor.h,v $ Revision 1.2  2002/02/06 22:54:39  cj add dif function(request 33) Revision 1.1  2002/02/06 22:52:02  cj Initial revision ******************************************************************/ typedef double speed; typedef double position; typedef double time; speed ac(time t); position where(speed s, position p, time t); time dif(position p1, position p2, speed s); # 


Configuration Management Principles and Practice
Configuration Management Principles and Practice
ISBN: 0321117662
EAN: 2147483647
Year: 2002
Pages: 181

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net