Home >> Media Group >> Research >> ViPER
Downloads -- Documentation -- Developers -- Discussion
LAMP     The Language and Media Processing Laboratory

Requirements.howto

The requirements document is maintained as an html page on the development web site. The current address is http://viper-toolkit.sf.net/developers/requirements/. To edit the document, log into SourceForge using your member account through SSH. Each leaf in the tree that is linked to a specific requirement should be linked to the relevant request for enhancement on SourceForge.

All changed should be noted. New requirements should include a note with the format: <div class="note">$note$ &mdash; $username$</div>. These comments should be repeated in the RCS log. Minor changes can have comments placed in the RCS log alone. Changes to a requirement should be mostly for clarification. If a requirement has already been instantiated in the code, and you are changing the meaning of it, you should first consider deleting it and adding a new requirement. This is easier to maintain with the RFE system, where you can mark an RFE as invalid and open a new one, and keeps the one-to-one correspondence between RFEs and atomic requirements.

If you remove a requirement, you should change the class on its html list element to be removed. The fault style-sheet for the requirements document will include: li[class~="removed"] {display: none;} Another style-sheet may display them with strikethrough or a different background color. You should include a note in the format above, describing why the requirement was removed.

Each requirement should have a descriptive XHTML ID on its list element. This should be related to the name of the descriptor or to the RFE ID that tracks the implementation of the requirement. This allows direct linking under changes to the tree, which are mostly organizational and should not have much of an impact on the implementation itself. If anything, such changes will be in response to the realities of the code.

Each atomic requirement should link to a SourceForge RFE. There is a javascript that writes the links; it searches for <a class="rfelink">number</a> and adds the appropriate hrefs, so you don't have to copy and paste the SourceForge bug URL. Higher-level nodes on the requirement tree may link to RFEs that track several features and related bugs. I might come up with a JavaScript to semi-automate this process of aggregating bug ids. When we have a better specifications document and a better JavaDoc process, we may link these in as well. I would also like to link to the places in the documentation that describe each feature. I'll see what I can do about converting the documentation to a format amenable to hypertext links.

Remember that the page should be valid XHTML. Before you check in your changes to the page, make sure to click on the W3C: XHTML link at the bottom to check the validity with the w3's validator.