Requirements traceability is a key to successful software development.
NOTE: This chapter assumes some knowledge of an object-oriented software development process, such as the RUP, Object Modeling Technique (OMT), or something similar. One reason for the success of use cases in requirements is effective traceability . We define the term as follows :
Use cases, when used in the context of a good software lifecycle, can be a tremendous tool for traceability. But first we need to examine what is good about traceability, and, to be fair, the trouble traceability can cause. Traceability provides assurance that the software at the end of a lifecycle matches what the stakeholders stated they wanted. Traceability is important because
When you think about project status in waterfall ”we're 60% through development ”it shows that we are doing something, but not that we're doing the right thing. When changes occur, we can see the impact of them rippling through the lifecycle artifacts, which can (a) help business stakeholders to understand the costs of a change and (b) help a team to identify and change all related artifacts for a change. When stakeholders are viewing system functions later in the lifecycle and see features that they did not expect, traceability can help identify the decision-making process that brought those features in, reducing finger-pointing. Traceability is hard because
Traceability can create these problems if we're not careful:
Traceability is helped by
The more egalitarian the collaboration software (and setup) the better. It will be messy and get annoying at times, but the centrally controlled alternative is not acceptable. Tools that are useful for traceability include
Automated software lifecycle tools ( especially if integrated) include
|