Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Guideline Standards


Requirement Standards


This proposal aims to address the following objectives:

  • Associate standard, structured metadata with each requirement to aid in a variety of use cases such as dependency tracking, searching, filtering, and reporting.
  • Export requirements in a machine-readable format for use by other projects such as the VNF Validation Project.
  • Generate different formats and outputs without duplicating requirement content (ex: appendices, tables, CSV files, etc.)
  • Provide traceability within the document between requirements, test cases, and other items within the documents.

Approach

Requirements will still be maintained in the reStructuredText file, but they will be shifted to structured directives using the sphinxcontrib-needs extension.  This extension provides a way to meet each of the needs above.

Here is an example of a requirement after the conversion:
Requirement Example

.. req::
    :id: R-01334
    :keyword: MUST
    :target: VNF
    :links_incoming: R-01335
 
 
    The VNF **MUST** conform to the NETCONF RFC 5717, Partial Lock Remote Procedure Call


These requirement definitions can be processed by the sphinxcontrib-needs extension and used in a variety of ways.

  • Summary tables can be created via a needtable directive which provides a number of capabilities such as:
    • Export to a variety of formats such as CSV, Excel, and PDF
    • Filtering
    • Sorting
  • All requirements can be exported as JSON file for consumption by other projects.
  • By default metadata is hidden in the HTML document, but can easily be expanded to allow readers to learn more about the requirement.

Metadata Standards

The following table outlines the proposed standard metadata elements that will be associated with the requirements. This list may change over time.

Field Name

Required

vs. Optional

Data Type

Valid Values/Format

Notes

targetRequiredString

VNF, VNFC, VNF PROVIDER, VNF HEAT ORCHESTRATION TEMPLATE,

VNF PACKAGE, PNF, XNF

The component to which the requirement applies.
keywordRequiredStringMUST, MUST NOT, SHOULD, SHOULD NOT, MAYThe RFC 2119 keyword for the requirement
introducedOptionalStringlower case release name (ex: bejing, casablanca)The release the requirement was initially introduced
updatedOptionalStringlower case release nameThe release the requirement was last modified
impactsOptionalList of StringComma separated list of ONAP components (ex: so, sdc)The various ONAP components that need to be aware of any changes to the requirement
validation_modeOptionalStringstatic, stand_alone, in_service

How the requirement is validated:

static - validated by statically inspecting the VNF package data

stand_alone - validated by running tests against the VNF itself

in_service - validated in the context of a full or partial ONAP deployment

validated_byOptionalList of String

Comma separated list:

vvp, vnfsdk, sdc

Projects that implement validations of this requirement.
test_caseOptionalRST Link
Link to source file that implement the test case
notesOptionalStringFree form textShort notes about the requirement

ONAP/VNFRQTS  VNF Requirements Discussion  

...