1 / 24

Understanding Requirements Traceability in Software Engineering

Explore the importance and methods of requirements traceability in software development, including motivation, benefits, and traceability links. Learn how traceability enhances product quality and aligns stakeholder requirements with system evolution.

catarina
Download Presentation

Understanding Requirements Traceability in Software Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. RequirementsEngineering Southern Methodist University CSE 7316 – Requirements Traceability

  2. Correct:Correct and Ever Correcting Unambiguous: …every requirement stated should has only one interpretation Complete:Do we have all the necessary things to build the software system? Consistent: The stated requirement does not contradict other requirements; the same term is used for the same item in all requirements. Prioritization:Some requirements might be more important than others Verifiable:How to measure these requirements: “The system should be stable”; “The system should provide good performance”; “The system should have a adequate User Interface”, …? Modifiable:Make the SRS changeable Traceable:Why do we need this requirement? Characteristics of a good SRS

  3. Requirements Traceability • Traceability • Requirements traceability • Motivation • Methods of Requirement Traceability • Traceability links • Traceability relationships • Traceability matrix • Traceability and non-functional requirements • Requirements traceability procedure • Advantages and Necessity of Requirements Traceability • Advantages of requirements traceability • Is requirements traceability always useful

  4. Traceability • Traceability as a general term is the “ability to chronologically interrelate the uniquely identifiable entities in a way that matters.” • The IEEE Standard Glossary of Software Engineering Terminology defines traceability as ”the degree to which a relationship can be established between two or more products of the development process, especially products having a predecessor-successor or master-subordinate relationship to one another.”

  5. Conceptual Definition • The ability to describe and follow the life of a requirement, in both forward and backward directions. • The ability to define, capture and follow the traces left by requirements on other elements of the software development process and the traces left by those elements on requirements.

  6. Practical Definition • An intensive iterative process which involves labeling each requirement in a unique and persistent manner so they can be unambiguously referred to throughout the development cycle.

  7. Motivation • Rapidly growing complexity of software systems and the constant need for rapid evolution and upgrade. • Tracing requirements provides a way to demonstrate compliance with a contract, specification, or regulation. • Improve the quality of the products, reduce maintenance costs, and facilitate reuse. • Ensure continued alignment between stakeholder requirements and system evolution. • Requirements traceability facilitates the following: • Understanding the software under development and its artifacts. • Ability to manage changes effectively. • Maintaining consistency between the product and the environment in which the product is operating.

  8. Traceability Links • Traceability links are used to track the relationship between each unique requirement and its source. • Traceability links are also used to track the relationship between each unique requirement and the work components to which that requirement is allocated. • Good traceability practices allow for bi-directional traceability. • There are four types of traceability links that constitute bi-directional traceability. • Forward to requirements. • Backward from requirements. • Forward from requirements. • Backward to requirements.

  9. Traceability Links (Cont.)

  10. Forward to Requirements • Maps requirements source/stakeholder needs to the requirements, which can help to directly track down requirements affected by potential changes in sources or needs. This also ensures that requirements will enforce all stated needs.

  11. Forward from Requirements • As requirements develop and evolve into products, a product can be traced from its requirements. Forward traceability ensures proper direction of the evolving product and indicates the completeness of the subsequent implementation.

  12. Backward from Requirements • Tracing backward from requirements helps to identify the origin of each requirement and verify that the system meets the needs of the stakeholders.

  13. Backward to Requirements • Backward traceability can justify the need and existence of that component and verify that the requirements have been kept current with the design, code, and tests.

  14. Benefits of Traceability Links • Traceability links help to keep track of interconnections and dependencies among requirements. • Monitoring the propagation of change that results when a specific requirement is deleted or modified.

  15. Traceability Relationships

  16. Traceability Relationships (Cont.) • A project may not implement all kinds of traceability relationships. • The choice of traceability relationships is a major contributor to success and efficient maintainability of the system under development.

  17. Traceability Matrix • In software engineering the Requirements Traceability Matrix (RTM) is a classical tool that summarizes in a table form the traceability from original identified stakeholder needs to their associated product requirements and then on to other work product elements. • A traceability matrix ”traces“ the deliverables by establishing a thread for each requirement, from the project’s initiation to the final implementation.

  18. Traceability Matrix Example • Each functional requirement is linked backward to a specific use case and linked forward to one or more design, code and test modules.

  19. Traceability Matrix • It’s impossible to perform requirements tracing manually for large and complex projects. • There is a need for types of matrices that can be managed by automated traceability tools.

  20. Traceability Matrix Example 2 • Different symbols can be used in the cells to explicitly indicate “traced-to” and “traced-from” or other relationships.

  21. Traceability and Non-functional Requirements • Non-functional requirements such as performance goals and quality attributes don’t always trace directly into code. • In such cases, functional requirements are traced backward to their parent non-functional requirements and forward to products as usual.

  22. Requirements Traceability Procedure • Requirements traceability for a project can be implemented in a systematic and sequential manner. • All the following factors should be considered: • Defining all required relationships. • Identifying the parts of the product to maintain traceability information for. • Choosing the type of traceability matrix to use. • Defining the tagging conventions that will be used to uniquely identify all requirements. • Identify the key individuals who will supply each type of link information. • Educating the team about the concepts and importance of requirements tracing.

  23. Advantages of Requirements Traceability • Certification. • Tracking. • Maintenance. • Re-engineering and re-using. • Risk reduction. • Testing.

  24. Is requirements traceability always useful • It takes extra time and effort during the project to keep up with the tracing of requirements, as well as increased maintenance effort, especially in an evolving system that requires numerous changes for future releases. • A certain amount of management change needs to be employed, especially with regard to developers. • Tendency to not know when to stop tracing.

More Related