Requirements Engineering Southern Methodist University CSE 7316 – Requirements Traceability.

24
Requiremen ts Engineerin g Southern Methodist University CSE 7316 – Requirements Traceability

Transcript of Requirements Engineering Southern Methodist University CSE 7316 – Requirements Traceability.

Page 1: Requirements Engineering Southern Methodist University CSE 7316 – Requirements Traceability.

RequirementsEngineering

Southern Methodist University

CSE 7316 – Requirements Traceability

Page 2: Requirements Engineering Southern Methodist University CSE 7316 – Requirements Traceability.

Characteristics of a good SRS 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?

Page 3: Requirements Engineering Southern Methodist University CSE 7316 – Requirements Traceability.

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

Page 4: Requirements Engineering Southern Methodist University CSE 7316 – Requirements Traceability.

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.”

Page 5: Requirements Engineering Southern Methodist University CSE 7316 – Requirements Traceability.

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.

Page 6: Requirements Engineering Southern Methodist University CSE 7316 – Requirements Traceability.

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.

Page 7: Requirements Engineering Southern Methodist University CSE 7316 – Requirements Traceability.

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.

Page 8: Requirements Engineering Southern Methodist University CSE 7316 – Requirements Traceability.

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.

Page 9: Requirements Engineering Southern Methodist University CSE 7316 – Requirements Traceability.

Traceability Links (Cont.)

Page 10: Requirements Engineering Southern Methodist University CSE 7316 – Requirements Traceability.

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.

Page 11: Requirements Engineering Southern Methodist University CSE 7316 – Requirements Traceability.

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.

Page 12: Requirements Engineering Southern Methodist University CSE 7316 – Requirements Traceability.

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.

Page 13: Requirements Engineering Southern Methodist University CSE 7316 – Requirements Traceability.

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.

Page 14: Requirements Engineering Southern Methodist University CSE 7316 – Requirements Traceability.

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.

Page 15: Requirements Engineering Southern Methodist University CSE 7316 – Requirements Traceability.

Traceability Relationships

Page 16: Requirements Engineering Southern Methodist University CSE 7316 – Requirements Traceability.

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.

Page 17: Requirements Engineering Southern Methodist University CSE 7316 – Requirements Traceability.

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.

Page 18: Requirements Engineering Southern Methodist University CSE 7316 – Requirements Traceability.

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.

Page 19: Requirements Engineering Southern Methodist University CSE 7316 – Requirements Traceability.

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.

Page 20: Requirements Engineering Southern Methodist University CSE 7316 – Requirements Traceability.

Traceability Matrix Example 2 Different symbols can be used in the cells to explicitly

indicate “traced-to” and “traced-from” or other relationships.

Page 21: Requirements Engineering Southern Methodist University CSE 7316 – Requirements Traceability.

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.

Page 22: Requirements Engineering Southern Methodist University CSE 7316 – Requirements Traceability.

Requirements Traceability Procedure Requirements traceability for a project can be

implemented in a systematic and sequential manner.

All the following factors should be considered:1. Defining all required relationships.2. Identifying the parts of the product to maintain traceability

information for.3. Choosing the type of traceability matrix to use.4. Defining the tagging conventions that will be used to

uniquely identify all requirements.5. Identify the key individuals who will supply each type of

link information.6. Educating the team about the concepts and importance

of requirements tracing.

Page 23: Requirements Engineering Southern Methodist University CSE 7316 – Requirements Traceability.

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

Page 24: Requirements Engineering Southern Methodist University CSE 7316 – Requirements Traceability.

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.