Traceability – Chapter 27 Sriram Mohan
Traceability: Primary Questions Why is tracing important? Requirements traceability helps improve the quality and reliability of software. In some cases it is mandated by your clients, for example if you are doing anything for the pharmaceutical or a medical firm the FDA mandates that you follow very strict traceability standards. Traceability could include establishing the relationship between two or more stages of the development life cycle or degree to which any artifact you have in your development establishes a reason for existing. Traceability extends from user needs to product features to use cases and supplementary requirements to design to implementation and testing. Why we care – remember this triangle?
Traceability: The Problem How do you know, if you’re at one of these later stages, that you have a requirements fault? There is no real standard for how a traceability relationship is constructed. There are no rules which specify what kind of information it must contain and in different processes it takes various forms and shapes such as (fulfilled by, tested by, derived from, is a part of ). But these are mostly in high assurance software development. Typically all you really need to do is show that there exists a dependency between two things. B is dependent on A. If A changes then B is affected by it and has to be changed. But the other way around need not be true, if a requirement changes, the use case and the test case associated with have to change, but If a test case changes it need not change the use case or the requirement.
In general, how to trace… Use Traceability matrices
Tracing User Needs to Features ... Feature n Need 1 X Need 2 … Need m If inspection of a row fails to detect any Xs a possibility exists that no feature has been defined to respond to a user need. This is okay if the feature does not result in a software solution. But this is a red flag and must be carefully evaluated. If inspection of a column fails to detect any Xs a possibility exists that a feature has been included for which there is no defined user need. This may mean that a feature has either been misunderstood or that it is a dead feature(one that is still in the system, but whose reason to exist is no longer clear)
Tracing Features to Use Cases ... Use Case n Feature 1 X Feature 2 … Feature 3 If inspection of a row fails to detect any Xs a possibility exists that no use case has been defined for a particular feature. If inspection of a column fails to detect any Xs a possibility exists that a use case has been included for which there is no defined feature. This may mean that a use case has either been misunderstood or that it is a dead feature(one that is still in the system, but whose reason to exist is no longer clear) or it is a use case that exists mainly to support other use cases. Similarly you can trace features to supplementary requirements and use cases to Test cases.
Tracing Requirements to Implementation
Tool Support Spreadsheets Relational Databases Maintaining and updating the links is difficult Relational Databases Requirements Management Software Extra Credit: Find two web based requirements management software and briefly describe the features they support. Submit using Angel (Lessons – Extra Credit – Week 05 – Requirements Management Software)