NATO UNCLASSIFIED NATO STANDARD FOR MANAGEMENT OF A REUSABLE SOFTWARE COMPONENT LIBRARY Volume 2 (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 MANAGEMENT OF A REUSABLE SOFTWARE COMPONENT LIBRARY Volume 2 (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..... …i List of Tables PARTI INTRODUCTION AND BACKGROUND Section 1 Introduction. .1-1 1.1 Purpose and Scope.... 1-1 1.2 Guide to Using This Manua 1-1 Section2 Applicable Documents.... 2-1 Section3 Basic Reuse Concepts .3-1 3.1 Definitions.. .3-1 3.2 Expected Benefits of Reuse .3-2 33 Dimensions of Reuse....... 3-4 34 Forms of Reuse. 3.5 3.5 Issues in Achieving Reuse 36 Section 4 Functional Overview of Reuse Library.. 41 4.1 Initial versus Final Operating Capability. .4-1 4.2 Primary Function of Library .41 4.3 Approach.... .4-1 4.4 Other Functions in Support of Reuse... .42 PART II STANDARD Section 5 Requirement Analysis. .5-1 5.1 General Cost-Effectiveness/Operational Objectives. .5l 52 Library Supporting Objectives. 5-1 Section6 RSC Accession.. 6.1 Proposed RSC List... 444444444444小44444 6 6.2 Evaluation and Ranking - 6.3 Acquisition.. .63 6.4 Quality Assessment 65 6.5 Documentation. .6-8 6.6 Classification. .6-9
ii Table of Contents Section Title Page Table of Contents...................................................................................... ii 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 Section 4 Functional Overview of Reuse Library................................................ 4-1 4.1 Initial versus Final Operating Capability................................................. 4-1 4.2 Primary Function of Library .................................................................... 4-1 4.3 Approach.................................................................................................. 4-1 4.4 Other Functions in Support of Reuse....................................................... 4-2 PART II STANDARD Section 5 Requirement Analysis............................................................................ 5-1 5.1 General Cost-Effectiveness/Operational Objectives................................ 5-1 5.2 Library Supporting Objectives................................................................. 5-1 Section 6 RSC Accession........................................................................................ 6-1 6.1 Proposed RSC List................................................................................... 6-1 6.2 Evaluation and Ranking........................................................................... 6-2 6.3 Acquisition............................................................................................... 6-3 6.4 Quality Assessment.................................................................................. 6-5 6.5 Documentation......................................................................................... 6-8 6.6 Classification............................................................................................ 6-9
Table of Contents(Continued) Section Title Page 6.7 Assimilation and Distribution 6-10 Section 7 RSC Management... .7-1 7.1 RSC Tracking and CM .7-1 7.2 Tracking Reusers.. 7-2 Section 8 Library Tool Management. .81 8.1 Library Staff Tool Requirements 8-1 8.2 Library User Tool Requirements .8-3 Section9 Library Organizational Management.. .9-1 9.1 Staff Skills and Responsibilities 9 92 User Services... .9-2 9.3 Performance Evaluation 9-3 APPENDICES Appendix A Evaluating RSC Cost-Effectiveness. A-1 A.1 Overview A-1 A.2 Benefits. A-1 A.3 Costs A-2 A.4 Risks. A-2 A.5 Net Saving to the Reuser A-2 A.6 Net Saving to the Supported Program ....... A-3 A.7 Annual Costs and Adjustments for Future Values..... A-3 Appendix B The Faceted Classification Scheme...... B-1 B.1 How to Classify a Reusable Software Component B-1 B.2 Maintaining the Library's Classification Scheme. B-4 Appendix C Forms and Checklists. .C-1 RSC File Checklist..... .C-2 RSC File Cover Sheet.......... C-3 Proposed RSC Requirements Form. C-4 Cost-Effectiveness Evaluation Form,Part 1. C-5 Cost-Effectiveness Evaluation Form,Part 2. C-6 Conformance Checklist. C-7 i试
iii Table of Contents (Continued) Section Title Page 6.7 Assimilation and Distribution................................................................ 6-10 Section 7 RSC Management .................................................................................. 7-1 7.1 RSC Tracking and CM............................................................................. 7-1 7.2 Tracking Reusers ..................................................................................... 7-2 Section 8 Library Tool Management.................................................................... 8-1 8.1 Library Staff Tool Requirements............................................................. 8-1 8.2 Library User Tool Requirements ............................................................. 8-3 Section 9 Library Organizational Management.................................................. 9-1 9.1 Staff Skills and Responsibilities .............................................................. 9-1 9.2 User Services ........................................................................................... 9-2 9.3 Performance Evaluation........................................................................... 9-3 APPENDICES Appendix A Evaluating RSC Cost-Effectiveness..................................................... A-1 A.1 Overview................................................................................................. A-1 A.2 Benefits ................................................................................................... A-1 A.3 Costs........................................................................................................ A-2 A.4 Risks........................................................................................................ A-2 A.5 Net Saving to the Reuser......................................................................... A-2 A.6 Net Saving to the Supported Program .................................................... A-3 A.7 Annual Costs and Adjustments for Future Values.................................. A-3 Appendix B The Faceted Classification Scheme ......................................................B-1 B.1 How to Classify a Reusable Software Component..................................B-1 B.2 Maintaining the Library’s Classification Scheme....................................B-4 Appendix C Forms and Checklists ........................................................................... C-1 RSC File Checklist...................................................................................C-2 RSC File Cover Sheet ..............................................................................C-3 Proposed RSC Requirements Form .........................................................C-4 Cost-Effectiveness Evaluation Form, Part 1............................................C-5 Cost-Effectiveness Evaluation Form, Part 2............................................C-6 Conformance Checklist............................................................................C-7
Table of Contents(Continued) Section Title Page Incremental Enhancement Form. C-8 Completeness Assessment Checklist. C-9 General Quality and Reusability Rating Form. C-10 Summary of Recommendations Form C-11 公
iv Table of Contents (Continued) Section Title Page Incremental Enhancement Form..............................................................C-8 Completeness Assessment Checklist .......................................................C-9 General Quality and Reusability Rating Form.......................................C-10 Summary of Recommendations Form ...................................................C-11
List of Tables Table Title Page Table B.1-Classification for a Sort Routine B-2 Table B.2-Classification for a Generic Sort Routine..... B-2
v List of Tables Table Title Page Table B.1 - Classification for a Sort Routine..............................................................B-2 Table B.2 - Classification for a Generic Sort Routine ................................................B-2
PART I INTRODUCTION AND BACKGROUND
PART I INTRODUCTION AND BACKGROUND
Section 1 Introduction The Standard for Management of a Reusable Software Component(RSC) Library provides guidance in the establishment and operation of a NATO- controlled resource to support the reuse of software life-cycle products in NATO contracts. The following subsections describe the purpose of this manual and explain how to use it effectively. 1.1 Purpose and Scope In order to achieve actual benefits from software reuse,reusable assets and associated resources must be managed and controlled;this manual provides guidance to NATO,host-nation,and contractor personnel on the establishment and operation of a software reuse support organization, hereinafter called a library. The standard is intended to reflect NATO's current approach to the issues of software reuse and describe the activities by which the personnel of the library address those issues to achieve specific ends The guidance is prescriptive to the degree that any management-oriented manual can be;where there are alternatives,the standard presents criteria for deciding among them.The approach is largely independent of specific methods and tools and easily adaptable to project software engineering practice.Issues pertaining to trusted software are beyond the scope of the standard, but may be addressed in the future. The primary audience is the staff of a library operated by or on behalf of NATO or a host- nation.NATO and host-nation program offices will use the guidance in establishing IFB requirements and in guiding contractors. This is one of a set of three sofware reuse standards developed by NACISA.This manual specifically addresses the management of a library of reusable components.The other two documents are standards for the creation of reusable software components and for the reuse of existing software in ongoing projects. 1.2 Guide to Using This Manual This standard p ovides s specific guidance,organized by library activity,as a basis for ing individual project practice The Standard for Management of a Reusable Software Component(RSC)Library is organized in two parts.Part I provides an introduction to the manual and a brief discussion of general 1-1
1-1 Section 1 Introduction The Standard for Management of a Reusable Software Component (RSC) Library provides guidance in the establishment and operation of a NATOcontrolled resource to support the reuse of software life-cycle products in NATO contracts. The following subsections describe the purpose of this manual and explain how to use it effectively. 1.1 Purpose and Scope In order to achieve actual benefits from software reuse, reusable assets and associated resources must be managed and controlled; this manual provides guidance to NATO, host-nation, and contractor personnel on the establishment and operation of a software reuse support organization, hereinafter called a library. The standard is intended to reflect NATO’s current approach to the issues of software reuse and describe the activities by which the personnel of the library address those issues to achieve specific ends. The guidance is prescriptive to the degree that any management-oriented manual can be; where there are alternatives, the standard presents criteria for deciding among them. The approach is largely independent of specific methods and tools and easily adaptable to project software engineering practice. Issues pertaining to trusted software are beyond the scope of the standard, but may be addressed in the future. The primary audience is the staff of a library operated by or on behalf of NATO or a hostnation. NATO and host-nation program offices will use the guidance in establishing IFB requirements and in guiding contractors. This is one of a set of three software reuse standards developed by NACISA. This manual specifically addresses the management of a library of reusable components. The other two documents are standards for the creation of reusable software components and for the reuse of existing software in ongoing projects. 1.2 Guide to Using This Manual This standard provides specific guidance, organized by library activity, as a basis for establishing individual project practice. The Standard for Management of a Reusable Software Component (RSC) Library is organized in two parts. Part I provides an introduction to the manual and a brief discussion of general
concepts of software reuse as a frame of reference for the reader,followed by a concise description of the library,its goals,and its activities.Part II is the actual standard.Its major sections address requirement analysis,RSC accession,configuration management,the management of automated library tools,and the management of the library organization as a whole. Within Part I,each regularly numbered paragraph forms part of the standard,and is considered essential in meeting the reuse objectives addressed by this manual:any deviation must be justified and approved.The standard is augmented by a number of guidelines(indicated by paragraph numbers beginning with the letter"G").Guidelines support the standard,identifying specific (potentially alternative)approaches to meeting the standard.Adherence to specific guidelines is not considered essential;however some effective approach to meeting the standard must be selected. The library manager should be familiar with the entire standard and be prepared,especially at the inception of the reuse program,to apply this guidance as flexibly as possible.Priority should be given to setting and achieving realistic goals(tangible benefits of reuse).rather than strict adherence to procedures that are likely to evolve for several years.Never forget that the library is a service and the application engineers seeking reusable components are the library's customers. 1-2
1-2 concepts of software reuse as a frame of reference for the reader, followed by a concise description of the library, its goals, and its activities. Part II is the actual standard. Its major sections address requirement analysis, RSC accession, configuration management, the management of automated library tools, and the management of the library organization as a whole. Within Part II, each regularly numbered paragraph forms part of the standard, and is considered essential in meeting the reuse objectives addressed by this manual; any deviation must be justified and approved. The standard is augmented by a number of guidelines (indicated by paragraph numbers beginning with the letter “G”). Guidelines support the standard, identifying specific (potentially alternative) approaches to meeting the standard. Adherence to specific guidelines is not considered essential; however some effective approach to meeting the standard must be selected. The library manager should be familiar with the entire standard and be prepared, especially at the inception of the reuse program, to apply this guidance as flexibly as possible. Priority should be given to setting and achieving realistic goals (tangible benefits of reuse), rather than strict adherence to procedures that are likely to evolve for several years. Never forget that the library is a service and the application engineers seeking reusable components are the library’s customers
Section 2 Applicable Documents This is one of a set of three documents,specifically addressing the management of a software reuse support organization.The other two documents are standards for the creation of reusable software components and for the reuse of existing software in projects Contel Corporation.Standardfor the Development of Reusable Software Components. NATO contract number CO-5957-ADA,1991. Contel Corporation.Standardfor Sofware Reuse Procedures.NATO contract numbe C0-5957-ADA,1991. Numerous other references were used in developing this standard,and provide additional guidance in managing a reuse library.Some that may be valuable to the user of this manual are: SofTech,Incorporated.Ada Portability Guidelines.Document number 3285-2-208/1. 1985. SofTech,Incorporated.Ada Reusability Guidelines.Document number 3285-2-208/2, 1985. SofTech,Incorporated.RAPID Center Policy Recommendation.Document number 3451-4-112/5.1,1988. SofTech,Incorporated.RAPID Center Library Procedures.Document number 3451-4-112/11,1988. SofTech,Incorporated.RAPID Center Reusable Software Component (RSC) Procedures.Document number 3451-4-326/4,1990. 2-1
2-1 Section 2 Applicable Documents This is one of a set of three documents, specifically addressing the management of a software reuse support organization. The other two documents are standards for the creation of reusable software components and for the reuse of existing software in projects: Contel Corporation. Standard for the Development of Reusable Software Components. NATO contract number CO-5957-ADA, 1991. Contel Corporation. Standard for Software Reuse Procedures. NATO contract number CO-5957-ADA, 1991. Numerous other references were used in developing this standard, and provide additional guidance in managing a reuse library. Some that may be valuable to the user of this manual are: SofTech, Incorporated. Ada Portability Guidelines. Document number 3285-2-208/1, 1985. SofTech, Incorporated. Ada Reusability Guidelines. Document number 3285-2-208/2, 1985. SofTech, Incorporated. RAPID Center Policy Recommendation. Document number 3451-4-112/5.1, 1988. SofTech, Incorporated. RAPID Center Library Procedures. Document number 3451-4-112/11, 1988. SofTech, Incorporated. RAPID Center Reusable Software Component (RSC) Procedures. Document number 3451-4-326/4, 1990
Section 3 Basic Reuse Concepts Software reuse offers tremendous benefits in cost savings and quality; however,it requires technical understanding,changed approaches,and an understanding of potential obstacles. This section provides a frame of reference for understanding the benefits and challenges of software reuse.It introduces the terminology and concepts used in the remainder of the manual and explains the goals underlying the guidance provided herein. 3.1 Definitions A consistent terminology is used throughout this and companion manuals. The following are definitions of the key terms used in this manual: Reuse-the use of an existing software component in a new context,either elsewhere in the same system or in another system Reusabilit-the extent to which a software component is able to be reused. Conformance to an appropriate design and coding standard increases a component's reusability. Reusable software component (RSC)-a software entity intended for reuse;may be design,code,or other product of the software development process.RSCs are sometimes called“software assets'”. Reuser-an individual or organization that reuses an RSC Portabilit-the extent to which a software component originally developed on one computer and operating system can be used on another computer and/or operating system.A component's reusability potential is greater if it is easily portable. Domain-a class of related software applications.Domains are sometimes described as "vertical"-addressing all levels of a single application area (e.g.,command and control)and"horizontal"addressing a particular kind of software processing (e.g. data structure manipulation)across applications.The potential for reuse is generally greater within a single do ain. Domain analysis-the analysis of a selected domain to identify common structures and functions,with the objective of increasing reuse potential Librar -a collection of reusable software components,together with the procedures and support functions required to provide the components to users Retrieval systeman automated tool that supports classification and retrieval of reusable software components,also called a"repository" 31
3-1 Section 3 Basic Reuse Concepts Software reuse offers tremendous benefits in cost savings and quality; however, it requires technical understanding, changed approaches, and an understanding of potential obstacles. This section provides a frame of reference for understanding the benefits and challenges of software reuse. It introduces the terminology and concepts used in the remainder of the manual and explains the goals underlying the guidance provided herein. 3.1 Definitions A consistent terminology is used throughout this and companion manuals. The following are definitions of the key terms used in this manual: Reuse—the use of an existing software component in a new context, either elsewhere in the same system or in another system Reusability—the extent to which a software component is able to be reused. Conformance to an appropriate design and coding standard increases a component’s reusability. Reusable software component (RSC)—a software entity intended for reuse; may be design, code, or other product of the software development process. RSCs are sometimes called “software assets”. Reuser—an individual or organization that reuses an RSC Portability—the extent to which a software component originally developed on one computer and operating system can be used on another computer and/or operating system. A component’s reusability potential is greater if it is easily portable. Domain—a class of related software applications. Domains are sometimes described as “vertical”—addressing all levels of a single application area (e.g., command and control) and “horizontal”—addressing a particular kind of software processing (e.g., data structure manipulation) across applications. The potential for reuse is generally greater within a single domain. Domain analysis—the analysis of a selected domain to identify common structures and functions, with the objective of increasing reuse potential Library—a collection of reusable software components, together with the procedures and support functions required to provide the components to users Retrieval system—an automated tool that supports classification and retrieval of reusable software components, also called a “repository