Requirements Traceability Matrix

The purpose of this table is to assist in verifying that the design hasn't omitted any requirements.
The requirement numbers from the SRS are shown on the left and modules from the design along the top.  The check mark indicates which modules implement the corresponding SRS item.


HangmanUI.display() SimpleUI.getMove() HangmanLogic.processMove() Board.isWin() Board.isLoser()
B1
X




B2
X




B3

X



B4

X



B5


X
X
X
etc.








The disadvantage of table format is that is becomes very wide and unwieldy.  As an alternative you may use a list format.  The left column shows the requirement number and a brief description, the right column shows which modules in the design will implement that requirement.  The disadvantage is that it isn't so obvious if you have extraneous modules in your design.  With table format, if you have an empty column it is more readily apparent than in List format.

SRS Requirement Corresponding Module(s) in design
B1. Display user word
HangmanUI.display()
B2. Display guess count
HangmanUI.display()
B3. Enter guess
SimpleUI.getMove()
SwingUI.LetterButtonActionPerformed()
B4.  Validate move
SimpleUI.getMove()
B5.  Check game over
HangmanLogic.processMove()
Board.isWin(), Board.isLoser()
... and so on for all requirements

If you want to get really fancy, you could make each requirement number be a hyperlink to the section in the SRS and each module name could be a hyperlink to the corresponding javadoc.  In general however, most student teams would be better off spending the time making sure the design is correct.



CPE 205