CONTENTS Title Page Copyright Page Preface Part I VAXset and Project Management 1 VAXset Overview 1.1 VAXset Product Set 1.1.1 VAX DEC/Code Management System 1.1.2 VAX Language-Sensitive Editor 1.1.3 VAX Source Code Analyzer 1.1.4 VAX DEC/Module Management System 1.1.5 VAX DEC/Test Manager 1.1.6 VAX Performance and Coverage Analyzer 1.1.7 Program Design Facility 1.2 VAXset and the VMS Programming Environment 1.2.1 Using VAXset to Manage the Software Life Cycle 1.2.1.1 The Software Life Cycle 1.2.1.2 VAXset Tools Used in Each Life Cycle Stage 1.2.2 Programming Languages 1.2.3 Integration Features of the VAXset Tools 1.3 Additional VMS Tools and Utilities 2 Organizing Files, Libraries, and Directories 2.1 Setting Up User Accounts and Directory Protection 2.2 Setting Up a Project Directory Structure 2.2.1 Setting Up the Initial Project Directory Structure 2.2.2 Setting Up the Build Directory 2.2.2.1 Work Area for Carrying Out Your Builds-[PROJ.BLD_V1.WORK] 2.2.2.2 SCA Library System-[PROJ.BLD_V1.SCALIB] 2.2.2.3 Reference Copy Area 2.2.2.4 MMS Description File 2.2.3 Setting Up the DEC/Test Manager Storage Area Directory 3 Managing a Project in the VMS Environment 3.1 Project Standards 3.2 Using Logical Names 3.3 Communications Management and Status Reporting 3.3.1 Using MAIL 3.3.2 Using VAX Notes 3.3.3 Using the VAX Software Project Manager 3.3.4 Documentation Reviews 3.4 Extending the Library Structure 3.5 Establishing Project and Personal Build Procedures 3.5.1 Individual Build Procedures 3.5.2 Project Build Procedures 3.5.3 Access to SCA Libraries 3.5.4 Access to Source Files 3.6 Setting Up Tests 3.7 Analyzing Performance and Coverage 3.8 Tracking Reports During Field Testing 3.9 Final Project Steps 3.9.1 Prepare Final Build 3.9.2 Permanent Storage Part II VAXset Case Study 4 Transliteration Project Setup 4.1 Setting Up Directories 4.2 Creating Directories and Libraries 4.3 Setting Up a VMS ACL-Based Security Mechanism 4.4 Setting Defaults With a LOGIN.COM File 5 Using CMS to Maintain Project Source Files 5.1 Using CMS Access Control Lists (ACLs) 5.1.1 Example of a CMS ACL Scheme 5.1.1.1 Specifying ACLs in the CMS ACL Dialog Box 5.1.1.2 Granting CONTROL Access to Library Elements 5.1.1.3 Specifying a Default ACE for Library Elements of PROJECT_SOURCE 5.1.1.4 Granting Access for Holders of PROJECT_SOURCE_READ 5.1.1.5 Copying CMS ACLs to Existing Objects 5.1.2 Placing ACLs on CMS Commands 5.1.3 Using Event Notification ACEs 5.1.4 Access During Normal Development 5.1.5 Access When Preparing for a System Build 5.2 Maintaining CMS Source Libraries 5.2.1 Storing Files in a CMS Library 5.2.2 Modifying Elements 5.2.3 Concurrent Access 5.2.4 Creating Classes 5.2.5 Retrieving Class Contents and Preparing a Build 6 Writing, Compiling, and Debugging Source Code 6.1 Editing Source Files with LSE 6.1.1 Using the Language-Sensitive Features of LSE 6.1.2 Compiling and Reviewing Source Code 6.2 Debugging Source Code 6.3 Querying Source Code with SCA 6.4 Compiling and Linking a Modified File 6.5 Customizing the LSE Environment 6.5.1 Environment File for LSE 6.5.2 Redefining Tokens, Placeholders, and Language Definitions 6.5.3 Saving Modified Definitions 7 Designing Programs with PDF 7.1 Overview 7.1.1 Entering Pseudocode 7.1.2 Refining the Design 7.1.3 Using Tagged Comments 7.1.4 Compiler Support 7.1.5 Loading Design Information into an SCA Library 7.1.6 Generating Design Reports 7.1.7 Code Elision 7.2 Designing the COPY_FILE Module 7.2.1 Beginning the Design for COPY_FILE 7.2.2 Compiling COPY_FILE 7.2.3 Loading COPY_FILE Design Information into an SCA Library 7.2.4 Generating an INTERNALS Report of COPY_FILE COPY_FILE 8 Setting Up a Test System With DEC/Test Manager 8.1 Setting Up a Noninteractive Test 8.1.1 Creating the Collection Prologue and Epilogue Files 8.1.2 Establishing the Default Template and Benchmark File Directory 8.1.3 Setting Up the Test Prologue and Epilogue Files 8.1.4 Creating the Template File for the Test 8.1.5 Creating the Test Description 8.1.6 Setting Up the DEC/Test Manager Variables 8.1.7 Inserting the Template File into the CMS Library 8.1.8 Creating the Collection 8.2 Setting Up an Interactive Terminal Test 8.2.1 Invoking the Forms TRANSLIT application 8.2.2 Terminating the Recording Session 8.2.3 Reviewing Test Results 8.3 Verifying Your Test System 8.4 Recording a DECwindows Test 8.4.1 Processing Considerations for DECwindows Tests 8.4.1.1 Playing DECwindows Tests 8.4.1.2 Storing DECwindows Benchmark and Result Files 8.4.1.3 Environment Initialization 8.4.2 Recording a DECwindows Session 8.5 Displaying DECwindows Test Results 8.6 Creating a DECwindows Benchmark Mask 9 Building the Application With MMS 9.1 Building from CMS Classes 9.2 MMS Flags and Macros 9.3 MMS Rules 9.4 MMS Targets 9.5 MMS Description File Command Options 10 Using DEC/Test Manager With PCA 10.1 Linking a Program With the Collector 10.2 Creating a Collector Initialization File 10.2.1 Creating a DEC/Test Manager Collection Prologue File 10.3 Creating a DEC/Test Manager Collection 10.4 Executing a DEC/Test Manager Collection 10.5 Using the Analyzer When Reviewing a Collection 10.6 Sample Session 10.7 Additional Considerations 10.7.1 System Considerations 10.7.2 Using the Collector SET COVERAGE Command with the /PREVIOUS Qualifier 10.8 Tuning an Application With PCA 10.9 Using the Analyzer to Perform a Call Tree Analysis 11 Maintaining the Application 11.1 CMS Provides History 11.2 SCA Provides Structural Information 11.3 MMS Simplifies Maintenance 11.4 CMS Used with MMS for Maintenance GLOSSARY EXAMPLES 4-1 Sample LOGIN.COM File 4-2 Project Logical Definitions File 8-1 Sample Collection Prologue File - COLLECTION_PROLOGUE.COM 8-2 Sample Collection Epilogue File - COLLECTION_EPILOGUE.COM 8-3 Test Prologue File for TRANSLIT_TEST 8-4 Test Epilogue File for TRANSLIT_TEST 8-5 TRANSLIT Test Template File - TRANSLIT_TEST.COM 9-1 A Build Procedure Using an MMS Description File 9-2 Flags and Macros Section of the Description File 9-3 Rules Section of the Description File 9-4 Targets Section of the Description File 10-1 Sample Collection Prologue File 10-2 Sample Collection Prologue File 10-3 PCA Collector Initialization File 10-4 Example Collection Prologue File 11-1 Dependencies in an MMS Description File FIGURES 1-1 VMS Tools Used in the Software Development Life Cycle 1-2 VAXset Tools Integration 2-1 Initial Storage Areas for a Typical Project 2-2 CMS Fetch Dialog Box 2-3 Build Directory Structure 2-4 Filling an SCA Library 2-5 Physical/Virtual SCA Libraries 2-6 Directory Structure of DEC/Test Manager Libraries 3-1 Initial Storage Areas for a Typical Project 3-2 Working SCA Libraries for Developers 3-3 Source Code Management 3-4 Grouping Test Descriptions 3-5 VAX Notes Keyword Dialog Box 5-1 CMS ACL Dialog Box 5-2 Specifying ACL for an Element List 5-3 Creating an Element 5-4 Create Element Dialog Box 5-5 CMS Library With Two Generations 5-6 Replace Dialog Box 5-7 Variants in a CMS Library 5-8 Merging With CMS Libraries 5-9 Create Class Dialog Box 5-10 Insert Generation Dialog Box 5-11 Classes in a CMS Library 5-12 Description File as Part of a CMS Class 6-1 Steps to Implement Code 6-2 Open Dialog Box 6-3 Using a Token with LSE 6-4 Expanding an LSE Token 6-5 Completing Changes to Code 6-6 LSE Review Buffer 6-7 DECwindows Debugger 6-8 Stepping Into COPY_FILE 6-9 Examining a Variable 6-10 Goto Declaration in SCA 6-11 Navigating Based on FIND Results 6-12 SCA INSPECT Command 6-13 Extracting a Token 6-14 Creating an Environment File 7-1 Sample Routine Containing Pseudocode 7-2 Tags in a Pascal Header Comment 7-3 Providing Header Comments for COPY_FILE 7-4 COPY_FILE Top Level Outline 7-5 Creating a WHILE Loop with Pseudocode Placeholders 7-6 Replacing Pseudocode with Actual Code 7-7 SCA FIND SYMBOL=TAG Output 8-1 DEC/Test Manager Modify Library Dialog Box 8-2 DEC/Test Manager Create Test Dialog Box 8-3 DEC/Test Manager Create Variable Dialog Box 8-4 DEC/Test Manager Create Collection Dialog Box 8-5 Displaying Differences 8-6 Expanding a DEC/Test Manager Library Specification 8-7 Sample DECwindows Recording Session 8-8 Displaying Differences 8-9 Creating a Benchmark Mask 10-1 Phases in Test Execution When Using DEC/Test Manager with the PCA 10-2 PCA Annotated Source Listing 10-3 Static Call Tree Analysis 10-4 PCA Dynamic Call Tree 11-1 CMS Restrict Elements Dialog Box 11-2 CMS Restrict History Dialog Box 11-3 SCA FIND Command TABLES 3-1 Examples of Logical Names for Directories 3-2 Keywords for a Sample QAR System 4-1 Project's Directories 9-1 MMS Command Options