Chapter 8. Requirements Traceability

Obviously something slipped through here.

”R EVEREND J OHN V AUGHAN, FINANCIAL ADMINISTRATOR FOR THE A RCHDIOCESE OF M IAMI, WHEN ASKED WHY THEY HELD STOCK IN COMPANIES THAT MANUFACTURE CONTRACEPTIVES

Requirements traceability is a key to successful software development.

graphics/08inf01.jpg

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 :

traceability : clarity of linkage between artifacts

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

  • Everyone wants to feel like they are building the thing that is supposed to be built.

  • Businesspeople often demand to see that the team is doing the provably right thing.

  • Large money investments in software mean that we should be able to prove that we are working on the thing we said we would.

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

  • Stakeholders need change during the lifecycle.

  • Team members change.

  • A delivery cycle is too long, and it gets off track.

  • Things are passed from team to team (designers to developers, and so on) as documents, not hands-on knowledge (throwing over the wall).

  • Linkage is not easy between artifact types (contract-style requirements to analysis/design artifacts).

Traceability can create these problems if we're not careful:

  • Too many artifacts

  • Too many tools with too many integrations

  • Too many special "gatekeeper" roles

Traceability is helped by

  • Use cases

  • Nonfunctionals

  • Short feedback loops between the team and the business stakeholders

  • Demonstrable inch pebbles

  • Daily standups

  • Integrations between tools

  • Reverse engineering (code to analysis and design, test to requirements, and so on)

  • Configuration management

  • Collaborative software

  • Egalitarianism

  • Distributed control

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

  • Documentum eRoom

  • Lotus Notes

  • Microsoft Exchange

  • Intranets

  • Groove Networks Groove Workspace

  • Bulletin boards

  • Newsgroups

  • Team member blogs

Automated software lifecycle tools ( especially if integrated) include

  • Rational Suite

    - Rational RequisitePro

    - Rational Rose

    - Rational XDE

    - Rational ClearCase

    - Rational ClearQuest

    - Rational SQA Robot

    - Rational SQA TeamTest

    - Borland CaliberRM

    - Borland StarTeam

    - Mercury TestDirector

    - Borland TogetherSoft

    - Borland JBuilder

    - Borland CaliberTest

  • eXpressroom

  • Borland CodeWright

  • CompuWare

    - Reconcile

    - QA Partner



Use Cases. Requirements in Context
Use Cases: Requirements in Context (2nd Edition)
ISBN: 0321154983
EAN: 2147483647
Year: 2002
Pages: 90

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net