•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
•Creates an audit trail
Problems with Traceability
•Viewed by developers as a low priority
•No single modeling method
When Does Traceability Occur?
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
•SRD – System Requirements Document
•High level requirements
•Done by stakeholders
•SS – System Specification
•More detailed requirements
•More detailed portions of the SS
•Includes design information
•Requirements are added/deleted/modified
•Continues through maintenance
Traceability in a Perfect World
•Identification of requirements
•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
•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
•Only an estimation
•What rework was avoided?
•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
•Requirements traceability across the lifecycle
•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
•Examples did not reflect lifecycle
•Little practicality with tools