In DOORS, requirements are organized into modules. A module is an ordered tree of requirements; a requirement occurs in exactly one module, and occurs exactly once in that module.
Application exposes the module structure to the user (e.g., browse the structure like a tree, folding editor). Application additionally allows views over the structure to be defined. E.g., all the requirements in the module that are “high priority”. A user can select such a view in order to focus only on the high-priority requirements - all the other requirements in the module are elided. The contents of the view is defined by the query.
Users can also define a “static” view, in which requirements are cherry-picked and inserted into a view.
User can also sort a view, for example, all high-priority requirements, in risk order. Without an expressed sort the contents of a view is sorted according to the ordered tree (book order).
A view can also contain structure, for example, a view in which all high-priority requirements from the ordered tree are included, but in which all parent requirements to the root of the module are also included. Same for descendants.
DOORS allows users to make changes to the underlying module structure as it is mapped to the structure presented in a view.
Requirement representations are not affected by the view in which they are presented (the view only affects the organization of requirements).
Observations:
- Views can be static or dynamic
- View content may be sorted
- View may be structured but the structure may be incomplete (think ordered forest of ordered trees)
- A view is scoped to a single module (it can’t include resources from other places)
Thoughts:
- View is somewhat like a query definition; view “content” is like query results.
- Providers of might want to offer different representations of views (“view contents” for consumers that cannot or do not want to evaluate a view themselves).
- How can consumers understand the dynamic nature of view content (should consumers be able to ask for the definition, not the “content”)
- View content may or may not admit updates
- Primary use cases are read-only
- View results are independent from the resources they contain. So, for example, ordering of results needs to be separate from the things being sorted.
- Review the Jazz Product Definition Vocabulary