19780022904.Pdf
Total Page:16
File Type:pdf, Size:1020Kb
General Disclaimer One or more of the Following Statements may affect this Document This document has been reproduced from the best copy furnished by the organizational source. It is being released in the interest of making available as much information as possible. This document may contain data, which exceeds the sheet parameters. It was furnished in this condition by the organizational source and is the best copy available. This document may contain tone-on-tone or color graphs, charts and/or pictures, which have been reproduced in black and white. This document is paginated as submitted by the original source. Portions of this document are not fully legible due to the historical nature of some of the material. However, it is the best reproduction available from the original submission. Produced by the NASA Center for Aerospace Information (CASI) JPL PUBLICATION 78-53 Standard Practices for the Implementation of Computer Software A. P. Irvine F_6 or r r t l September 1, 1978 National Aeronautics and Space Administration z.'tk _ S ' i O ^;,S^ St1' {^Cttt1't wv Jet Propulsion Laboratory Califoi nia Institute of Technology ^-^\ Pasadena, California 91103 9^^ (NASA-CR-157556) STANDAFO FFACTICES FCE TAE N78-30W IMELEMENTATICN CF CCMEDIFF SCF7^AFE (JEt Propulsion Lab.) 219 p HC A1C/MF A01 CECI OSF Urclas G3/61 29114 Standard Practices for the Implementation cif - omputer Software A. P. Irvine Editor j3 September 1, 1978 _ j National Aeronautics and Space Administration Jet Propulsion Laboratory California Institute of Technology -Pasadena, California .91103 -13 The research described in this publication was carried out by the Jet Propulsion Laboratory, California Institute of Technology, under NASA Contract No. NAS7-100. FOREWORD The 3PL Tracking and Data Acquisition Staff, which designs, #1 implements, and manages the Deep Space Network for NASA's 3 i Office of Space Tracking and Data Systems, realized more ± ;'a than 8 years ago that the tracking stations were beginning to look more like computer facilities. A major -difficulty in .: reaping the full benefits of computers for providing tracking services was the inability to make software development an understood branch of engineering. Under the leadership of Walter K. Victor, then Deputy Assistant Laboratory Director ti ' for Tracking and Data Acquisition at dPL, formal efforts I t were begun in software methodology research. in addition, within the Tracking and Data Acquisition Office itself, a w ^. software seminar was started for the management staff.-': The goal was to educate ourselves so that we could manage software better as an extension of the engineering manage- =: ment techniques already being used for hardware. One result of this long effort is the issuance of the practices w presented here. f, ORIGINAL PAGE IS OF PooR RITALITy 111 ACKNOWLEDGMENT This work is a revision of six Standard Practices that were originally developed by the engineering staff at the Jet Propulsion Laboratory invol v ed in the implementation of various computers into th y- Deep Space Network. Writing and production of the .jriginal six practices was coordinated by Dan ;-el C. Preska. The review process of those practices was managed by Edward C. Posner. Mahlon F. Easterling, then Manager of the Tracking and Data Acquisition Planning Office at JPL, oversaw the entire process. Technical docw-iientation support was provided by Richard C. Chand?ee. Special acknowledgment should be given to K. C. Tausworthe, P. I. Westi-nureland, and A. F. Ellman for their contributions. 1 `.. ^^ - _. =t ^ t-4 ABSTRACT Standard Practices for the Implementation of Computer Software provides a standard approach to the development of computer programs. This approach covers the life cycle of software development from the Planning and Requirements phase through the Software Acceptance Testing phase. All documents necessary to provide the required visibility into the software life cycle process are discussed in detail. OMGTNAL PAGE IS ( )j^ P' 'i t" O 1 ALITY v --t,. '._. CONTENTS C1IAPTER 1. GUIDELINES AND POLICIES ... .. .. .. .. ... .. 1-1 I. INTRODUCTION . 1--1 A. PURPOSE ............................... 1-1 B. SCOPE ................................ 1-1 C. APPLICABILITY . .. ..... .. .. .. I-2 II. METHODOLOGY AND POLICY . 1-3 A. METHODOLOGY FOR IMPLEMENTING SOFTWARE.............................. 1-3 1. Principles of Structured Programming. , . , , 1-4 2. Top - Down Construction . 1 - 8 3. Concurrent Design and Documentation, C oding, and Testing . 1--11 B. POLICIES FOR IMPLEMENTING SOFTWARE . 1-14 1. Adherence to Software Standard Practices . 1-14 2. Adherence to Referenced Practices . 1-17 3. Use of Standard High-Level, Stable Programming Languages . 1--18 4. Top-Down. Concurrent Implementation . 1-19 5. Use of Structured Programming Principles. 1-20 b. Modular Implementation . 1-21 7. Implementation Team . 1-22 8. Standard Project Milestones . 1-23 9. Project Scheduling .. .. ............ .. .. ... 1-23 10. Project Reviews . 1-24 11. Project Documentation . 1-25 12. Quality Assurance . .. ... .. .... .. .. ... 1-Z5 vii .^-^ ^,^-,,.ni.......,:--E ,^.,,,T.I ass.. 1 .-.•.,. t _ ,:^E r.^^^^...^i'...: r-^ w,^...^:..,., _. -..^ .^^:W,:..^._. ^ . ^,. _ I^"_ _5 T..,..^..._ ^^ T^ A.^^^_ ^ _."^"^ _,t w , ^ '?C'7. u.— ^I^»^.-•-,»'i^,:,-u:.':4T^^^^.. ,-:LR:.r. ^a<i.^-r-i..^ .: ^s,_ ^^^-,si ^Lw^n.-^,..^/,..^ww,^^om..ns lr:,...--ai:.arcaesxL..0 _..s..^:v-+.+—.vrrx.. .{.^.T-.,^..,.,.-...^..H.ws.^v.mE.-.o, a..-.,...M....-^.e^^:,-rc^^r^.-.:1 CONTENTS (cont'd) III. SOF TWARE IMPLEMENTA-TION PROCESS AND GUIDELINES . 1-27 A. IMPLEMENTATION PHASES . 1-27 1. Planning and Requirements . • • . • . 1-27 2. Design Definition . .. I-32 3. Design and Productions . .. 1-33 4. Acceptance Testing and Transfer to Operations • • . • • 1-35 5. Operations and Maintenance. 1-37 B. MILESTONES .... ...... .. ... ..... ..... 1-38 C. REVIEWS .............................. 1-38 D. DOCUMENTATION ........................ 1-39 1. General Document Information . 1-39 2. The Program Library . • . • • . 1-40 3. General Documentation Guidelines . 1-41 E, QUALITY ASSURANCE . 1-42 IV. DSN SOFTWARE IMPLEMENTATION FUNCTIONAL TASKS . .. 1-43 A. GENERAL . 1-43 B. INITIATOR/USER REPRESENTATION . 1-43 C. COGNIZANT DEVELOPMENT ENGINEERING OR PROJECT ENGINEERING ..... ...... .. .. 1-46 D. PROGRAMMING SECRETARIAT . .. .. 1-47 E. DESIGN ................................ 1-48 F. DESIGN CHECKING . .. .. 1-48 G. CODli%IC=, CtiEGKING ........ .. ......... ... 1-49 H. CODE AUDITING . .. .. 1-49 viii CONTENTS (cont'd) I, TEST DESIGN . 1-49 J. TEST DESIGN VERIFICATION .. .. .. ..... .. ... 1-50 K. TEST CONDUCTING ........................ 1-SO L. TEST EVALUATION .. ....... ....... ....... 1-51 CHAPTER 2. THE STANDARD PRACTICE FOR THE SOFTWARE REQUIREMENTS DOCUMENT ..... .. ..... ... 2-1 1. INTRODUCTION . .. .. 2-1 A. PURPOSE OF THIS STANDARD PRACTICE . 2-1 B. SCOPE OF SOFTWARE REQUIREMENTS DOCUMENTS ............................ 2-3 II. SRD CONTENTS . 2-5 A. CONTENT OUTLINE, . 2-5 B. OUTLINE DISCUSSION . .. 2-8 1. Introduction . 2-8 2. Management Requirements . .. 2-8 3. System Requirements . 2--12 4. Program Requirements . 2-12 III. SDR PREPARATION, REVIEW, AND APPROVAL . 2-16 A. PREPARATION ACTIVITIES . 2-16 1. Initiation an,d Requirements Identification. 2-16 2. Arbitration of Conflicting Requirements. 2-17 B. REVIEW AND APPROVAL . .. .. .. .. ........... Z-18 IV. OVERALL SUPPORT AND PREPARATION AIDS . 2-19 A. SUPPORT ............................... 2-19 B. PRE PA RA TION A IDS . 2-19 ix LF CONTENTS (cont'd) 1. SRD Format Conventions . .. 2-19 2. Content Characteristics . .. 2-Z1 CHAPTER 3. THE STANDARD PRACTICE FOR THE SOFTWARE DEFINITION DOCUMENT . ... ... 3-1 1. INTRODUCTION .......................... 3-1 A. PURPOSE OF THIS STANDARD PRACTICE ........ 3-1 B. SCOPE OF SOFTWARE DEFINITION DOCUMENTS . 3-1 II. SDD CONTENTS . .. 3-5 A. CONTENT OUTLINE . .. 3-5 B. OUTLINE DISCUSSION . 3-7 1. Introduction . .. .. 3-7 Z. Management Information . • . • . • • • . • . 3-10 3. System Environment . • . • . • • • . • 3--11 4. Program Architecture . • . • . • . • . • • • • • • • • • • . • • 3-13 5. Coding and Test Design Criteria . • • • 3-16 III. SDD PREPARATION, REVIEW, AND APPROVAL • • • 3-20 A. PREPARATION ACTIVITIES .... ....... • • • • • • 3-20 1. Architectural Design . • • . • • 3-20 2. Program Production Plan . • . • . • . • . • • . • • • 3-22 B. REVIEW AND APPROVAL . .. • • 3-24 1. SDD Approval ... ... .......... .... ........ 3-24 Z. SDD Review . .. 3--24 IV. PREPARATION AND DOCUMENTATION AIDS ...... 3-27 A. PREPARATION . .. .. .. 3-27 1. Functional Analysis . 3-27 x CONTENTS (cont'd) 2, Preliminary Functional Descriptions , . 3~28 B. DOCUMENTATION AND GRAPHIC AIDS . , , , , . , . , 3-29 l, 8IJD Format Conventions . , , , . , , . , . ]-SU 2. Information Flow Graphics , , , , . , , . , , . , . 3-31 3. Mode Diagrams , , ' . , , , . , , . , , 3-32 V. IMPLEMENTATION MANAGEMENT AIDS . , . , . ^ . 3-34 A. WORK BREAKDOWN, DESCRIPT3ON, AND BlJI}GEIIN{3 . , . , . , . 3-34 }. Work Breakdown Structure Elements . , . , . 3-34 2, Detailed Task Descriptions , , , . , . , . , . 3-35 S. Task Budgeting . ^ . , . , ' . ^ . , , ' . 3-38 B, STATUS REPORTING BEFORE SDD APPROVAL , , , , 3-40 l. Architectural Z)eaiQo and Build Status . 3-40 3. Software Technical Program Progress Report . , 3-40 CBAPIER 4. THE STANDARD PRACTICE FOR THE SOFTWARE SPECIFICATION I}{JCD88ENZ. , . , , . 4-1 1 ' l. lNTIlC)l}OCTICN , . , . 4-1 A. IzDIlP{JSIC OF THIS GTANZAI{I} PRACTICE . , . , 4-1 B. SCOPE OF SOFTWARE SPECIFICATION