1.1.2.4 Develop Naming And Numbering Standards And Directory Structure

Overview

In this activity, the software configuration management (SCM) manager determines the project’s naming and numbering standards. The SCM manager also determines the directory structures (and the associated read and write privileges) to be used during the project to protect completed software products, and to aid in the development of new software products.

Roles and Responsibilities

The SCM manager determines the naming and numbering scheme to be used, directory structure, and the associated read and write privileges.

The system administrator performs the actual setup of the directory structure.

The software engineering manager reviews the directory structure and the naming and numbering scheme to ensure adequacy for the project’s development needs.

Controls

The software engineering environment of the project (e.g., development platform and compilers) documented in the Establishing a Software Development Environment section of the Software Development Plan (SDP) (see Appendix E).

The SCM tools which have been selected for the project and documented in the Tools section of the SCM Plan (SCMP) (see Appendix E).

Inputs

The completed software product list in the SCM section of the SDP, which documents the products that must be placed under SCM.

Procedures

Note: The following is a general discussion only. The characteristics of the naming and numbering scheme and the directory structure will be greatly impacted by the SCM tools selected and by the software engineering environment.

1) The SCM manager reviews the software product list to gain an understanding of the software products that must be controlled.

2) The SCM manager develops a naming and numbering scheme that indicates the project, product name, and version or revision of each product on the software product list.

3) The SCM manager assigns a unique name and number to each software product. Example 1 describes the naming and numbering of a software product, explaining the information that is conveyed by the name and number.

Example 1:

The Software Requirements Specification (SRS) for the XYZ project may be assigned the name XYZ_SRS_A0, where XYZ indicates the project, SRS indicates that this is the Software Requirements Specification, A indicates that this is the first version of this document, and 0 indicates that there have been no revisions. If the SRS is modified later by an approved Software Change Request (SCR) (see Appendix C), the new file will have the name, XYZ_SRS_A1, indicating that this is the first revision of the document. If developers create a new version of this document during another cycle, it may be named XYZ_SRS_B0, to indicate that it is a new version containing a new set of requirements.

Code units may be handled similarly. However, some SCM tools (e.g., Polytron Version Control Systemä (PVCSä )) keep track of versions and revisions internally, making it unnecessary to specify the version or revision number in the file name. The SCM manager simply assigns a name to each code unit (e.g., temp_sensor.ada).

Note: Individual code units cannot be identified prior to detailed design. Thus, the SCM manager must update the naming and numbering scheme when the code units are defined.

4) The software engineering manager reviews the sample directory structure described in Example 2 and, using the software product list, tailors the structure to meet the project’s needs.

Example 2: Sample Directory Structure

The directory structure for the XYZ project is based on the Microsoft Disk Operating System (MS-DOS) directory structure. Ada is the assumed programming language.

The system administrator creates a separate volume on the disk of the file server, called "XYZ," to store all XYZ project-related source and object code. A volume is much like a partition on a hard drive in MS-DOS, except it is created using the Novellä network software. The XYZ volume stores the Ada source and object files needed to build the entire software system. In addition, it stores all commercial off-the-shelf (COTS) tools, including MS Word for Windowsä , PVCSä , Alsysä compiler, and associated tools. It is important to note that the Alsysä compiler must be in this same volume. The following descriptions and directory-hierarchy diagrams illustrate this sample directory structure. The directories shown represent the minimum created on any project.

In the XYZ project, the system administrator creates a directory structure for each computer software configuration item (CSCI). Examples include directories called "XYZ: FLIGHT (CSCI L)" and "XYZ: GROUND (CSCI M)." The system administrator creates numerous subdirectories within each of these to isolate the development processes for different software development items. The directory structure indicates where documents, compilation units, and source code are kept, along with what is under development, what is under integration, and what is baselined.

These subdirectories together make up the user’s Software Development File (SDF).

Overall Directory Structure

CSCI\CONFIG\INTEGRATION DIRECTORY (1.1)

Note: Each subdirectory may contain a subdirectory for each version of the software product.

CSCI\CONFIG\BASELINE DIRECTORY (1.2)

Note: Each subdirectory may contain a subdirectory for each version of the software product.

SHARED\REUSE\INTEGRATION DIRECTORY (1.3)

Note: Each subdirectory may contain a subdirectory for each version of the software product.

SHARED\REUSE\BASELINE DIRECTORY (1.4)

PLANS (contains management plans and reports that apply to the project as a whole, such as the SQA plan);

GUIDES (contains all guides or manuals that may apply to more than one CSCI;

INTERFACES (contains Interface Requirements Specifications and any other documents that pertain to interfaces between CSCIs); and

TEST (contains PLANS, PROCEDURES, DRIVERS, RESULTS, and REPORTS subdirectories; these contain tests used during the integration of CSCIs or qualification tests for the software system as a whole).

Note: Each subdirectory may contain a subdirectory for each version of the software product.

SHARED\DOCUMENT\INTEGRATION DIRECTORY (1.5)

PLANS (contains management plans and reports that apply to the project as a whole, such as the SQA plan);

GUIDES (contains all guides or manuals which may apply to more than one CSCI;

INTERFACES (contains Interface Requirement Specifications and any other documents that pertain to interfaces between CSCIs); and

TEST (contains PLANS, PROCEDURES, DRIVERS, RESULTS, and REPORTS subdirectories; these contain tests used during the integration of CSCIs or qualification tests for the software system as a whole).

Note: Each subdirectory may contain a subdirectory for each version of the software.

5) At least one software engineering manager reviews the directory structure and the naming and numbering scheme to ensure adequacy in meeting the project’s development needs.

6) The SCM manager documents the completed directory structure, placing it in the Configuration Identification section of the SCMP.

7) For each directory, the SCM manager determines who should have read, write, and other applicable privileges. Normally, the project software manager, SCM manager, and system administrator have full read and write privileges to all files in all directories. The software developers normally have only full read and write privileges to their own CSCI\DEVELOP\user directories; however, the developers may have read access to all the directories. The SCM manager documents these access privileges in the Configuration Identification section of the SCMP.

8) The system administrator, under the supervision of the SCM manager, sets up the directory structure and access restrictions, as documented in the SCMP.

Outputs

The project’s naming and numbering standards, directory structure, and directory-access restrictions, as documented in the Configuration Identification section of the SCMP.

The project’s directory structure, with proper access restrictions in place.