During RM V1.0, we worked on Scenario A - Requirements are implemented validated and delivered. This scenario contains a precondition which asserted the existence of a requirement collection that described the scope of work to be undertaken. This style of requirement-driven development, on a larger scale, requires that the process of arriving at such a collection be better supported across a lifecycle.
Typically, different teams will work on several aspects of the requirements. As requirements specifications grow in size, simple "flat" collections, as we specificed for V1 and V2 are inadequate - they are hard to work with as the only means of organizing requirements.
A common way of scaling larger collections of requirements is by organizing them hierarchically. Doing so impacts not only RM applications but also the other lifecycle applications around them. For example, a test engineer needs to be able to understand such a hierarchy when they are making a test plan.
In previous releases of the RM specification collections were primarily a planning or communication device - the requirements in a collection were not necessarily related to one another (other than being delivered in the same iteration, for example).
Hierarchy of resources
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:oslc_rm="http://open-services.net/rm#"> <oslc_rm:RequirementCollection rdf:about="http://example.com/reqcoll/1"> <oslc_rm:uses rdf:parseType="Collection"> <rdf:Description rdf:about="http://example.com/req/1"/> <rdf:Description rdf:about="http://example.com/reqcoll/2"/> <rdf:Description rdf:about="http://example.com/reqcoll/3"/> </oslc_rm:uses> </oslc_rm:RequirementCollection> <oslc_rm:RequirementCollection rdf:about="http://example.com/reqcoll/2"> <oslc_rm:uses rdf:parseType="Collection"> <rdf:Description rdf:about="http://example.com/req/34"/> </oslc_rm:uses> </oslc_rm:RequirementCollection> <oslc_rm:RequirementCollection rdf:about="http://example.com/reqcoll/3"> <oslc_rm:uses rdf:parseType="Collection"> <rdf:Description rdf:about="http://example.com/req/66"/> </oslc_rm:uses> </oslc_rm:RequirementCollection> </rdf:RDF>NB. I've abused the RequirementCollection? type here - the above is not in accordance with the vocabulary defined in the 2.0 specification.
In this model the ordered-ness of the requirements is represented by the RDF collection resources; the tree-like structure stems from the way that multiple collections are nested within one another. The result is an ordered tree of requirements.
Questions
Given a requirement, how would you determine where it is "oslc:used"? OSLC Simple Query?
The sub-sections of a collection are reusable in other contexts. Is this desirable?
Is the point of usage of a resource something that assertions can be made about? For example, reviewing a requirement in the context of a requirement collection. A more crucial case is whether trace relations are between the requirements, or between the uses of those requirements in a collection.
I | Attachment | Action | Size | Date | Who | Comment |
---|---|---|---|---|---|---|
![]() |
Structure_and_Relationships_among_requirements.doc | manage | 35.5 K | 21 Feb 2011 - 12:13 | IanGreen |