SlideShare ist ein Scribd-Unternehmen logo
1 von 82
Why Requirements Engineering?
• Requirements engineering helps software engineers
better understand the problems they are trying to
solve
• Building an elegant computer solution that ignores
the customer's needs helps no one. Good
requirements engineering helps in avoiding such
situations
What is Requirements Engineering?
• Begins during the communication activity and continues
into the modeling activity
• The intent of requirements engineering is to produce a
written understanding of the customer's problem
• Several different work products might be used to
communicate this understanding (user scenarios, function
and feature lists, analysis models, or specifications)
• In some cases requirements engineering may be
abbreviated, but it is never abandoned
• The development team must understand the requirements
before trying to solve the problem
Who does Requirements Engineering?
• Software Engineers (sometimes referred as System
Analysts)
• Stakeholders from the software’s customer side
–Managers
–Customers
–End-users
Requirements Engineering
- Problems with requirements practices
- Requirements engineering tasks
- Inception
- Elicitation
- Elaboration
- Negotiation
- Specification
- Validation
- Requirements management
The Problems with our
Requirements Practices
•
•
•
•
We have trouble understanding the requirements that we do acquire
from the customer
We often record requirements in a disorganized manner We spend far
too little time verifying what we do record
Most importantly, we fail to establish a solid foundation for the system
or software that the user wants built
The Problems with our
Requirements Practices (continued)
• Many software developers argue that
–
–
–
– Building software is so compelling that we want to jump right in (before
having a clear understanding of what is needed)
Things will become clear as we build the software
Project customer will be able to better understand what they need only after
examining early stages of the software
Things change so rapidly that requirements engineering is a waste of time
•
•
All of these arguments contain some truth, especially for small
projects that take less than one month to complete
However, as software grows in size and complexity, these arguments
begin to break down and can lead to a failed software project
7
Requirements Engineering Tasks
• Seven distinct tasks
–Inception
–Elicitation
–Elaboration
–Negotiation
–Specification
–Validation
–Requirements Management
• Some of these tasks may occur in parallel and all are
adapted to the needs of the project
• All strive to define what the customer wants
• All serve to establish a solid foundation for the design
and construction of the software
Requirements
Management
8
Validation
Inception
Elicitation
Elaboration
Negotiation
Specification
9
Requirements Engineering
• Inception—Establish a basic understanding of the problem and the
nature of the solution.
• Elicitation—Draw out the requirements from stakeholders.
• Elaboration—Create an analysis model that represents information,
functional, and behavioral aspects of the requirements.
• Negotiation—Agree on a deliverable system that is realistic for
developers and customers.
• Specification—Describe the requirements formally or informally.
• Validation—Review the requirement specification for errors,
ambiguities, omissions, and conflicts.
• Requirements management—Manage changing requirements.
10
Requirements Engineering Steps-I
1. Inception—ask a set of questions that establish …
 basic understanding of the problem
 the people who want a solution
 the nature of the solution that is desired, and
 the effectiveness of preliminary communication and collaboration
between the customer and the developer
2. Elicitation—elicit requirements from all stakeholders
3. Elaboration—create an analysis model that identifies data,
function and behavioral requirements
4. Negotiation—agree on a deliverable system that is
realistic for developers and customers
11
Requirements Engineering Steps-II
5. Specification—can be one or more of the following:
– A written document
– A set of models
– A formal mathematical model
– A collection of user scenarios (use-cases)
– A prototype
6. Validation—a review mechanism that looks for
– errors in content or interpretation
– areas where clarification may be required
– missing information
– inconsistencies (a major problem with large systems)
– conflicting or unrealistic (unachievable) requirements
7. Requirements management
12
Inception
• Ask “context-free” questions
–Who is behind the request for this work?
–Who will use the solution (product/system)?
–What will be the economic benefits?
–How would you characterize “good” output from the system?
–What problems does this solution address?
–What environment will the product be used in?
–Are you the right person to answer these questions?
–Are these question relevant?
–Can anyone else provide additional information?
–Should I be asking you anything else?
13
Getting Requirements
Right
• “The hardest single part of building a software system is deciding what to
build. No part of the work so cripples the resulting system if done wrong.
No other part is more difficult to rectify later.”
—Fred Brooks
• “The seeds of major software disasters are usually sown within the first
three months of commencing the software project.”
—Capers Jones
• “We spend a lot of time—the majority of project effort—not implementing
or testing, but trying to decide what to build.”
—Brian Lawrence
Inception Task/ Initiating the Requirement
Engineering Process
14
• During inception, the requirements engineer asks a set of questions to
establish…
–
–
–
–
A basic understanding of the problem The people who want a solution
The nature of the solution that is desired
The effectiveness of preliminary communication and collaboration between the
customer and the developer
• Through these questions, the requirements engineer needs to…
–
–
–
–
Identify the customer Recognize multiple
viewpoints Work toward collaboration
Break the ice and initiate the communication
The First Set of Questions
•
•
•
•
Who is behind the request for this work? Who will use the
solution?
What will be the economic benefit of a successful solution?
Is there another source for the solution that you need?
These questions focus on the customer, other stakeholders, the overall
goals, and the benefits
15
The Next Set of Questions
•
•
•
How would you characterize "good" output that would be generated
by a successful solution?
What problem(s) will this solution address?
Can you show me (or describe) the business environment in which the
solution will be used?
These questions enable the requirements engineer to gain a better
understanding of the problem and allow the customer to voice his or her
perceptions about a solution
16
The Final Set of Questions
•
•
•
•
•
Are you the right person to answer these questions? Are your answers
"official"?
Are my questions relevant to the problem that you have? Am I asking
too many questions?
Can anyone else provide additional information? Should I be asking
you anything else?
These questions focus on the effectiveness of the
communication activity itself
17
Requirements
Management
18
Validation
Inception
Elicitation
Elaboration
Negotiation
Specification
19
Elicitation/ Eliciting Requirements
• Why is it so difficult to clearly understand what the customer wants?
–Scope
•The boundary of the system is ill-defined.
•Customers/users specify unnecessary technical detail that may confuse
rather than clarify objectives.
–Understanding
•Customers are not completely sure of what is needed.
•Customers have a poor understanding of the capabilities and
limitations of the computing environment.
•Customers don’t have a full understanding of their problem domain.
•Customers have trouble communicating needs to the system engineer.
•Customers omit detail that is believed to be obvious.
•Customers specify requirements that conflict with other requirements.
•Customers specify requirements that are ambiguous or untestable.
–Volatility
•Requirements change over time.
20
Collaborative Requirements
Gathering
• Meetings are attended by all interested stakeholders.
• Rules established for preparation and participation.
• Agenda should be formal enough to cover all important points, but informal
enough to encourage the free flow of ideas.
• A facilitator controls the meeting.
• A definition mechanism (blackboard, flip charts, etc.) is used.
• During the meeting:
–The problem is identified.
–Elements of the solution are proposed.
–Different approaches are negotiated.
–A preliminary set of solution requirements are obtained.
–The atmosphere is collaborative and non-threatening.
Elicitation Task
21
• Eliciting requirements is difficult because of
– Problems of scope in identifying the boundaries of the system or
specifying too much technical detail rather than overall system objectives
– Problems of understanding what is wanted, what the problem domain is,
and what the computing environment can handle (Information that is
believed to be "obvious" is often omitted)
• Elicitation may be accomplished through two activities
–
–
Collaborative requirements gathering
Quality function deployment
Basic Guidelines of Collaborative
Requirements Gathering
22
•
•
•
•
•
•
Meetings are conducted and attended by both software engineers,
customers, and other interested stakeholders
Rules for preparation and participation are established
An agenda is suggested that is formal enough to cover all important
points but informal enough to encourage the free flow of ideas
A "facilitator" (customer, developer, or outsider) controls the meeting
A "definition mechanism" is used such as work sheets, flip charts, wall
stickers, electronic bulletin board, chat room, or some other virtual
forum
The goal is to identify the problem, propose elements of the solution,
negotiate different approaches, and specify a preliminary set of
solution requirements
23
Quality Function Deployment
• This is a technique that translates the needs of the customer into
technical requirements for software
• It emphasizes an understanding of what is valuable to the customer
and then deploys these values throughout the engineering process
through functions, information, and tasks
• It identifies three types of requirements
–Normal requirements: These requirements are the objectives and goals stated
for a product or system during meetings with the customer
–Expected requirements: These requirements are implicit to the product or
system and may be so fundamental that the customer does not explicitly state
them
–Exciting requirements: These requirements are for features that go beyond
the customer's expectations and prove to be very satisfying when present
24
Quality Function
Deployment
• Function deployment determines the “value” (to the
customer) of each function required of the system.
• Information deployment identifies data objects and
events.
• Task deployment examines the behavior of the
system.
• Value analysis determines the priority of
requirements.
Ref: Software Engineering: A
Non-Functional Requirements (NFR)
• NFRs are the quality, performance, and security
attributes, general system constraints (e.g. max available
RAM), or process requirements (e.g. IDE)
• Generally apply to the whole system rather than any
particular feature
• Often not easy for stakeholders to articulate
• There is an overemphasis on functionality of the
software, yet the software may not be useful or usable
without the necessary non-functional characteristics
27
Elicitation Work Products
• A statement of need and feasibility
• A bounded statement of scope for the system or product
• A list of customers, users, and other stakeholders who participated in
requirements elicitation
• A description of the system's technical environment
• A list of requirements (organized by function) and the domain
constraints that apply to each
• A set of preliminary usage scenarios (in the form of use cases) that
provide insight into the use of the system or product under different
operating conditions
• Any prototypes developed to better define requirements
The work products will vary depending on the system, but
should include one or more of the following items
28
Example - CAMU
• Normal Requirement:
–Attendance update by Faculty
–Attendance report for Faculty /Students
• Expected Requirement:
- Attendance lag report
• Exciting Requirement:
– Sending alert to Parents
29
Elicitation Work Products
• Statement of need and feasibility.
• Statement of scope.
• List of participants in requirements elicitation.
• Description of the system’s technical environment.
• List of requirements and associated domain
constraints.
• List of usage scenarios.
• Any prototypes developed to refine requirements.
Requirements
Management
30
Validation
Inception
Elicitation
Elaboration
Negotiation
Specification
Elaboration Task
31
•
•
•
During elaboration, the software engineer takes the information
obtained during inception and elicitation and begins to expand and
refine it
Elaboration focuses on developing a refined technical model of
software functions, features, and constraints
The end result is an analysis model that defines the functional,
informational, and behavioral domains of the problem
32
Elaboration Task
• During elaboration, the software engineer takes the information
obtained during inception and elicitation and begins to expand
and refine it
• Elaboration focuses on developing a refined technical model of
software functions, features, and constraints
• It is an analysis modeling task
–Use cases are developed
–Domain classes are identified along with their attributes and relationships
–State machine diagrams are used to capture the life on an object
• The end result is an analysis model that defines the functional,
informational, and behavioral domains of the problem
Requirements
Management
33
Validation
Inception
Elicitation
Elaboration
Negotiation
Specification
Negotiation Task
34
•
•
•
•
•
During negotiation, the software engineer reconciles the conflicts
between what the customer wants and what can be achieved given
limited business resources
Requirements are ranked (i.e., prioritized) by the customers, users, and
other stakeholders
Risks associated with each requirement are identified and analyzed
Rough guesses of development effort are made and used to assess the
impact of each requirement on project cost and delivery time
Using an iterative approach, requirements are eliminated, combined
and/or modified so that each party achieves some measure of
satisfaction
The Art of Negotiation
35
•
•
•
•
•
•
•
Recognize that it is not competition
Map out a strategy
Listen actively
Focus on the other party’s interests
Don’t let it get personal
Be creative
Be ready to commit
Requirements
Management
36
Validation
Inception
Elicitation
Elaboration
Negotiation
Specification
Specification Task
37
•
•
•
•
•
A specification is the final work product produced by the requirements
engineer
It is normally in the form of a software requirements specification
It serves as the foundation for subsequent software engineering
activities
It describes the function and performance of a computer-based system
and the constraints that will govern its development
It formalizes the informational, functional, and behavioral
requirements of the proposed software in both a graphical and textual
format
Requirements
Management
38
Validation
Inception
Elicitation
Elaboration
Negotiation
Specification
Validation Task
39
•
•
During validation, the work products produced as a result of
requirements engineering are assessed for quality
The specification is examined to ensure that
–
–
–
all software requirements have been stated unambiguously
inconsistencies and errors have been detected and corrected
the work products conform to the standards established for the process,
the project, and the product
• The formal technical review serves as the primary requirements
validation mechanism
– Members include software engineers, customers, users, and
other stakeholders
Requirements
Management
40
Validation
Inception
Elicitation
Elaboration
Negotiation
Specification
Requirements Management Task
41
•
•
•
• During requirements management, the project team performs a set of
activities to identify, control, and track requirements and changes to
the requirements at any time as the project proceeds
Each requirement is assigned a unique identifier
The requirements are then placed into one or more traceability tables
These tables may be stored in a database that relate features, sources,
dependencies, subsystems, and interfaces to the requirements
Requirements Management Task
42
•
•
•
Requirements Management Task
43
•
•
•
Requirements Management Task
44
• Generic Traceability table
45
Use-Cases
• A use-case scenario is a story about how someone or something
external to the software (known as an actor) interacts with the system.
• Each scenario answers the following questions:
• Who is the primary actor, the secondary actor(s)?
–What are the actor’s goals?
–What preconditions should exist before the story begins?
–What main tasks or functions are performed by the actor?
–What exceptions might be considered as the story is described?
–What variations in the actor’s interaction are possible?
–What system information will the actor acquire, produce, or change?
–Will the actor have to inform the system about changes in the external
environment?
–What information does the actor desire from the system?
–Does the actor wish to be informed about unexpected changes?
46
Elements of the Analysis Model
• Scenario-based elements
–Use-case—How external actors interact with the system (use-
case diagrams; detailed templates)
–Functional—How software functions are processed in the
system (flow charts; activity diagrams)
• Class-based elements
–The various system objects (obtained from scenarios) including
their attributes and functions (class diagram)
• Behavioral elements
–How the system behaves in response to different events (state
diagram)
• Flow-oriented elements
–How information is transformed as if flows through the system
(data flow diagram)
47
Use-Case Diagram
48
Activity Diagram for RE
49
Class Diagram
50
State Diagram
51
Analysis Patterns
Pattern name: Captures the essence of the pattern.
Intent: What the pattern accomplishes or represents.
Motivation: A scenario that illustrates how the pattern solves a
problem.
Forces and context: External issues (forces) that affect how the
pattern is used, and external issues resolved when the
pattern is applied.
Solution: How the pattern is applied to solve the problem;
emphasizes structural and behavioral issues.
Consequences: What happens when the pattern is applied; what
trade-offs exist during its application.
Design: How the pattern can be achieved via known design
patterns.
Known uses: Examples of uses within actual systems.
Related patterns: Patterns related to the named pattern because
(1) they are commonly used with the named pattern;
(2) they are structurally similar to the named pattern;
(3) they are a variation of the named pattern.
52
Negotiating Requirements
• Identify the key stakeholders
–These are the people who will be involved in the
negotiation
• Determine each of the stakeholders “win conditions”
–Win conditions are not always obvious
• Negotiate
–Work toward a set of requirements that lead to “win-win”
53
Validating Requirements
• Is each requirement consistent with the objective of the system?
• Have all requirements been specified at the proper level of abstraction?
• Is the requirement really necessary?
• Is each requirement bounded and unambiguous?
• Does each requirement have attribution?
• Do any requirements conflict with other requirements?
• Is each requirement achievable in the system’s technical environment?
• Is each requirement testable, once implemented?
• Does the model reflect the system’s information, function and
behavior?
• Has the model been appropriately “partitioned”?
• Have appropriate requirements patterns been used?
54
Example CRG Meeting
• First CRG meeting of the SafeHome project.
–After Q&A session (inception meeting), stakeholders write a two
page product request, which is delivered to those attending the first
CRG meeting.
–Attendees are asked to make a rough list of objects, services,
constraints, and performance criteria for the product.
–At the meeting, a combined list is created in each topic.
–Subgroups write mini-specifications for each list item.
–Relevant features in mini-specifications are added to the list.
55
Example CRG Meeting
• Our research indicates that the market for home management systems is
growing at a rate of 40 percent per year. The first SafeHome function we
bring to market should be the home security function. Most people are
familiar with “alarm systems” so this would be an easy sell.
• The home security function would protect against and/or recognize a
variety of undesirable “situations” such as illegal entry, fire, flooding,
carbon monoxide levels, and others. It’ll use our wireless sensors to
detect each situation, can be programmed by the homeowner, and will
automatically telephone a monitoring agency when a situation is
detected.
56
Example CRG Meeting
• Objects – control panel, smoke detectors, window and door sensors,
motion detectors, an alarm, an event (sensor has been activated), a
display, a PC, telephone numbers, a telephone call, …
• Services – configuring the system, setting the alarm, monitoring the
sensors, dialing the phone, programming the control panel, reading the
display, …
• Constraints – System must recognize when sensors are not operating,
must be user friendly, must interface directly to a standard phone line, …
• Performance criteria – Sensor event should be recognized within one
second, an event priority scheme should be implemented, …
57
Example CRG Meeting
• Mini-specification for Control Panel
–The Control Panel is a wall-mounted unit that is
approximately 9 x 5 inches in size. The control
panel has wireless connectivity to sensors and a PC.
User interaction occurs through a keypad
containing 12 keys. A 2 x 2 inch LCD display
provides user feedback. Software provides
interactive prompts, echo, and similar functions.
Quality Function Deployment
58
•
•
•
This is a technique that translates the needs of the customer into
technical requirements for software
It emphasizes an understanding of what is valuable to the customer
and then deploys these values throughout the engineering process
through functions, information, and tasks
It identifies two types of requirements
– Normal requirements: These requirements are the objectives and goals
stated for a product or system during meetings with the customer
– Expected requirements: These requirements are implicit to the product or
system and may be so fundamental that the customer does not explicitly
state them
These slides are designed to
59
Use-Cases
• Scenarios that describe the threads of usage of a system
• Each scenario is described from the point-of-view of an “actor”—a
person or device that interacts with the software in some way
• Each scenario answers the following questions:
oWho is the primary actor, the secondary actor(s)?
oWhat are the actor’s goals?
oWhat preconditions should exist before the story begins?
oWhat main tasks or functions are performed by the actor?
oWhat extensions might be considered as the story is described?
oWhat variations in the actor’s interaction are possible?
oWhat system information will the actor acquire, produce, or change?
oWill the actor have to inform the system about changes in the external
environment?
oWhat information does the actor desire from the system?
oDoes the actor wish to be informed about unexpected changes?
Actors
• An actor is anything that communicates with the
system and that is external to the system itself. Every
actor has one or more goals when using the system
• It is important to note that an actor and an end-user
are not necessarily the same thing. A typical user
may play a number of different roles when using a
system
• Primary actors interact to achieve required system
function and derive the intended benefit from the
system. They work directly with the system
• Secondary actors support the system so that primary
actors can do their work
Ref: Software Engineering: A
Use Case Example for Operating
the SafeHome Control Panel
Ref: Software Engineering: A
Ref: Software Engineering: A
6. Scenario:
Homeowner: observes control panel
Homeowner: enters password
Homeowner: selects “stay” or “away”
Homeowner: observes read alarm light to
indicate that SafeHome has
been armed
1. Use case: InitiateMonitoring
2. Primary actor: Homeowner
3. Goal in context: To set the system to monitor
sensors when the
homeowner leaves the
house or remains inside
4. Preconditions: System has been
programmed for a password
and to recognize various
sensors
5. Trigger: The homeowner decides to
“set” the system, that is, to
turn on the alarm functions
7. Exceptions:
Control panel is not ready: homeowner checks all sensors to determine which are open; closes them
Password is incorrect (control panel beeps once): homeowner reenters correct password.
Password not recognized: monitoring and response subsystem must be contacted to reset password
Stay is selected: control panel beeps twice and a stay light is lit; perimeter sensors are activated
Away is selected: control panel beeps three times and an away light is lit; all sensors are activated
8. Priority: Essential, must be
implemented
9. When available: First increment
10. Frequency of use: Many times per day
11. Channel to actor: Via control panel interface
12. Secondary actors: Support technician, sensors
13. Channels to secondary actors:
Support technician: phone line
Sensors: hardwired and wireless interfaces
14. Open issues:
1. Should there be a way to activate the
system without the use of a password or
with an abbreviated password?
2. Should the control panel display additional
text messages?
3. How much time does the homeowner have
to enter the password from the time the first
key is pressed?
4. Is there a way to deactivate the system
before it actually activates?
Use Case: InitialMonitoring (1)
Ref: Software Engineering: A
Use case: InitiateMonitoring
Primary actor: Homeowner
Goal in context: To set the system to monitor sensors when the
homeowner leaves the house or remains inside
Preconditions: System has been programmed for a password
and to recognize various sensors
Trigger: The homeowner decides to “set” the system, that
is, to turn on the alarm functions
Use Case: InitialMonitoring (2)
Ref: Software Engineering: A
Scenario:
Homeowner: observes control panel
Homeowner: enters password
Homeowner: selects “stay” or “away”
Homeowner: observes read alarm light to indicate that
SafeHome has been armed
Use Case: InitialMonitoring (3)
Ref: Software Engineering: A
Exceptions:
Control panel is not ready: homeowner checks all sensors to determine
which are open; closes them
Password is incorrect (control panel beeps once): homeowner reenters
correct password.
Password not recognized: monitoring and response subsystem must be
contacted to reset password
Stay is selected: control panel beeps twice and a stay light is lit;
perimeter sensors are activated
Away is selected: control panel beeps three times and an away light is
lit; all sensors are activated
Use Case: InitialMonitoring (4)
Ref: Software Engineering: A
Priority: Essential, must be implemented
When available: First increment
Frequency of use: Many times per day
Channel to actor: Via control panel interface
Secondary actors: Support technician, sensors
Channels to secondary actors:
Support technician: phone line
Sensors: hardwired and wireless interfaces
Use Case: InitialMonitoring (5)
Ref: Software Engineering: A
Open issues:
1. Should there be a way to activate the system without the use
of a password or with an abbreviated password?
2. Should the control panel display additional text messages?
3. How much time does the homeowner have to enter the
password from the time the first key is pressed?
4. Is there a way to deactivate the system before it actually
activates?
These slides are designed to
Use-Case
Diagram
for the
SafeHome
System
Initial
Monitoring
These slides are designed to
69
Elements of the
Analysis/Requirements Model
1. Scenario-based elements
Use-case diagram and use-case descriptions
2. Class-based elements
Class diagram
3. Behavioral elements
State diagram
These slides are designed to
70
Eliciting
Requirements
Class Diagram
These slides are designed to
71
Sensor
name/id
type
location
area
characteristics
identify()
enable()
disable()
reconfigure ()
For the SafeHome system …
State Diagram
These slides are designed to
72
Reading
Commands
System status = “ready”
Display msg = “enter cmd”
Display status = steady
Entry/subsystems ready
Do: poll user input panel
Do: read user input
Do: interpret user input
State name
State variables
State activities
Analysis/Requirements Patterns
• Are classes/functions/behaviors that reoccur
across many projects in a particular
application domain
• They speed up the development of the
analysis model by providing reusable analysis
models with examples and descriptions of
advantages and limitations
• The facilitate the transformation of analysis to
design by suggesting related design pattern
and reliable solutions to common problems
These slides are designed to
74
Analysis/Requirements Patterns:
Template
Pattern name: A descriptor that captures the essence of the pattern
Intent: Describes what the pattern accomplishes or represents
Motivation: A scenario that illustrates how the pattern can be used to
address the problem
Forces and context: A description of external issues (forces) that
can affect how the pattern is used and also the external issues
that will be resolved when the pattern is applied
Solution: A description of how the pattern is applied to solve the
problem with an emphasis on structural and behavioral issues
Consequences: Addresses what happens when the pattern is
applied and what trade-offs exist during its application
Design: Discusses how the analysis pattern can be achieved through
the use of known design patterns
Known uses: Examples of uses within actual systems
Related patterns: Patterns that are commonly used with this pattern,
or are structurally similar, or are a variation of this pattern
Negotiating Requirements:
Why?
• Negotiate to balance customer’s functionality and
performance requirements against available
resources (time, people, budget, etc.)
• Intent of negotiation is to agree upon a project plan
that meets the needs of the customer while
reflecting the real-world constraints of time, people,
and budget
• The best negotiation strives for a win-win result:
–A majority of the customer’s needs are met
–The developer gets to work to achievable deadlines within a
These slides are designed to
76
Negotiating Requirements:
How?
1. Identify the key stakeholders
These are the people who will be involved in the
negotiation
2. Determine each of the stakeholders “win
conditions”
Win conditions are not always obvious
3. Negotiate
Work toward a set of requirements that lead to “win-
win”
Negotiating Requirements: Guidelines
• It's not a competition
• Map out a strategy
• Listen actively
• Focus on other party's interests
• Don't let it get personal
• Be creative
• Be ready to commit
These slides are designed to
78
Requirements Monitoring:
Especially Needed in Incremental Development
Requirements monitoring supports continuous
validation by analyzing user goals against the system
developed
Distributed debugging – uncovers errors and determines
their cause
Run-time verification – determines whether software
matches its specification
Run-time validation – assesses whether evolving software
meets user goals
Business activity monitoring – evaluates whether a system
satisfies business goals
Evolution and co-design – provides information to
stakeholders as the system evolves
Validating
Requirements - I
• Is each requirement consistent with the overall
objective for the system/product?
• Have all requirements been specified at the proper
level of abstraction? That is, do some requirements
provide a level of technical detail that is inappropriate
at this stage?
• Is the requirement really necessary or does it
represent an add-on feature that may not be essential
to the objective of the system?
These slides are designed to
79
Validating
Requirements - II
• Is each requirement bounded and unambiguous?
• Does each requirement have attribution? That is,
is a source noted for each requirement?
• Do any requirements conflict with other
requirements?
• Is each requirement achievable in the technical
environment that will house the system or
product?
• Is each requirement testable, once implemented?
These slides are designed to
80
Validating
Requirements - III
• Does the requirements model properly reflect
the information, function and behavior of the
system to be built?
• Has the requirements model been “partitioned”
in a way that exposes progressively more
detailed information about the system?
• Have requirements patterns been used to
simplify the requirements model? Have all
patterns been properly validated? Are all
patterns consistent with customer
These slides are designed to
81
Avoiding Common
Mistakes
Fearturitis describes the practice of trading functional
coverage for overall system quality. Some engineers equate
the number of functions delivered at the earliest possible
time with the overall quality of the end product
Flexibilitis happens when engineers overload the product
with adaptation and configuration facilities. The result is a
system that is unnecessarily complex, more difficult to test,
and more challenging to manage
Performitis occurs when developers become overly focused
on system performance at the expense of quality attributes,
e.g. maintainability, reliability, security
Ref: Software Engineering: A

Weitere ähnliche Inhalte

Ähnlich wie req engg (1).ppt

Chapter 2 Analyzing the Business Case .pptx
Chapter 2 Analyzing the Business Case .pptxChapter 2 Analyzing the Business Case .pptx
Chapter 2 Analyzing the Business Case .pptx
AxmedMaxamuudYoonis
 
chapter02-120827115348-phpapp01.pdf
chapter02-120827115348-phpapp01.pdfchapter02-120827115348-phpapp01.pdf
chapter02-120827115348-phpapp01.pdf
AxmedMaxamuud6
 
Sdec10 lean package implementation
Sdec10 lean package implementationSdec10 lean package implementation
Sdec10 lean package implementation
Terry Bunio
 
UNIT V - 1 SPM.pptx
UNIT V - 1 SPM.pptxUNIT V - 1 SPM.pptx
UNIT V - 1 SPM.pptx
Devnath13
 

Ähnlich wie req engg (1).ppt (20)

SRE.pptx
SRE.pptxSRE.pptx
SRE.pptx
 
Unit 2
Unit 2Unit 2
Unit 2
 
Requirement Analysis
Requirement AnalysisRequirement Analysis
Requirement Analysis
 
Requirement Engineering
Requirement EngineeringRequirement Engineering
Requirement Engineering
 
5. SE RequirementEngineering task.ppt
5. SE RequirementEngineering task.ppt5. SE RequirementEngineering task.ppt
5. SE RequirementEngineering task.ppt
 
Unit 2 SEPM_ Requirement Engineering
Unit 2 SEPM_ Requirement EngineeringUnit 2 SEPM_ Requirement Engineering
Unit 2 SEPM_ Requirement Engineering
 
Lecture 1 - Requirement Engineering.pptx
Lecture 1 - Requirement Engineering.pptxLecture 1 - Requirement Engineering.pptx
Lecture 1 - Requirement Engineering.pptx
 
Chapter 2 Analyzing the Business Case .pptx
Chapter 2 Analyzing the Business Case .pptxChapter 2 Analyzing the Business Case .pptx
Chapter 2 Analyzing the Business Case .pptx
 
Lecture 9 understanding requirements
Lecture 9   understanding requirementsLecture 9   understanding requirements
Lecture 9 understanding requirements
 
chapter02-120827115348-phpapp01.pdf
chapter02-120827115348-phpapp01.pdfchapter02-120827115348-phpapp01.pdf
chapter02-120827115348-phpapp01.pdf
 
Good PracticesFor RequirementEngineering.pptx
Good PracticesFor RequirementEngineering.pptxGood PracticesFor RequirementEngineering.pptx
Good PracticesFor RequirementEngineering.pptx
 
Chapter 02
Chapter 02Chapter 02
Chapter 02
 
Development Guideline
Development GuidelineDevelopment Guideline
Development Guideline
 
Ch12
Ch12Ch12
Ch12
 
Sdec10 lean package implementation
Sdec10 lean package implementationSdec10 lean package implementation
Sdec10 lean package implementation
 
UNIT V - 1 SPM.pptx
UNIT V - 1 SPM.pptxUNIT V - 1 SPM.pptx
UNIT V - 1 SPM.pptx
 
ch03-Design Project.ppt
ch03-Design Project.pptch03-Design Project.ppt
ch03-Design Project.ppt
 
ch11.ppt
ch11.pptch11.ppt
ch11.ppt
 
SRE Lect (week 1).pptx
SRE Lect (week 1).pptxSRE Lect (week 1).pptx
SRE Lect (week 1).pptx
 
180605 workshop management
180605 workshop management180605 workshop management
180605 workshop management
 

Kürzlich hochgeladen

Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Christo Ananth
 
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ssuser89054b
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
MsecMca
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Christo Ananth
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
ankushspencer015
 

Kürzlich hochgeladen (20)

Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPT
 
Call for Papers - International Journal of Intelligent Systems and Applicatio...
Call for Papers - International Journal of Intelligent Systems and Applicatio...Call for Papers - International Journal of Intelligent Systems and Applicatio...
Call for Papers - International Journal of Intelligent Systems and Applicatio...
 
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
 
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 

req engg (1).ppt

  • 1. Why Requirements Engineering? • Requirements engineering helps software engineers better understand the problems they are trying to solve • Building an elegant computer solution that ignores the customer's needs helps no one. Good requirements engineering helps in avoiding such situations
  • 2. What is Requirements Engineering? • Begins during the communication activity and continues into the modeling activity • The intent of requirements engineering is to produce a written understanding of the customer's problem • Several different work products might be used to communicate this understanding (user scenarios, function and feature lists, analysis models, or specifications) • In some cases requirements engineering may be abbreviated, but it is never abandoned • The development team must understand the requirements before trying to solve the problem
  • 3. Who does Requirements Engineering? • Software Engineers (sometimes referred as System Analysts) • Stakeholders from the software’s customer side –Managers –Customers –End-users
  • 4. Requirements Engineering - Problems with requirements practices - Requirements engineering tasks - Inception - Elicitation - Elaboration - Negotiation - Specification - Validation - Requirements management
  • 5. The Problems with our Requirements Practices • • • • We have trouble understanding the requirements that we do acquire from the customer We often record requirements in a disorganized manner We spend far too little time verifying what we do record Most importantly, we fail to establish a solid foundation for the system or software that the user wants built
  • 6. The Problems with our Requirements Practices (continued) • Many software developers argue that – – – – Building software is so compelling that we want to jump right in (before having a clear understanding of what is needed) Things will become clear as we build the software Project customer will be able to better understand what they need only after examining early stages of the software Things change so rapidly that requirements engineering is a waste of time • • All of these arguments contain some truth, especially for small projects that take less than one month to complete However, as software grows in size and complexity, these arguments begin to break down and can lead to a failed software project
  • 7. 7 Requirements Engineering Tasks • Seven distinct tasks –Inception –Elicitation –Elaboration –Negotiation –Specification –Validation –Requirements Management • Some of these tasks may occur in parallel and all are adapted to the needs of the project • All strive to define what the customer wants • All serve to establish a solid foundation for the design and construction of the software
  • 9. 9 Requirements Engineering • Inception—Establish a basic understanding of the problem and the nature of the solution. • Elicitation—Draw out the requirements from stakeholders. • Elaboration—Create an analysis model that represents information, functional, and behavioral aspects of the requirements. • Negotiation—Agree on a deliverable system that is realistic for developers and customers. • Specification—Describe the requirements formally or informally. • Validation—Review the requirement specification for errors, ambiguities, omissions, and conflicts. • Requirements management—Manage changing requirements.
  • 10. 10 Requirements Engineering Steps-I 1. Inception—ask a set of questions that establish …  basic understanding of the problem  the people who want a solution  the nature of the solution that is desired, and  the effectiveness of preliminary communication and collaboration between the customer and the developer 2. Elicitation—elicit requirements from all stakeholders 3. Elaboration—create an analysis model that identifies data, function and behavioral requirements 4. Negotiation—agree on a deliverable system that is realistic for developers and customers
  • 11. 11 Requirements Engineering Steps-II 5. Specification—can be one or more of the following: – A written document – A set of models – A formal mathematical model – A collection of user scenarios (use-cases) – A prototype 6. Validation—a review mechanism that looks for – errors in content or interpretation – areas where clarification may be required – missing information – inconsistencies (a major problem with large systems) – conflicting or unrealistic (unachievable) requirements 7. Requirements management
  • 12. 12 Inception • Ask “context-free” questions –Who is behind the request for this work? –Who will use the solution (product/system)? –What will be the economic benefits? –How would you characterize “good” output from the system? –What problems does this solution address? –What environment will the product be used in? –Are you the right person to answer these questions? –Are these question relevant? –Can anyone else provide additional information? –Should I be asking you anything else?
  • 13. 13 Getting Requirements Right • “The hardest single part of building a software system is deciding what to build. No part of the work so cripples the resulting system if done wrong. No other part is more difficult to rectify later.” —Fred Brooks • “The seeds of major software disasters are usually sown within the first three months of commencing the software project.” —Capers Jones • “We spend a lot of time—the majority of project effort—not implementing or testing, but trying to decide what to build.” —Brian Lawrence
  • 14. Inception Task/ Initiating the Requirement Engineering Process 14 • During inception, the requirements engineer asks a set of questions to establish… – – – – A basic understanding of the problem The people who want a solution The nature of the solution that is desired The effectiveness of preliminary communication and collaboration between the customer and the developer • Through these questions, the requirements engineer needs to… – – – – Identify the customer Recognize multiple viewpoints Work toward collaboration Break the ice and initiate the communication
  • 15. The First Set of Questions • • • • Who is behind the request for this work? Who will use the solution? What will be the economic benefit of a successful solution? Is there another source for the solution that you need? These questions focus on the customer, other stakeholders, the overall goals, and the benefits 15
  • 16. The Next Set of Questions • • • How would you characterize "good" output that would be generated by a successful solution? What problem(s) will this solution address? Can you show me (or describe) the business environment in which the solution will be used? These questions enable the requirements engineer to gain a better understanding of the problem and allow the customer to voice his or her perceptions about a solution 16
  • 17. The Final Set of Questions • • • • • Are you the right person to answer these questions? Are your answers "official"? Are my questions relevant to the problem that you have? Am I asking too many questions? Can anyone else provide additional information? Should I be asking you anything else? These questions focus on the effectiveness of the communication activity itself 17
  • 19. 19 Elicitation/ Eliciting Requirements • Why is it so difficult to clearly understand what the customer wants? –Scope •The boundary of the system is ill-defined. •Customers/users specify unnecessary technical detail that may confuse rather than clarify objectives. –Understanding •Customers are not completely sure of what is needed. •Customers have a poor understanding of the capabilities and limitations of the computing environment. •Customers don’t have a full understanding of their problem domain. •Customers have trouble communicating needs to the system engineer. •Customers omit detail that is believed to be obvious. •Customers specify requirements that conflict with other requirements. •Customers specify requirements that are ambiguous or untestable. –Volatility •Requirements change over time.
  • 20. 20 Collaborative Requirements Gathering • Meetings are attended by all interested stakeholders. • Rules established for preparation and participation. • Agenda should be formal enough to cover all important points, but informal enough to encourage the free flow of ideas. • A facilitator controls the meeting. • A definition mechanism (blackboard, flip charts, etc.) is used. • During the meeting: –The problem is identified. –Elements of the solution are proposed. –Different approaches are negotiated. –A preliminary set of solution requirements are obtained. –The atmosphere is collaborative and non-threatening.
  • 21. Elicitation Task 21 • Eliciting requirements is difficult because of – Problems of scope in identifying the boundaries of the system or specifying too much technical detail rather than overall system objectives – Problems of understanding what is wanted, what the problem domain is, and what the computing environment can handle (Information that is believed to be "obvious" is often omitted) • Elicitation may be accomplished through two activities – – Collaborative requirements gathering Quality function deployment
  • 22. Basic Guidelines of Collaborative Requirements Gathering 22 • • • • • • Meetings are conducted and attended by both software engineers, customers, and other interested stakeholders Rules for preparation and participation are established An agenda is suggested that is formal enough to cover all important points but informal enough to encourage the free flow of ideas A "facilitator" (customer, developer, or outsider) controls the meeting A "definition mechanism" is used such as work sheets, flip charts, wall stickers, electronic bulletin board, chat room, or some other virtual forum The goal is to identify the problem, propose elements of the solution, negotiate different approaches, and specify a preliminary set of solution requirements
  • 23. 23 Quality Function Deployment • This is a technique that translates the needs of the customer into technical requirements for software • It emphasizes an understanding of what is valuable to the customer and then deploys these values throughout the engineering process through functions, information, and tasks • It identifies three types of requirements –Normal requirements: These requirements are the objectives and goals stated for a product or system during meetings with the customer –Expected requirements: These requirements are implicit to the product or system and may be so fundamental that the customer does not explicitly state them –Exciting requirements: These requirements are for features that go beyond the customer's expectations and prove to be very satisfying when present
  • 24. 24 Quality Function Deployment • Function deployment determines the “value” (to the customer) of each function required of the system. • Information deployment identifies data objects and events. • Task deployment examines the behavior of the system. • Value analysis determines the priority of requirements.
  • 25. Ref: Software Engineering: A Non-Functional Requirements (NFR) • NFRs are the quality, performance, and security attributes, general system constraints (e.g. max available RAM), or process requirements (e.g. IDE) • Generally apply to the whole system rather than any particular feature • Often not easy for stakeholders to articulate • There is an overemphasis on functionality of the software, yet the software may not be useful or usable without the necessary non-functional characteristics
  • 26.
  • 27. 27 Elicitation Work Products • A statement of need and feasibility • A bounded statement of scope for the system or product • A list of customers, users, and other stakeholders who participated in requirements elicitation • A description of the system's technical environment • A list of requirements (organized by function) and the domain constraints that apply to each • A set of preliminary usage scenarios (in the form of use cases) that provide insight into the use of the system or product under different operating conditions • Any prototypes developed to better define requirements The work products will vary depending on the system, but should include one or more of the following items
  • 28. 28 Example - CAMU • Normal Requirement: –Attendance update by Faculty –Attendance report for Faculty /Students • Expected Requirement: - Attendance lag report • Exciting Requirement: – Sending alert to Parents
  • 29. 29 Elicitation Work Products • Statement of need and feasibility. • Statement of scope. • List of participants in requirements elicitation. • Description of the system’s technical environment. • List of requirements and associated domain constraints. • List of usage scenarios. • Any prototypes developed to refine requirements.
  • 31. Elaboration Task 31 • • • During elaboration, the software engineer takes the information obtained during inception and elicitation and begins to expand and refine it Elaboration focuses on developing a refined technical model of software functions, features, and constraints The end result is an analysis model that defines the functional, informational, and behavioral domains of the problem
  • 32. 32 Elaboration Task • During elaboration, the software engineer takes the information obtained during inception and elicitation and begins to expand and refine it • Elaboration focuses on developing a refined technical model of software functions, features, and constraints • It is an analysis modeling task –Use cases are developed –Domain classes are identified along with their attributes and relationships –State machine diagrams are used to capture the life on an object • The end result is an analysis model that defines the functional, informational, and behavioral domains of the problem
  • 34. Negotiation Task 34 • • • • • During negotiation, the software engineer reconciles the conflicts between what the customer wants and what can be achieved given limited business resources Requirements are ranked (i.e., prioritized) by the customers, users, and other stakeholders Risks associated with each requirement are identified and analyzed Rough guesses of development effort are made and used to assess the impact of each requirement on project cost and delivery time Using an iterative approach, requirements are eliminated, combined and/or modified so that each party achieves some measure of satisfaction
  • 35. The Art of Negotiation 35 • • • • • • • Recognize that it is not competition Map out a strategy Listen actively Focus on the other party’s interests Don’t let it get personal Be creative Be ready to commit
  • 37. Specification Task 37 • • • • • A specification is the final work product produced by the requirements engineer It is normally in the form of a software requirements specification It serves as the foundation for subsequent software engineering activities It describes the function and performance of a computer-based system and the constraints that will govern its development It formalizes the informational, functional, and behavioral requirements of the proposed software in both a graphical and textual format
  • 39. Validation Task 39 • • During validation, the work products produced as a result of requirements engineering are assessed for quality The specification is examined to ensure that – – – all software requirements have been stated unambiguously inconsistencies and errors have been detected and corrected the work products conform to the standards established for the process, the project, and the product • The formal technical review serves as the primary requirements validation mechanism – Members include software engineers, customers, users, and other stakeholders
  • 41. Requirements Management Task 41 • • • • During requirements management, the project team performs a set of activities to identify, control, and track requirements and changes to the requirements at any time as the project proceeds Each requirement is assigned a unique identifier The requirements are then placed into one or more traceability tables These tables may be stored in a database that relate features, sources, dependencies, subsystems, and interfaces to the requirements
  • 44. Requirements Management Task 44 • Generic Traceability table
  • 45. 45 Use-Cases • A use-case scenario is a story about how someone or something external to the software (known as an actor) interacts with the system. • Each scenario answers the following questions: • Who is the primary actor, the secondary actor(s)? –What are the actor’s goals? –What preconditions should exist before the story begins? –What main tasks or functions are performed by the actor? –What exceptions might be considered as the story is described? –What variations in the actor’s interaction are possible? –What system information will the actor acquire, produce, or change? –Will the actor have to inform the system about changes in the external environment? –What information does the actor desire from the system? –Does the actor wish to be informed about unexpected changes?
  • 46. 46 Elements of the Analysis Model • Scenario-based elements –Use-case—How external actors interact with the system (use- case diagrams; detailed templates) –Functional—How software functions are processed in the system (flow charts; activity diagrams) • Class-based elements –The various system objects (obtained from scenarios) including their attributes and functions (class diagram) • Behavioral elements –How the system behaves in response to different events (state diagram) • Flow-oriented elements –How information is transformed as if flows through the system (data flow diagram)
  • 51. 51 Analysis Patterns Pattern name: Captures the essence of the pattern. Intent: What the pattern accomplishes or represents. Motivation: A scenario that illustrates how the pattern solves a problem. Forces and context: External issues (forces) that affect how the pattern is used, and external issues resolved when the pattern is applied. Solution: How the pattern is applied to solve the problem; emphasizes structural and behavioral issues. Consequences: What happens when the pattern is applied; what trade-offs exist during its application. Design: How the pattern can be achieved via known design patterns. Known uses: Examples of uses within actual systems. Related patterns: Patterns related to the named pattern because (1) they are commonly used with the named pattern; (2) they are structurally similar to the named pattern; (3) they are a variation of the named pattern.
  • 52. 52 Negotiating Requirements • Identify the key stakeholders –These are the people who will be involved in the negotiation • Determine each of the stakeholders “win conditions” –Win conditions are not always obvious • Negotiate –Work toward a set of requirements that lead to “win-win”
  • 53. 53 Validating Requirements • Is each requirement consistent with the objective of the system? • Have all requirements been specified at the proper level of abstraction? • Is the requirement really necessary? • Is each requirement bounded and unambiguous? • Does each requirement have attribution? • Do any requirements conflict with other requirements? • Is each requirement achievable in the system’s technical environment? • Is each requirement testable, once implemented? • Does the model reflect the system’s information, function and behavior? • Has the model been appropriately “partitioned”? • Have appropriate requirements patterns been used?
  • 54. 54 Example CRG Meeting • First CRG meeting of the SafeHome project. –After Q&A session (inception meeting), stakeholders write a two page product request, which is delivered to those attending the first CRG meeting. –Attendees are asked to make a rough list of objects, services, constraints, and performance criteria for the product. –At the meeting, a combined list is created in each topic. –Subgroups write mini-specifications for each list item. –Relevant features in mini-specifications are added to the list.
  • 55. 55 Example CRG Meeting • Our research indicates that the market for home management systems is growing at a rate of 40 percent per year. The first SafeHome function we bring to market should be the home security function. Most people are familiar with “alarm systems” so this would be an easy sell. • The home security function would protect against and/or recognize a variety of undesirable “situations” such as illegal entry, fire, flooding, carbon monoxide levels, and others. It’ll use our wireless sensors to detect each situation, can be programmed by the homeowner, and will automatically telephone a monitoring agency when a situation is detected.
  • 56. 56 Example CRG Meeting • Objects – control panel, smoke detectors, window and door sensors, motion detectors, an alarm, an event (sensor has been activated), a display, a PC, telephone numbers, a telephone call, … • Services – configuring the system, setting the alarm, monitoring the sensors, dialing the phone, programming the control panel, reading the display, … • Constraints – System must recognize when sensors are not operating, must be user friendly, must interface directly to a standard phone line, … • Performance criteria – Sensor event should be recognized within one second, an event priority scheme should be implemented, …
  • 57. 57 Example CRG Meeting • Mini-specification for Control Panel –The Control Panel is a wall-mounted unit that is approximately 9 x 5 inches in size. The control panel has wireless connectivity to sensors and a PC. User interaction occurs through a keypad containing 12 keys. A 2 x 2 inch LCD display provides user feedback. Software provides interactive prompts, echo, and similar functions.
  • 58. Quality Function Deployment 58 • • • This is a technique that translates the needs of the customer into technical requirements for software It emphasizes an understanding of what is valuable to the customer and then deploys these values throughout the engineering process through functions, information, and tasks It identifies two types of requirements – Normal requirements: These requirements are the objectives and goals stated for a product or system during meetings with the customer – Expected requirements: These requirements are implicit to the product or system and may be so fundamental that the customer does not explicitly state them
  • 59. These slides are designed to 59 Use-Cases • Scenarios that describe the threads of usage of a system • Each scenario is described from the point-of-view of an “actor”—a person or device that interacts with the software in some way • Each scenario answers the following questions: oWho is the primary actor, the secondary actor(s)? oWhat are the actor’s goals? oWhat preconditions should exist before the story begins? oWhat main tasks or functions are performed by the actor? oWhat extensions might be considered as the story is described? oWhat variations in the actor’s interaction are possible? oWhat system information will the actor acquire, produce, or change? oWill the actor have to inform the system about changes in the external environment? oWhat information does the actor desire from the system? oDoes the actor wish to be informed about unexpected changes?
  • 60. Actors • An actor is anything that communicates with the system and that is external to the system itself. Every actor has one or more goals when using the system • It is important to note that an actor and an end-user are not necessarily the same thing. A typical user may play a number of different roles when using a system • Primary actors interact to achieve required system function and derive the intended benefit from the system. They work directly with the system • Secondary actors support the system so that primary actors can do their work Ref: Software Engineering: A
  • 61. Use Case Example for Operating the SafeHome Control Panel Ref: Software Engineering: A
  • 62. Ref: Software Engineering: A 6. Scenario: Homeowner: observes control panel Homeowner: enters password Homeowner: selects “stay” or “away” Homeowner: observes read alarm light to indicate that SafeHome has been armed 1. Use case: InitiateMonitoring 2. Primary actor: Homeowner 3. Goal in context: To set the system to monitor sensors when the homeowner leaves the house or remains inside 4. Preconditions: System has been programmed for a password and to recognize various sensors 5. Trigger: The homeowner decides to “set” the system, that is, to turn on the alarm functions 7. Exceptions: Control panel is not ready: homeowner checks all sensors to determine which are open; closes them Password is incorrect (control panel beeps once): homeowner reenters correct password. Password not recognized: monitoring and response subsystem must be contacted to reset password Stay is selected: control panel beeps twice and a stay light is lit; perimeter sensors are activated Away is selected: control panel beeps three times and an away light is lit; all sensors are activated 8. Priority: Essential, must be implemented 9. When available: First increment 10. Frequency of use: Many times per day 11. Channel to actor: Via control panel interface 12. Secondary actors: Support technician, sensors 13. Channels to secondary actors: Support technician: phone line Sensors: hardwired and wireless interfaces 14. Open issues: 1. Should there be a way to activate the system without the use of a password or with an abbreviated password? 2. Should the control panel display additional text messages? 3. How much time does the homeowner have to enter the password from the time the first key is pressed? 4. Is there a way to deactivate the system before it actually activates?
  • 63. Use Case: InitialMonitoring (1) Ref: Software Engineering: A Use case: InitiateMonitoring Primary actor: Homeowner Goal in context: To set the system to monitor sensors when the homeowner leaves the house or remains inside Preconditions: System has been programmed for a password and to recognize various sensors Trigger: The homeowner decides to “set” the system, that is, to turn on the alarm functions
  • 64. Use Case: InitialMonitoring (2) Ref: Software Engineering: A Scenario: Homeowner: observes control panel Homeowner: enters password Homeowner: selects “stay” or “away” Homeowner: observes read alarm light to indicate that SafeHome has been armed
  • 65. Use Case: InitialMonitoring (3) Ref: Software Engineering: A Exceptions: Control panel is not ready: homeowner checks all sensors to determine which are open; closes them Password is incorrect (control panel beeps once): homeowner reenters correct password. Password not recognized: monitoring and response subsystem must be contacted to reset password Stay is selected: control panel beeps twice and a stay light is lit; perimeter sensors are activated Away is selected: control panel beeps three times and an away light is lit; all sensors are activated
  • 66. Use Case: InitialMonitoring (4) Ref: Software Engineering: A Priority: Essential, must be implemented When available: First increment Frequency of use: Many times per day Channel to actor: Via control panel interface Secondary actors: Support technician, sensors Channels to secondary actors: Support technician: phone line Sensors: hardwired and wireless interfaces
  • 67. Use Case: InitialMonitoring (5) Ref: Software Engineering: A Open issues: 1. Should there be a way to activate the system without the use of a password or with an abbreviated password? 2. Should the control panel display additional text messages? 3. How much time does the homeowner have to enter the password from the time the first key is pressed? 4. Is there a way to deactivate the system before it actually activates?
  • 68. These slides are designed to Use-Case Diagram for the SafeHome System Initial Monitoring
  • 69. These slides are designed to 69 Elements of the Analysis/Requirements Model 1. Scenario-based elements Use-case diagram and use-case descriptions 2. Class-based elements Class diagram 3. Behavioral elements State diagram
  • 70. These slides are designed to 70 Eliciting Requirements
  • 71. Class Diagram These slides are designed to 71 Sensor name/id type location area characteristics identify() enable() disable() reconfigure () For the SafeHome system …
  • 72. State Diagram These slides are designed to 72 Reading Commands System status = “ready” Display msg = “enter cmd” Display status = steady Entry/subsystems ready Do: poll user input panel Do: read user input Do: interpret user input State name State variables State activities
  • 73. Analysis/Requirements Patterns • Are classes/functions/behaviors that reoccur across many projects in a particular application domain • They speed up the development of the analysis model by providing reusable analysis models with examples and descriptions of advantages and limitations • The facilitate the transformation of analysis to design by suggesting related design pattern and reliable solutions to common problems
  • 74. These slides are designed to 74 Analysis/Requirements Patterns: Template Pattern name: A descriptor that captures the essence of the pattern Intent: Describes what the pattern accomplishes or represents Motivation: A scenario that illustrates how the pattern can be used to address the problem Forces and context: A description of external issues (forces) that can affect how the pattern is used and also the external issues that will be resolved when the pattern is applied Solution: A description of how the pattern is applied to solve the problem with an emphasis on structural and behavioral issues Consequences: Addresses what happens when the pattern is applied and what trade-offs exist during its application Design: Discusses how the analysis pattern can be achieved through the use of known design patterns Known uses: Examples of uses within actual systems Related patterns: Patterns that are commonly used with this pattern, or are structurally similar, or are a variation of this pattern
  • 75. Negotiating Requirements: Why? • Negotiate to balance customer’s functionality and performance requirements against available resources (time, people, budget, etc.) • Intent of negotiation is to agree upon a project plan that meets the needs of the customer while reflecting the real-world constraints of time, people, and budget • The best negotiation strives for a win-win result: –A majority of the customer’s needs are met –The developer gets to work to achievable deadlines within a
  • 76. These slides are designed to 76 Negotiating Requirements: How? 1. Identify the key stakeholders These are the people who will be involved in the negotiation 2. Determine each of the stakeholders “win conditions” Win conditions are not always obvious 3. Negotiate Work toward a set of requirements that lead to “win- win”
  • 77. Negotiating Requirements: Guidelines • It's not a competition • Map out a strategy • Listen actively • Focus on other party's interests • Don't let it get personal • Be creative • Be ready to commit
  • 78. These slides are designed to 78 Requirements Monitoring: Especially Needed in Incremental Development Requirements monitoring supports continuous validation by analyzing user goals against the system developed Distributed debugging – uncovers errors and determines their cause Run-time verification – determines whether software matches its specification Run-time validation – assesses whether evolving software meets user goals Business activity monitoring – evaluates whether a system satisfies business goals Evolution and co-design – provides information to stakeholders as the system evolves
  • 79. Validating Requirements - I • Is each requirement consistent with the overall objective for the system/product? • Have all requirements been specified at the proper level of abstraction? That is, do some requirements provide a level of technical detail that is inappropriate at this stage? • Is the requirement really necessary or does it represent an add-on feature that may not be essential to the objective of the system? These slides are designed to 79
  • 80. Validating Requirements - II • Is each requirement bounded and unambiguous? • Does each requirement have attribution? That is, is a source noted for each requirement? • Do any requirements conflict with other requirements? • Is each requirement achievable in the technical environment that will house the system or product? • Is each requirement testable, once implemented? These slides are designed to 80
  • 81. Validating Requirements - III • Does the requirements model properly reflect the information, function and behavior of the system to be built? • Has the requirements model been “partitioned” in a way that exposes progressively more detailed information about the system? • Have requirements patterns been used to simplify the requirements model? Have all patterns been properly validated? Are all patterns consistent with customer These slides are designed to 81
  • 82. Avoiding Common Mistakes Fearturitis describes the practice of trading functional coverage for overall system quality. Some engineers equate the number of functions delivered at the earliest possible time with the overall quality of the end product Flexibilitis happens when engineers overload the product with adaptation and configuration facilities. The result is a system that is unnecessarily complex, more difficult to test, and more challenging to manage Performitis occurs when developers become overly focused on system performance at the expense of quality attributes, e.g. maintainability, reliability, security Ref: Software Engineering: A