Chapter 3: The Requirements Workflow

Slides:



Advertisements
Similar presentations
Requirements Analysis CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology January 7, 2003.
Advertisements

1 CS 425 Software Engineering Project Preparation Use Case Modeling [Based on Chapters 3 & 4, Arlow and Neustadt, “UML and the Unified Process,” Addison-Wesley,
1 CS 426 Senior Projects Chapter 3: The Requirements Workflow [Arlow & Neustadt, 2005] February 10, 2009.
1 CMPT 275 Software Engineering Requirements Analysis Process Janice Regan,
Requirement engineering for an online bookstore system
S/W Project Management
What is UML? What is UP? [Arlow and Neustadt, 2005] January 23, 2014
Chapter 4 – Requirements Engineering
Advanced Topics in Requirement Engineering. Requirements Elicitation Elicit means to gather, acquire, extract, and obtain, etc. Requirements elicitation.
Software Waterfall Life Cycle Requirements Construction Design Testing Delivery and Installation Operations and Maintenance Concept Exploration Prototype.
1 REQUIREMENT ENGINEERING Chapter 7. 2 REQUIREMENT ENGINEERING Definition Establishing what the customer requires from a software system. OR It helps.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 The requirements engineering process.
Requirements Engineering CSE-305 Requirements Engineering Process Tasks Lecture-5.
A GENERIC PROCESS FOR REQUIREMENTS ENGINEERING Chapter 2 1 These slides are prepared by Enas Naffar to be used in Software requirements course - Philadelphia.
IT Requirements Management Balancing Needs and Expectations.
1 CS 426 Senior Projects Chapter 3: The Requirements Workflow [Arlow & Neustadt, 2005] January 31, 2012.
The Requirement. What is Inception? What is the vision and business case for this project? –not to define all the requirements Feasible? Buy and/or build?
Lecture 7: Requirements Engineering
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
Systems Development Life Cycle
CSC480 Software Engineering Lecture 8-9 September 20, 2002.
1 The Requirements Problem Chapter 1. 2 Standish Group Research Research paper at:  php (1994)
Requirements Analysis
Requirements engineering The process of establishing the services that the customer requires from a system and the constraints under which it operates.
An Agile Requirements Approach 1. Step 1: Get Organized  Meet with your team and agree on the basic software processes you will employ.  Decide how.
Chapter 3: The Requirements Workflow [Arlow and Neustadt, 2005] CS 426 Senior Projects in Computer Science University of Nevada, Reno Department of Computer.
Requirements in the product life cycle Chapter 7.
Chapter 6: The Analysis Workflow Chapter 7: Classes and Objects Chapter 8: Finding Analysis Classes [Arlow and Neustadt, 2005] CS 426 Senior Projects in.
Requirements. Outline Definition Requirements Process Requirements Documentation Next Steps 1.
System Development Life Cycle (SDLC). Activities Common to Software Projects Planning : Principles Principle #1. Understand the scope of the project.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements (utvalgte foiler fra Kap 6 og 7 i Sommerville)
Your Prescription for Requirements Management 1. Assumptions The prescription for requirements management is based on the following assumptions:  The.
Requirement Elicitation Nisa’ul Hafidhoh Teknik Informatika
Classifications of Software Requirements
CMPE 280 Web UI Design and Development August 29 Class Meeting
Chapter 4 – Requirements Engineering
Chapter 5 – Requirements Engineering
User-centred system design process
Fundamentals of Information Systems, Sixth Edition
What is UML? What is UP? [Arlow and Neustadt, 2005] October 5, 2017
Requirements analysis, representation and validation
Chapter 4: Use Case Modeling
SNS College of Engineering Coimbatore
EKT 421 SOFTWARE ENGINEERING
Development Projects / Analysis Projects / On-site Service Projects
By Dr. Abdulrahman H. Altalhi
CS 691z / 791z Topics on Software Engineering
Software Engineering (CSI 321)
Introduction to Software Engineering
CS 790M Project preparation (I)
UNIT II.
Requirements Analysis
Chapter 7: Classes and Objects Chapter 8: Finding Analysis Classes
Chapter 2 – Software Processes
Software Requirements Specification Document
Chapter 7: Classes and Objects Chapter 8: Finding Analysis Classes
KEY PROCESS AREAS (KPAs)
Chapter 6: Principles of Requirements Analysis
CS385T Software Engineering Dr.Doaa Sami
Lecture # 7 System Requirements
Requirements Document
Chapter 5 Understanding Requirements.
CS 420/620 HCI Use Case Modeling Project Preparation
CS 425 Software Engineering
CS 425/625 Software Engineering
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
CS 426 CS 791z Topics on Software Engineering
CS 426 CS 791z Topics on Software Engineering
SWE 3313 Requirements.
INTRODUCTION OF REQUIREMENT ENGINEERING Chapter- one.
Presentation transcript:

Chapter 3: The Requirements Workflow CS 709 Chapter 3: The Requirements Workflow From [Jim Arlow and Ila Neustadt, UML 2 and the Unified Process, Addison-Wesley 2005] University of Nevada, Reno Department of Computer Science & Engineering

Outline The requirements workflow Metamodel for software requirements Requirements workflow details The importance of requirements Defining requirements

The Requirements Workflow The UP description shows that most of the work in requirements workflow occurs in Inception and Elaboration phases

The Requirements Workflow The purpose of the requirements workflow is to reach an agreement on what the system should do, expressed in a way accessible to the users of the system Requirements engineering involves various activities: elicitation, negotiation, conflict resolution, prioritization, documentation, and maintenance of requirements Various stakeholders are involved in establishing the set of requirements for the system UML uses cases describe functional requirements, but non-functional requirements need different description

Metamodel for Software Requirements

Requirements Workflow Detail Specific tasks for UP requirements workflow

Requirements Workflow Detail Arlow and Neustadt extend slightly the UP requirements workflow with the addition of new tasks: find functional requirements, find non-functional requirements, prioritize requirements, & trace requirements to use cases.

The Importance of Requirements Requirements engineering is about establishing what the stakeholders need from the system Poor requirements engineering is the major cause of software project failure The second major cause of software project failure is lack of user participation

Defining Requirements Requirement: “a specification of what should be implemented” There are two types of requirements: Functional requirements: describe the desired behavior of the system Non-functional requirements: specify particular properties of or constraints on the system In theory, the set of requirements should be only about “what” the system should do, but in practice it is not possible to avoid “how” aspects of the system

Defining Requirements The SRS (Systems Requirements Specification) is the document that contains the set of requirements expected to be satisfied by the system, both functional and non-functional There are many ways to write an SRS (“company dependent” ways) The SRS provides the input for analysis and design phases of the development process The bottom line regarding the SRS is: “does it help me to understand what the system should do or not?”

Defining Requirements Simple format recommended for well-formed requirements: <id> The <system> shall <function> Examples of functional requirements (what the system should do): 1 The ATM shall check the validity of the ATM card inserted 2 The ATM shall validate the PIN number entered by the client 3 The ATM shall allow the user to deposit cash Examples of non-functional requirements (constraints on or properties of the system): 1 The ATM shall be written in C++ 2 The ATM shall validate the PIN in three seconds or less

Defining Requirements Organizing requirements: a more complex taxonomy can be used when there are many requirements, e.g. Functional requirements Customers Products Orders Sales channels Payments

Defining Requirements Organizing requirements: a more complex taxonomy can be used when there are many requirements, e.g. Non-functional requirements Performance Capacity Availability Compliance with standards Security

Defining Requirements Requirements may have attributes, e.g., priority Must have Should have Could have Want to have [the MoSCoW system] Other requirement attributes in RUP: Status (proposed, approved, rejected, incorporated) Benefit (critical, important, useful) Effort (measured in person*day or function points) Risk (high, medium, low) Stability (high, medium, low) TargetRelease (product version when implemented)

Finding Requirements Requirements come from the context of the system: Direct users Other stakeholders (e.g., managers, maintainers, installers) Other systems that interact with the system Hardware devices attached to the system Legal and regulatory constraints Technical constraints Business goals

Finding Requirements The map is not the territory When modeling, we apply three cognitive filters that simplify our effort [Chomsky, 1975]: Deletion Distortion Generalization

Finding Requirements In requirements specification we need to identify the application of the above filters and find “challenges” for them to recover information In particular, universal quantifiers such as All Everyone Always Never Nobody None should be inspected closely for accuracy

Finding Requirements Interviews: Don’t imagine a solution Ask context-free questions Listen Don’t mind read Have patience

Finding Requirements Questionnaires Cannot substitute the interviews Can supplement the interviews Good at getting answers to closed questions

Finding Requirements Requirements workshop Participants Procedure Facilitator Requirements engineer Stakeholders Domain experts Procedure Brainstorm (accept all ideas) Identify key requirements Iterate over identified requirements, note additional attributes After the meeting Analyze results and turn them into requirements Circulate results for comment