NATO UNCLASSIFIED NATO STANDARD FOR THE DEVELOPMENT OF REUSABLE SOFTWARE COMPONENTS yolume 1 (of 3 Documents) Development of Reusable Software Components Management of a Reusable Software Component Library Software Reuse Procedures Issued and Maintained by: NATO COMMUNICATIONS AND INFORMATION SYSTEMS AGENCY (Tel.Brussels(2).728.8490) This document may be copied and distributed without constraint,for use within NATO and NATO nations. NATO UNCLASSIFIED
N A T O U N C L A S S I F I E D NATO STANDARD FOR THE DEVELOPMENT OF REUSABLE SOFTWARE COMPONENTS Volume 1 (of 3 Documents) - Development of Reusable Software Components - Management of a Reusable Software Component Library - Software Reuse Procedures Issued and Maintained by: NATO COMMUNICATIONS AND INFORMATION SYSTEMS AGENCY (Tel. Brussels (2).728.8490) This document may be copied and distributed without constraint, for use within NATO and NATO nations. N A T O U N C L A S S I F I E D
Table of Contents Section Title Page Table of Contents ii List of Figures .iv List of Tables PARTI INTRODUCTION AND BACKGROUND Section 1 1.1 Purpose and Scope... 1-1 1.2 Guide to Using this Manual .1-1 Section 2 Applicable Documents...... .2-1 Section 3 Basic Reuse Concepts. …3-1 3.1 Definitions.. 3-1 32 Expected Benefits of Reuse 3-2 3.3 Dimensions of Reuse. .3-4 3.4 Forms of Reuse. 3-5 3.5 Issues in Achieving Reuse 3-6 PART II STANDARD Section4 Requirements Analysis.. 41 4.1 Requirements that Encourage Reuse .41 42 Requiring Reusability 42 4.3 The Role of Domain Analysis. .44 4.4 Requirements Specifications as RSCs. 46 Section5 Design Principles. 5-1 51 Transition from Requirements Analysis 5-1 5.2 Models,Architectures,and Interfaces. .5-2 5.3 Designing for Modification. .5-6 54 Design Methods 5-8 5.5 Designs as RSCs 5-11 5.6 Selecting CASE Tools .5-11 i
ii Table of Contents Section Title Page Table of Contents...................................................................................... ii List of Figures........................................................................................... iv List of Tables..............................................................................................v PART I INTRODUCTION AND BACKGROUND Section 1 Introduction............................................................................................ 1-1 1.1 Purpose and Scope ................................................................................... 1-1 1.2 Guide to Using this Manual ..................................................................... 1-1 Section 2 Applicable Documents........................................................................... 2-1 Section 3 Basic Reuse Concepts ............................................................................ 3-1 3.1 Definitions................................................................................................ 3-1 3.2 Expected Benefits of Reuse ..................................................................... 3-2 3.3 Dimensions of Reuse ............................................................................... 3-4 3.4 Forms of Reuse ........................................................................................ 3-5 3.5 Issues in Achieving Reuse ....................................................................... 3-6 PART II STANDARD Section 4 Requirements Analysis .......................................................................... 4-1 4.1 Requirements that Encourage Reuse ....................................................... 4-1 4.2 Requiring Reusability .............................................................................. 4-2 4.3 The Role of Domain Analysis.................................................................. 4-4 4.4 Requirements Specifications as RSCs ..................................................... 4-6 Section 5 Design Principles.................................................................................... 5-1 5.1 Transition from Requirements Analysis .................................................. 5-1 5.2 Models, Architectures, and Interfaces ..................................................... 5-2 5.3 Designing for Modification...................................................................... 5-6 5.4 Design Methods ....................................................................................... 5-8 5.5 Designs as RSCs .................................................................................... 5-11 5.6 Selecting CASE Tools ........................................................................... 5-11
Table of Contents(Continued) Section Title Page Section6 Detailed Design and- 6.1 Transition from Design to Code 61 6.2 Program Structuring. .6-3 6.3 Interfaces... .6-6 6.4 Parameterization 69 6.5 Handling Errors and Exceptional Conditions 6-11 6.6 Efficiency... .6-14 6.7 Detailed Coding Standard. 6-17 Section7 Quality Assurance and Test 71 71 Evaluation Activities. .7-1 7.2 Metrics .7-2 7.3 Test Procedures.. 4 7.4 Problem Resolution 44 7-5 Section 8 Documentation 81 8.1 Application of Conventional Documentation Standards 8-1 82 Documentation for the Reuse Library. .8-2 83 The Reuser's Manual. 8-4 8 Formal Specification .8-6 APPENDIX Appendix A Ada Coding StandardA-. Identifiers A-2 A.2 Format and Layout. A-5 A.3 Commentary... …A-8 A.4 Types and Subtypes... A-11 A.5 Named Numbers,Constants,and Literals. A-15 A.6 Expressions.. .A-16 A.7 Control Structures A-18 A.8 Exceptions.. A-20 A.9 Program Structure and Compilation Units. .A-22 A10 Parameters. A-24 A.11 Tasks A-26 A.12 Other Areas.. A-28
iii Table of Contents (Continued) Section Title Page Section 6 Detailed Design and Implementation................................................... 6-1 6.1 Transition from Design to Code .............................................................. 6-1 6.2 Program Structuring................................................................................. 6-3 6.3 Interfaces.................................................................................................. 6-6 6.4 Parameterization ...................................................................................... 6-9 6.5 Handling Errors and Exceptional Conditions ........................................ 6-11 6.6 Efficiency............................................................................................... 6-14 6.7 Detailed Coding Standard...................................................................... 6-17 Section 7 Quality Assurance and Test .................................................................. 7-1 7.1 Evaluation Activities................................................................................ 7-1 7.2 Metrics ..................................................................................................... 7-2 7.3 Test Procedures........................................................................................ 7-4 7.4 Problem Resolution.................................................................................. 7-5 Section 8 Documentation ....................................................................................... 8-1 8.1 Application of Conventional Documentation Standards ......................... 8-1 8.2 Documentation for the Reuse Library...................................................... 8-2 8.3 The Reuser’s Manual ............................................................................... 8-4 8.4 Formal Specification................................................................................ 8-6 APPENDIX Appendix A Ada Coding Standard........................................................................... A-1 A.1 Identifiers ................................................................................................ A-2 A.2 Format and Layout.................................................................................. A-5 A.3 Commentary............................................................................................ A-8 A.4 Types and Subtypes .............................................................................. A-11 A.5 Named Numbers, Constants, and Literals............................................. A-15 A.6 Expressions ........................................................................................... A-16 A.7 Control Structures ................................................................................. A-18 A.8 Exceptions............................................................................................. A-20 A.9 Program Structure and Compilation Units............................................ A-22 A.10 Parameters............................................................................................. A-24 A.11 Tasks ..................................................................................................... A-26 A.12 Other Areas ........................................................................................... A-28
List of Figures Figure Title Page Figure 5.1- Layered Data Base Management Architecture5-5 Figure 6.2-Using a Filter Routine to Localize Dependencies. .6-6 Figure 8.3- Example Outline for a Reuser's Manual8-5 iv
iv List of Figures Figure Title Page Figure 5.1 - Layered Data Base Management Architecture ........................................ 5-5 Figure 6.2 - Using a Filter Routine to Localize Dependencies.................................... 6-6 Figure 8.3 - Example Outline for a Reuser’s Manual.................................................. 8-5
List of Tables Table Title Page Table 6.1-A Taxonomy of RSC Interface Types....... 6-7
v List of Tables Table Title Page Table 6.1 - A Taxonomy of RSC Interface Types ..................................................... 6-7