DI-EDRS-82219
Algorithm Description Document (ADD)
The Algorithm Description Document (ADD) provides the detailed representation of algorithms and equations used in a system, documenting their life-cycle, trade study analyses, and validation results.
Approval DateMay 16, 2018
AMSC Number9941
Preparing ActivityMDA
Project NumberEDRS-2018-001
OPR—
DTIC ApplicableNo
GIDEP ApplicableNo
Limitation—
Applicable FormsNone
Approval Limitation—
Form Version—
DID Formatfree_text
963C CompliantYes
DISTRIBUTION STATEMENT A: Approved for public release; distribution is unlimited.
Application & Interrelationship
—
Use & Relationship
The Algorithm Description Document (ADD) provides the detailed representation of the algorithms and equations utilized in the system and the system components. The ADD documents the life-cycle of the algorithms and includes trade study analyses with validation results to illustrate the algorithm design intent.
This DID contains the format, content, and intended use information for the data deliverable resulting from the work task described in the solicitation.
Preparation Instructions
1Reference Documents.The applicable issue of the documents cited herein, including their approval dates and dates of any applicable amendments, notices, and revisions, shall be as specified in the contract.
2Format.The ADD shall be machine-readable by the Government and adhere to the format described in the Content section.
3Content.This section shall be divided into paragraphs, as needed, to establish the context for the content described in later sections.
3.1Reference documents.This section shall list the number, title, revision, and date of all documents referenced in this plan. This section shall also identify the source for all documents not available through normal Government stocking activities.
3.2Document management and configuration control information.Identify the version, release date, and other relevant management and configuration control information associated with the current version of the document. Include a change history, highlighting significant changes from version to version.
3.4Purpose and Scope of the ADD.Explain the ADD's overall purpose and scope. Provide a general description of system operational capability and functional capability.
3.5Algorithm Description and Definition.Each algorithm shall contain the following:
3.5.1Name of the algorithm.Each algorithm shall have a unique title or name with version control.
3.5.2Abstract.Provide a brief overview and scientific description of the algorithm.
3.5.3Methodology.Provide the methodology or theory of the algorithm in detail. The relevant research results need to be included as well. The contents, which are necessary for understanding specifics of the algorithm, especially for translating it into software, shall be included. Described and explain, term by term, required equations and computations. Further subsections can be added, if needed, under this subsection. All equations, symbols, etc. shall follow the nomenclature standards used in popular peer-reviewed journals (e.g. AMS journals). The methodology or theory shall be easily understandable, logically clear.
3.5.3.1Data Dictionary.The Data Dictionaries shall compile data elements in two ways. "Appendix C - Data Elements List, Alphabetical Order" shall list all the data elements in the Scientific Document in alphabetical order. "Appendix D - Data Elements List," shall list the data elements for each subroutine or sub-algorithm in alphabetical order. Each listing shall include the following:
1. Variables - all input, output, and processing (local) variables with a description of each variable's data type (e.g. floating point, integer, character string), precision, units (e.g. degrees, percentages), valid ranges (e.g. 0 - infinity; -1.0 - +1.0 inclusive), string length for character strings, default values if any, and a short description of the information the variable contains (e.g. "Width of the radar beam in degrees ...").
2. File names - whether the file is used for input or output, a brief description of the data, and the format of the data (or a reference to an interface control document (ICD))
3. Subroutines - a brief description of the subroutine, including mandatory and optional input and output data elements, usage, and function performed.
All data element names shall be self-descriptive (i.e. the name shall describe what the data element contains or, in the case of subroutines, the function that it performs) and, with the possible exception of loop counters, shall never be single characters. Widely recognized symbols from textbooks and professional literature (e.g., DBZE for Reflectivity Factor) are acceptable.
3.5.3.2Diagrams.This section will contain Data Flow Diagrams (DFDs) which capture the data flow within the algorithm using standard diagramming techniques such as Unified Modeling Language (UML). The contractor shall specify in the project plan (s) what technique will be used. The DFDs shall represent:
- External devices sending and receiving data
- Processes that change the data
- Data storage locations
This section shall also contain Logic Diagrams and State Diagrams as appropriate. Logic Diagrams represent logical concepts and State Diagrams represent the behavior of a system. State diagrams describe all of the possible states of an object as events occur.
3.5.4Limitations/Constraints.Describe the limitations and constraints caused by the input data, special types of data required, limitations inherent in the technique, which the algorithm is based on, situations where the algorithm cannot be applied, potential implementation difficulties, and any other problems known to be associated with the algorithm. This section also shall describe the implementation and operational impacts of these limitations.
3.5.5System Dependencies.This section shall provide a description of system dependencies, constraints, and assumptions regarding the algorithm/model and its use. Include the following:
- Assumptions based on other algorithms or models
- End-user characteristics
- Possible changes in functionality
- Necessary conditions for the algorithm
3.5.6Interfaces.Describe how the algorithm interfaces with other algorithm products or users for input and output. Examples of such interfaces include library routines or data streams. Additionally, reference external documents that describe interface formats in detail and list the references to all related data, standards, and technical sources in the algorithm development.
3.5.7Computations.List the mathematical formulas being carried out by the Computations. These formulas shall be grouped and labeled by the pseudocode where they are implemented. For each formula, provide a brief explanation of the subroutines in which they are implemented. Each formula shall be followed by a brief explanation of the symbology used and the method used to realize the implementation in the Procedure section.
3.5.8Procedures/Pseudocode.Describe and provide the processing functions in a step-by-step fashion using pseudocode. The term "pseudocode" is used here to describe an English-like language that articulates the steps carried out in an algorithm by providing focus on the logic of the algorithm.
3.5.9Outputs.Provide a description of all outputs produced or modified by the activities in the algorithm. Describe the format of the output data in sufficient detail for downstream algorithms to be easily interfaced, stating such factors as whether the data should be output in real time (and if so, how often), the format of the data, and the destination of the output (e.g. file, other process, graphical user interface, etc.).
3.5.10Analysis Results.Describe the results of any quantitative or qualitative analyses that have been performed that provide evidence that the algorithm is fit for its purpose.
3.5.11Summary of Changes in Current Version.For versions of the ADD after the original release, summarize the actions, decisions, decision drivers, analysis and trade study results that became decision drivers, requirements changes that became decision drivers, and how these decisions have caused the algorithm to evolve or change.
3.6References.Provide all the citations for each reference document in the standard format (author(s), year, title, title of journal, volume number, page number, etc.) Provide in alphabetical order based on the last name of the first author.
3.7Glossary.Provide a list of definitions of special terms used in the ADD.
3.8Acronym list.Provide a definition of the acronyms used in the ADD.
3.9Appendix A: Data Elements List, Alphabetical Order.This appendix will contain an alphabetical listing of all data elements used within the document as well as their descriptions. Each item in this list shall refer to the unique Algorithm Title/Name.
3.10Appendix B: Data Elements List, Subroutine Order.This appendix will contain a listing of all data elements used within the document as well as their descriptions, similar to and duplicating the listing in Appendix A - Data Element List, Alphabetical Order. This appendix will group and label data element entries by subroutine or sub-algorithm. Each item in this list shall refer to the unique Algorithm Title/Name.
Schema v3.0Community-maintained · Verify against ASSIST