Xuse User Guide: Requirements

The xuse-requirements.xml file contains the complete list of requirements for the project. Every individual requirement in the file is contained in the same structure. There is no structural nesting of requirements within the XML even if the requirements have a logical parent/child relationship - instead the child references the parent in much the same way as a database foreign key.

An Example XML based requirement is shown below:

example requirement XML fragment

Before examining the different parts of the XML structure in detail it is worth visualising the transformed HTML result:

example requirement HTML view

Requirement XML reference

The following table explains the XML structure for a requirement

Location/XPath Cdn. Description
xuse:req 1 Container for the requirement
xuse:req/@strength 1 The customer view of need/strength of the requirement. Permissible values include:
  • shall
  • should
  • may
xuse:req/@id 1 Unique identifier for this requirement. It can be alpha-numeric but MUST be unique.
xuse:req/@version 1 Version number for the requirement. Should be incremented whenever there is a change to the requirement bar meta-data changes.
xuse:req/@creation-date 1 The date/time the requirement was first created.
xuse:req/@modification-date 1 The date/time the requirement was last modified.
xuse:req/xuse:annotation 0..* Container element for an annotation.
xuse:req/xuse:title 1 Short but descriptive title for the requirement.
xuse:req/xuse:description 1 Fuller description of the requirement.
xuse:req/xuse:author 0..1 Name of the requirements analyst who create/entered the requirement.
xuse:req/xuse:classification 0..1 Container for meta-data that helps classify the requirement.
xuse:req/xuse:classification/xuse:type 1 Classifies the "type" of requirement. Permissible values are:
  • functional
  • non-functional
  • constraint
  • architectural
  • technical
  • inverse
xuse:req/xuse:classification/xuse:status 1 The "agreement" and delivery status of the requirement. Permissible values are:
  • proposed
  • agreed
  • onhold
  • rejected
  • partially-implemented (version 01.00.x only)
  • implemented
xuse:req/xuse:classification/xuse:taxonomy 0..* Taxonomy is provided for local taxonomy extension beyond the basic classifiers (type, status etc.) provided by Xuse. Taxonomy is simply defined as a key/value pair. The element contains the value, the key is defined below...
xuse:req/xuse:classification/xuse:taxonomy/@classifier 1 Taxonomy classifier.
xuse:req/xuse:parent/@refId 0..1 Cross-reference to a parent requirement identifier. There can be at most a single parent for a requirement, but not all requirements have a parent.
xuse:req/xuse:req-ref/@refId 0..* Cross-reference to a similar or related requirement which is not directly the parent requirement.
xuse:req/xuse:stakeholder/@refId 0..* Cross-reference to stakeholders identified with this requirement. Typically one or more stakeholder representatives would be expected to participate in the elaboration of the requirements.