:raw-html:`Dim` =============== :raw-html:`Command Line Interface` ---------------------------------- :raw-html:`Information` +++++++++++++++++++++++ .. requirement:: Dim_CLI_help :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/options.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`Dim shall provide a command line switch to print the command line usage.` .. requirement:: Dim_CLI_license :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/options.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`Dim shall provide a command line switch to print the license.` .. requirement:: Dim_CLI_version :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/options.rb, lib/dim/ver.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`Dim shall provide a command line switch to print the version.` :raw-html:`Errors` ++++++++++++++++++ .. requirement:: Dim_CLI_exit :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/options.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`On any invalid or missing command line arguments, Dim shall print a meaningful error message and exit with exit code != 0.` :raw-html:`Syntax` ------------------ .. information:: Dim_Syntax_overview :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: :comment: :miscellaneous: :refs: :raw-html:`The following chapter describes each attribute of the different file types. For a complete overview with additional information please refer to the user documentation.` .. requirement:: Dim_Syntax_YAML :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`All input files shall be in YAML format.` .. requirement:: Dim_Syntax_InvalidChars :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`Invalid characters (according to YAML standard) and in addition non-breaking spaces in requirements files shall be exchanged on-the-fly during loading by a YAML compatible replacement.` .. requirement:: Dim_Syntax_Values :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/ext/psych.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`All literal values (not arrays or hashes) shall be interpreted as strings even if they would be integers or booleans in standard YAML syntax, e.g. 123 shall be interpreted as "123".` .. requirement:: Dim_Syntax_utf8 :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`All files shall be compatible to UTF-8.` :raw-html:`Requirements Files` ++++++++++++++++++++++++++++++ .. requirement:: Dim_ReqFiles_document :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirement.rb, lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A requirements file shall have a "document" name attribute.
Allowed values: any non-unique, non-empty string. The same name shall be usable in different files.` .. requirement:: Dim_ReqFiles_MissingDocument :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`If the document name is missing in the requirements file, an error shall be raised.` .. requirement:: Dim_ReqFiles_enclosed :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirement.rb, lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A requirements file shall have an optional "enclosed" attribute which specifies files which are needed for the requirements, e.g. images.
Allowed values: a string or an array of strings. The strings must point to existing files and specified with relative paths without "..".
Default value: ""` .. requirement:: Dim_ReqFiles_metadata :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirement.rb, lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A requirements file shall have an optional "metadata" attribute which consists of any user specific string, e.g. the origin of the requirements document, history or version.
Allowed values: any string
Default value: ""` .. requirement:: Dim_ReqFiles_id :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirement.rb, lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A requirements file shall have zero or more requirements objects. These objects shall have strings as ID.
Allowed values for IDs: any string without the letter ","
Default value for IDs: n/a, must be specified explicitly` :raw-html:`Regular Form` ~~~~~~~~~~~~~~~~~~~~~~~~ .. requirement:: Dim_ReqFiles_regularYaml :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirement.rb, lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`In the regular form, the ID shall be a key of a collection of key/values pairs of strings.` .. requirement:: Dim_ReqFiles_type :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirement.rb, lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A requirements object shall have an optional "type" attribute.
Allowed values: "requirement", "information" and "heading_0" to "heading_100"
Default: "requirement"` .. requirement:: Dim_ReqFiles_text :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirement.rb, lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A requirements object shall have an optional "text" attribute.
Allowed values: any string
Default: ""` .. requirement:: Dim_ReqFiles_verificationCriteria :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirement.rb, lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A requirements object shall have an optional "verification_criteria" attribute.
Allowed values: any string
Default: ""` .. requirement:: Dim_ReqFiles_feature :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirement.rb, lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A requirements object shall have an optional "feature" attribute.
Allowed values: any string
Default: ""` .. requirement:: Dim_ReqFiles_changeRequest :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirement.rb, lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A requirements object shall have an optional "change_request" attribute.
Allowed values: any string
Default: ""` .. requirement:: Dim_ReqFiles_tags :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirement.rb, lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A requirements object shall have an optional "tags" attribute.
Allowed values: comma separated list of strings
Default: ""` .. requirement:: Dim_ReqFiles_asil :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: Dim_PropFiles_Property :sources: lib/dim/requirement.rb, lib/dim/loader.rb, lib/dim/consistency.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A requirements object shall have an optional "asil" attribute.
Allowed values: "not_set", "QM", "QM(A)", ... , "ASIL_D(D)"
Default: "not_set"` .. requirement:: Dim_ReqFiles_calString :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: Dim_PropFiles_Property :sources: lib/dim/requirement.rb, lib/dim/loader.rb, lib/dim/consistency.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A requirements object shall have an optional "cal" attribute.
Allowed values: "QM", "CAL_1", "CAL_2", "CAL_3", "CAL_4"
Default: "not_set"` .. requirement:: Dim_ReqFiles_developer :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirement.rb, lib/dim/loader.rb, lib/dim/consistency.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A requirements object shall have an optional "developer" attribute.
Allowed values: any string,
Default resolution:
- originator from the config file, if
       - type is "requirement" and
       - category is neither "input" nor "unspecified"
- "" otherwise` .. requirement:: Dim_ReqFiles_tester :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirement.rb, lib/dim/loader.rb, lib/dim/consistency.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A requirements object shall have an optional "tester" attribute.
Allowed values: any string
Default resolution: if
- originator from the config file if
       - type is "requirement" and
       - "process" is not in tags and
       - category is neither "input" nor "unspecified"
- "" otherwise` .. requirement:: Dim_ReqFiles_verificationMethods :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirement.rb lib/dim/loader.rb lib/dim/consistency.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A requirement object shall have an optional 'verification_methods' attribute.
Allowed values: one or more of "none", "off_target", "on_target", "manual"
If verification_methods is missing, it is resolved to:
- "none" if
       - type is not "requirement" or
       - "process" is in tags or
       - category is "input" or "unspecified"
- "off_target" if
       - category is "module" or
       - tags include "tool"
- "on_target" otherwise` .. requirement:: Dim_ReqFiles_status :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirement.rb, lib/dim/loader.rb, lib/dim/consistency.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A requirements object shall have an optional "status" attribute.
Allowed values: one of "valid", "draft", "invalid"
If status is missing, it is resolved to:
- "draft" if type is "requirement" or "information"
- "valid" otherwise` .. requirement:: Dim_ReqFiles_reviewStatus :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirement.rb, lib/dim/loader.rb, lib/dim/consistency.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A requirements object shall have an optional "review_status" attribute.
Allowed values: one of "accepted", "unclear", "rejected", "not_reviewed", "not_relevant"
If review_status is missing, it is resolved to:
- "not_reviewed" if category is "input" or "unspecified"
- "accepted" otherwise` .. requirement:: Dim_ReqFiles_comment :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirement.rb, lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A requirements object shall have an optional "comment" attribute.
Allowed values: any string
Default: ""` .. requirement:: Dim_ReqFiles_miscellaneous :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirement.rb, lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A requirements object shall have an optional "miscellaneous" attribute.
Allowed values: any string
Default: ""` .. requirement:: Dim_ReqFiles_sources :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirement.rb, lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A requirements object shall have an optional "sources" attribute.
Allowed values: comma separated string list
Default: ""` .. requirement:: Dim_ReqFiles_refs :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirement.rb, lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A requirements object shall have an optional "refs" attribute.
Allowed values: a string with comma separated IDs, which must exist.
A requirement object is also allowed to have reference within
different categories and circular dependency can only occur in the
same category level.
Default: ""` .. requirement:: Dim_ReqFiles_language :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirement.rb, lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A requirements object shall have an optional language attributes for "text", "verification_criteria" and "comment".
The naming scheme of these attributes shall be "<key>_<language>", e.g. "text_german".
Allowed values: any string
Default: ""` :raw-html:`Short Form` ~~~~~~~~~~~~~~~~~~~~~~ .. requirement:: Dim_ReqFiles_shortYaml :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirement.rb, lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`In the short form, the ID shall be the key of a key/value pair of strings.` .. requirement:: Dim_ReqFiles_shortHeadingForm :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirement.rb, lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`If a requirement object has a heading type and only text, it shall be writable in one line for convenience. The value shall include the heading level and the heading text.` .. requirement:: Dim_ReqFiles_shortInfoForm :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirement.rb, lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`If a requirement object has type "information" and only text, it shall be writable in one line for convenience. The value shall include the information type and the text.` :raw-html:`Config Files` ++++++++++++++++++++++++ .. requirement:: Dim_ConfigFiles_Config :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A config file shall have exactly one "Config" attribute which consists of an array of config entries.` .. requirement:: Dim_ConfigFiles_Files :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A config entry shall have exactly one "files" entry.
Allowed values: a string or an array of strings of requirements files. The files must be specified with relative paths but without "..". Ruby glob pattern are allowed, e.g. "**", "*" and "?".
If a filename is specified more than once, an error shall be thrown.` .. requirement:: Dim_ConfigFiles_Originator :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A config entry shall have exactly one "originator" entry.
Allowed values: any non-empty string` .. requirement:: Dim_ConfigFiles_Category :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A config entry shall have exactly one "category" entry.
Allowed values: one of "input", "software", "architecture", "module", "system"` .. requirement:: Dim_ConfigFiles_Property :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A config file shall have an optional "Property" attribute.
Allowed values: a string which points to an existing properties file.
Default: ""` .. requirement:: Dim_ConfigFiles_Attribute :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A config file shall have an optional "Attributes" field.
Allowed values: a string which points to an existing attribute file.
Default: ""` .. requirement:: Dim_ConfigFiles_disableNameCheck :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A config file shall have an optional "disable_naming_convention_check" field a config entry.
Allowed values: "yes" and "no"
Default: "no"` .. requirement:: Dim_ConfigFiles_SRS :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`If the category for a config entry is "software" and "disable_naming_convention_check" value is not set to "yes", Dim shall check for ID naming conventions. An ID must start with "SRS_" and must be named in SRS_<feature>_<aspect> fashion including the two underscores. The document name must start with "SRS_" and must be named in SRS_<feature> fashion including the underscore. <feature> and <aspect> must be non empty strings with only alphanumeric characters along with hyphen allowed. If this naming convention is not met, Dim shall throw a meaningful error message and exit with exit code != 0.` :raw-html:`Properties File` +++++++++++++++++++++++++++ .. requirement:: Dim_PropFiles_Property :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/loader.rb, lib/dim/consistency.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A properties file shall define default values for attributes of requirement elements which are not explicitly set.
The values shall be structured in the properties file using the document name as a key, and the attributes with their respective default values, like this:
"document {'status': 'valid', 'asil': 'ASIL_B', 'text': 'default text'}"` .. requirement:: Dim_AttrFiles_CmdParam :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`Dim shall be able to accept the attributes file using a command line argument. If the config file includes the reference to custom attributes and another attributes file is loaded using command line argument, then Dim shall load the attributes from both files for processing requirements. In case these attribute files contains duplicate attributes, then attributes referenced from the config file shall be given priority.` .. requirement:: Dim_AttributeLoading_UnitTests :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/helpers/attributes_helper.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`When the attributes file is referenced in Config file or passed using the command line argument, Dim shall validate the configuration for custom attributes and load them for processing the requirements.` .. requirement:: Dim_AttrFiles_Attribute :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`An attributes file shall accept custom attributes for Dim.
The values shall be structured in the attributes file using the attribute name as a key, and the values for those attributes, like this:
"color: {type: single, default: red, allowed: [red, green]}"
type - defines the format type how the attribute is interpreted and exported to RST
default - specifies the default value
allowed - specifies list of allowed values` .. requirement:: Dim_AttrFiles_SearchAttributeFile :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`If a single requirements file is loaded, then Dim shall automatically search for "attributes.dim" file recursively in parent directory till root directory is reached. This does not apply if a config file is loaded instead of single requirements file.` :raw-html:`Loading Files` ------------------------- :raw-html:`Reading Data` ++++++++++++++++++++++++ .. requirement:: Dim_loading_readGood :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`Dim shall read the files specified on command line and in the config file. The data shall be made available to subcommands.` .. requirement:: Dim_loading_enclosedCheck :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: /lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`Dim shall skip the enclosed file check when "--no-check-enclosed" flag is passed.` .. requirement:: Dim_loading_readBad :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/loader.rb, lib/dim/ext/psych.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`If any error occurs during loading the config, property or requirements files, Dim shall print a meaningful error message and exit with exit code != 0. Errors can occur due to file access issues like missing files or the files have invalid syntax.` :raw-html:`Consistency Checks` ++++++++++++++++++++++++++++++ .. requirement:: Dim_loading_checkCyclic :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/consistency.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`Requirements can reference other requirements which can reference again other requirements in same category level. In case of a cyclic reference, Dim shall print a meaningful error message and exit with exit code != 0.` .. requirement:: Dim_loading_checkMissing :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/consistency.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`If a reference cannot be resolved, which means the ID does not exist, Dim shall print a meaningful error message and exit with exit code != 0.` .. requirement:: Dim_loading_checkMissingDisable :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/options.rb, lib/dim/consistency.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`The command line interface of Dim shall provide an option to disable this unresolved-references-check, which means Dim shall neither complain about missing references nor exit Dim.` .. requirement:: Dim_loading_checkDocument :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`If several files share the same document name, the originator and the category must be the same for all of these files. If not, Dim shall print a meaningful error message and exit with exit code != 0.` .. requirement:: Dim_loading_emptyDocument :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`Dim shall throw an error with meaningful error message if Dim file with empty document is loaded and shall exit the process with exit code != 0.` .. requirement:: Dim_loading_checkMetadata :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`If several files share the same document name, "metadata" must not be defined more than once. Otherwise Dim shall print a meaningful error message and exit with exit code != 0.` .. requirement:: Dim_loading_checkID :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/ext/psych.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`Requirement IDs shall be unique over all files. If the same ID is used for more than one requirement, Dim shall print a meaningful error message and exit with exit code != 0.` :raw-html:`Subcommands` ----------------------- :raw-html:`check` +++++++++++++++++ .. requirement:: Dim_check_General :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/options.rb, lib/dim/commands/check.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`The command line interface of Dim shall provide a "check" subcommand which loads the input files and executes consistency checks.` :raw-html:`stats` +++++++++++++++++ .. requirement:: Dim_stats_General :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/options.rb, lib/dim/commands/stats.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`The command line interface of Dim shall provide a "stats" subcommand which prints basic metrics to the console. The metrics shall be printed for every loaded document and a summary over all documents.` .. requirement:: Dim_stats_Details :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/commands/stats.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`The metrics shall include at least:
- Number of total elements
- Number of requirements
- Number of valid requirements split by review status` :raw-html:`format` ++++++++++++++++++ .. requirement:: Dim_format_general :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/options.rb, lib/dim/requirements.rb, lib/dim/commands/format.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`The command line interface of Dim shall provide a "format" subcommand which formats the loaded requirements files. Missing references are allowed by default while formatting.` .. requirement:: Dim_format_whitespaces :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirements.rb, lib/dim/commands/format.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`The formatter shall adapt the whitespaces in a predefined style.` .. requirement:: Dim_format_order :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirements.rb, lib/dim/commands/format.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`The formatter shall arrange the attributes in a predefined order.` .. requirement:: Dim_format_form :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirements.rb, lib/dim/commands/format.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`The formatter shall change requirements from regular to short form if possible.` .. requirement:: Dim_format_default :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirements.rb, lib/dim/commands/format.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`The formatter shall not remove any attributes, even if the default value is specified.` .. requirement:: Dim_format_duplicated :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/commands/format.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`The formatter shall remove duplicate values in "tags", "verification_methods", "sources" and "refs".` .. requirement:: Dim_format_inPlace :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirements.rb, lib/dim/commands/format.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`By default, the formatter shall change the files in-place.` .. requirement:: Dim_format_checkOnly :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/options.rb, lib/dim/commands/format.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`It shall be possible to only check the formatting without changing the files. In case of incorrect formatting, an error message shall be printed and Dim shall exit with an exit code != 0. Different line endings like CRLF and LF shall be ignored.` .. requirement:: Dim_format_extra :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/options.rb, lib/dim/commands/format.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`It shall be possible to write the formatted data to extra files and not overwrite the original files. This makes it easier to use third-party compare-tools.` .. requirement:: Dim_format_vim :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/options.rb, lib/dim/commands/format.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`It shall be possible to read the input from STDIN and to print the formatted output to the STDOUT. This functionality supports auto-formatting in text editors like Vim.` :raw-html:`export` ++++++++++++++++++ .. requirement:: Dim_export_general :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/options.rb, lib/dim/commands/export.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`The command line interface of Dim shall provide an "export" subcommand which exports the requirements data to other file formats. It shall be possible to specify the output folder.` .. requirement:: Dim_export_documents :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/commands/export.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`Within the output folder, a new folder for every document shall be created with a requirements file named "<document>/Requirements.<type>", e.g. "myModule/Requirements.json". The document name shall be sanitized, e.g. "/" shall be converted to "_" to avoid invalid folder names.` .. requirement:: Dim_export_enclosed :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/commands/export.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`Files specified in the enclosed attributes shall be copied to the appropriate document's output folder.` .. requirement:: Dim_export_filter :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/options.rb, lib/dim/commands/export.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`It shall be possible to filter requirements for exports based on their attributes, e.g. that only input and software requirements are exported.` .. requirement:: Dim_export_cleanup :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/commands/export.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`After exporting is complete, files from exported folder which are no longer referenced in the exported folder shall be cleaned up.` :raw-html:`JSON` ~~~~~~~~~~~~~~~~ .. requirement:: Dim_export_json :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/commands/exporter/json.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`JSON exports shall have all requirement attributes as key/value pairs plus ID, document name and originator.` :raw-html:`CSV` ~~~~~~~~~~~~~~~ .. requirement:: Dim_export_csvSep :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/commands/exporter/csv.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`CSV exports shall have "Sep=," in the first line to specify the separator character.` .. requirement:: Dim_export_csvAttributes :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/commands/exporter/csv.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`CSV exports shall have all requirement attributes plus ID, document name and originator in the second line. The following lines shall consist of the values of the requirements according to the attribute names defined in the second line.` .. requirement:: Dim_export_csvValues :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/commands/exporter/csv.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`All values shall be wrapped by double quotes. Double quotes in the values shall be escaped.` :raw-html:`RST` ~~~~~~~~~~~~~~~ .. requirement:: Dim_export_rst :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/commands/exporter/rst.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`RST exports shall export the data according to the Sphinx dox_trace extension syntax.` .. requirement:: Dim_export_rstStrings :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/commands/exporter/rst.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`In the RST export, literals like "text" or "verification_criteria" shall be exported as Sphinx raw-html elements to avoid invalid RST files. This means special characters like "<" or "\n" must be escaped or converted. It shall be possible to mark substrings explicitly to skip this conversion.` .. requirement:: Dim_export_rstChange :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/commands/exporter/rst.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`Existing RST files shall only be overwritten if data has been changed to keep the time stamp of the files.` .. requirement:: Dim_export_rstIndex :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/commands/exporter/rst.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`Additionally to the requirements files, the RST exporter shall create index files for each originator/category pair to be directly used by Sphinx.` .. requirement:: Dim_format_customAttributes :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/options.rb, lib/dim/loader.rb, lib/dim/commands/format.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`Before formatting requirements files with custom attributes, Dim shall load the attributes file first.` :raw-html:`Ruby API` -------------------- :raw-html:`Reading` +++++++++++++++++++ .. requirement:: Dim_api_reading :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`It shall be possible to load files by using the Dim Ruby API directly. A data structure shall be provided with resolved default values if the values are not provided explicitly in the requirements files.` :raw-html:`Convenience Methods for Requirements` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. requirement:: Dim_api_safetyRelevant :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirements.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A requirements object shall provide a method "safety_relevant?" which returns true if "asil" is not set to "QM" or "not_set", otherwise false.` .. requirement:: Dim_api_securityRelevant :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirements.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A requirements object shall provide a method "security_relevant?" which returns true if "cal" is set to "CAL_4", otherwise false.` :raw-html:`Additional Getters` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. requirement:: Dim_api_documentName :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirements.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A requirement shall have a getter for the document name.` .. requirement:: Dim_api_originator :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirements.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A requirement shall have a getter for the originator. The value shall be taken from the config file. If a requirements file was loaded directly without a config file, the originator shall be "".` .. requirement:: Dim_api_category :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirements.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A requirement shall have a getter for the category. The value shall be taken from the config file. If a requirements file was loaded directly without a config file, the category shall be "unspecified".` .. requirement:: Dim_api_filename :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirements.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A requirement shall have a getter for the filename.` .. requirement:: Dim_api_lineNumber :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirements.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A requirement shall have a getter for the line number.` .. requirement:: Dim_api_backwardRefs :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirements.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A requirement shall have a getter for the backward references which are calculated automatically by Dim.` .. requirement:: Dim_api_existingRefs :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: Dim_loading_checkMissingDisable :sources: lib/dim/requirements.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A requirement shall have a getter for the existing references. When loading with disabled missing-reference-check, the list can be shorter than the original list in refs attribute.` .. requirement:: Dim_api_upstreamRefs :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirement.rb lib/dim/loader.rb lib/dim/consistency.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A requirement shall have a getter for upstream references, which means a list of IDs from refs to higher category level plus backward-refs from higher or same category level IDs.` .. requirement:: Dim_api_downstreamRefs :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/requirement.rb lib/dim/loader.rb lib/dim/consistency.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`A requirement shall have a getter for downstream references, which means a list of IDs from refs to lower or same category level plus backward-refs from lower category level IDs.` .. requirement:: Dim_api_metadata :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/loader.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`The metadata of the documents shall be available via the API.` :raw-html:`Convenience Methods for Attributes With Comma Separated Values` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. requirement:: Dim_api_stringCleanSplit :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/ext/string.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`Dim shall extend the String class with a "cleanSplit" method which returns an array of the elements without leading and trailing whitespaces.` .. requirement:: Dim_api_stringCleanArray :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/ext/string.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`Dim shall extend the String class with a "cleanArray" method which returns the same as "cleanSplit" but same as cleanSplit, but without empty elements.` .. requirement:: Dim_api_stringCleanUniqArray :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/ext/string.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`Dim shall extend the String class with a "cleanUniqArray" method which returns the same as "cleanArray" but also removes duplicates.` .. requirement:: Dim_api_stringCleanString :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/ext/string.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`Dim shall extend the String class with a "cleanString" method which returns a string without empty elements, leading and trailing whitespaces.` .. requirement:: Dim_api_stringCleanUniqString :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/ext/string.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`Dim shall extend the String class with a "cleanUniqString" method which returns the same as "cleanString" but also removes duplicates.` .. requirement:: Dim_api_stringAddEnum :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/ext/string.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`Dim shall extend the String class with an "addEnum" method which add an enum to the string, makes the enums unique and returns the result.` .. requirement:: Dim_api_stringRemoveEnum :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/ext/string.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`Dim shall extend the String class with a "removeEnum" method which removes all enums from the string and returns the result.` :raw-html:`Writing` +++++++++++++++++++ .. requirement:: Dim_api_changing :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/loader.rb, lib/dim/requirements.rb, lib/dim/formatter.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`It shall be possible to change requirements files by using the Dim Ruby API directly. A data structure shall be provided without resolved default values to be able to work on the original data. It shall be possible to write the changed data back to the file system.` :raw-html:`Testing Requirements` -------------------------------- .. requirement:: Dim_testing_output :category: software :status: valid :review_status: accepted :asil: QM :cal: QM :tags: tool, covered, tested :comment: :miscellaneous: :refs: :sources: lib/dim/ext/output.rb :feature: :change_request: :developer: Accenture :tester: Accenture :verification_methods: off_target :verification_criteria: :raw-html:`To ease testing, it shall be possible to read the command line output of Dim in unit tests when calling functions directly. This means stdout and stderr need to be redirected through string streams.`