Requirements Engineering

Slides:



Advertisements
Similar presentations
Configuration Management
Advertisements

Configuration Management
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Lecture # 2 : Process Models
Object-Oriented Software Development CS 3331 Fall 2009.
Traceability James D. Palmer Presented by: Megan Heffernan.
Tracing CS4310 Fall What is Requirements Traceability? The ability to describe and follow the life of a requirement throughout the system lifecycle,
Alternate Software Development Methodologies
Benjamin J. Deaver Advisor – Dr. LiGuo Huang Department of Computer Science and Engineering Southern Methodist University.
Reverse Engineering When is it the most cost effective? Raymond Utz.
Recall The Team Skills 1. Analyzing the Problem 2. Understanding User and Stakeholder Needs 3. Defining the System 4. Managing Scope 5. Refining the System.
Chapter 6 Database Design
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
SE 555 Software Requirements & Specification Requirements Management.
(c) 2007 Mauro Pezzè & Michal Young Ch 24, slide 1 Documenting Analysis and Test.
Software Configuration Management (SCM)
1 Software Requirements Specification Lecture 14.
Configuration Management
Project Documentation and its use in Testing JTALKS.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 11 System Test Design
Object Oriented Analysis and Design Using the UML
Software Configuration Management
Software Configuration Management (SCM)
Engineering Systems of.
S/W Project Management
Chapter 2 The process Process, Methods, and Tools
Component-level testing – Equivalence partitioning, boundary value analysis, path testing Navigation testing – Testing navigation syntax and semantics.
Software Configuration Management (SCM)
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
Software System Engineering: A tutorial
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
1 Chapter 9 Database Design. 2 2 In this chapter, you will learn: That successful database design must reflect the information system of which the database.
Week 4 Lecture Part 3 of 3 Database Design Samuel ConnSamuel Conn, Faculty Suggestions for using the Lecture Slides.
Configuration Management (managing change). Starter Questions... Which is more important?  stability  progress Why is change potentially dangerous?
Requirements Engineering CSE-305 Requirements Engineering Process Tasks Lecture-5.
Role-Based Guide to the RUP Architect. 2 Mission of an Architect A software architect leads and coordinates technical activities and artifacts throughout.
Systems Design Approaches The Waterfall vs. Iterative Methodologies.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 10 Slide 1 Chapter 13 Finalizing Design Specifications.
Chapter 3: Software Project Management Metrics
Configuration Management and Change Control Change is inevitable! So it has to be planned for and managed.
Capturing the requirements  Requirement: a feature of the system or a description of something the system is capable of doing in order to fulfill the.
Software Configuration Management (SCM). Product Developer Disciplines One view of the world is that there are three types of activities are required.
1 Quality Attributes of Requirements Documents Lecture # 25.
 Dr. Syed Noman Hasany.  Review of known methodologies  Analysis of software requirements  Real-time software  Software cost, quality, testing and.
Presented by Vinay Gunnam.  The IEEE Standard Glossary of Software Engineering Terminology defines traceability as “the degree to which a relationship.
Copyright ©2004 Virtusa Corporation | CONFIDENTIAL Requirement Engineering Virtusa Training Group 2004 Trainer: Ojitha Kumanayaka Duration : 1 hour.
RequisitePro Software Requirement Management Tool A peresentation by: Mojdeh Jalali-Heravi Maryam Daneshi.
Module 4: Systems Development Chapter 13: Investigation and Analysis.
Software Requirements Specification (SRS)
Software Requirements Specification Document (SRS)
Object-Oriented Systems. Goals Object-Oriented Methodologies – The Rumbaugh et al. OMT – The Booch methodology – Jacobson's methodologies.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
CS223: Software Engineering Lecture 32: Software Maintenance.
2009 copyright Leslie Munday University Requirements Management and Traceability For IIBA By Leslie Munday.
System Development Life Cycle (SDLC). Activities Common to Software Projects Planning : Principles Principle #1. Understand the scope of the project.
LECTURE 5 Nangwonvuma M/ Byansi D. Components, interfaces and integration Infrastructure, Middleware and Platforms Techniques – Data warehouses, extending.
 System Requirement Specification and System Planning.
Configuration Management
Chapter 11: Software Configuration Management
CASE Tools and Joint and Rapid Application Development
Software Requirements
Chapter 6 Database Design
Trace requirements. What do we mean by the term “Trace”? Why should we trace? 2 Requirements Life Cycle Management Trace Requirements.
Software Configuration Management
Introduction to Software Engineering
Chapter 11: Software Configuration Management
Chapter # 6 Software Configuration Management
Rapid software development
Presentation transcript:

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? Source: IEEE Std 830-1998 IEEE Recommended Practice for Software Requirements Specifications – Description, http://www.microtoolsinc.com/Howsrs.php

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

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

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.

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.

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.

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.

Traceability Links (Cont.)

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.

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.

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.

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.

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.

Traceability Relationships

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.

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.

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.

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.

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

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.

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.

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

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.