Tuesday, September 30, 2008

All About Traceability

•What is traceability?
•Why is traceability important?
•How is traceability performed?
•What tools perform traceability?
•What is the future of traceability?

•What makes a software project successful?
•Meets stakeholder requirements
•How can this be encouraged?
•Traceability in a nutshell
•Shows forward and backward relationships linking requirements with design, implementation, test, and maintenance
•Know reasoning for everything and how to test

Why is Traceability Important?
•Ensures that requirements are met
•Understand relationship between requirements and the delivered system
•Lowers risk
•Creates an audit trail

Problems with Traceability
•Manual process
•Viewed by developers as a low priority
•No single modeling method
•Poor documentation

When Does Traceability Occur?
•Entire lifecycle!

How is Tracing Performed?
•Client gives developers rough requirements
•Developers create system, hardware, and software requirements
•Each element is given a unique identifier
•Element – requirement, design attribute, test, etc
•Linkages done manually and managed by a CASE tool
•Traceability tables are made

Traceability Example
•SRD – System Requirements Document
•High level requirements
•Done by stakeholders
•SS – System Specification
•More detailed requirements
•Developer interpretation
•More detailed portions of the SS
•Includes design information

Traceability Management
•Requirements are added/deleted/modified
•Impact analysis
•Trace changed
•Continues through maintenance

Traceability in a Perfect World
•Identification of requirements
•Architecture selection
•Classification schema
•Functions, Performance and Security
•Translate into views
•Allocation into schemas
•Flow-down to design, code, and test
•Entry into traceability database

Traceability in the Real World
•Labor Intensive
•Classification schemas are frequently changed as requirements are allocated
•Ensure that semantics and syntax are correct

Semantics and Syntax
•Semantics required to assure that a trace is used in context •Syntax required to assure that a trace goes to a specific word or phrase
•Manual verification of outcomes

Real World Traceability Workflow
•Receipt of requirements documents
•Select architecture form to be followed
•Select classification schema
•Parse document and assign unique numbers
•Allocate according to classification scheme
•Establish linkages across all requirements
•Generate traceability matrices
•Maintain traceability linkages in database
•Maintain traceability links across entire project

Return on Investment
•Very difficult to measure
•Many factors
•CASE Tools
•Only an estimation
•What rework was avoided?

•CASE Tools
•Hypertext linking
•Unique identifiers
•Syntactical similarity coefficients
•Hypertext linking and syntactical similarity does not consider context
•Unique identifiers do not show requirement information
•Choosing architecture view and classification schemas will always be manual

•“capture, link, trace, and manage”
•For large applications
•From the datasheet
•Similar look and feel to explorer
•Gap analysis for unaddressed requirements
•Traceability analysis for identifying areas of risk
•Impact analysis reports
•Traceability by drag and drop

•From the datasheet
•Centralized repository
•Requirements traceability across the lifecycle
•Impact analysis

Future Predictions
•Automation of allocation into architectures and classification schemas
•Little additional automation seen in current tools
•AIRES (Automated Integrated Requirements Engineering System)
•Center for Software Systems Engineering at George Mason University
•Relies heavily of semantics and syntax

•Clearly reflected traceability importance and need
•Practical workflow
•Examples did not reflect lifecycle
•Little practicality with tools

No comments: