Module 4-1 - Req Eng Overview
Module 4-1 - Req Eng Overview
1
Understanding Requirements: An Overview
This topic is an overview of Requirements Engineering (RE), and RE is the initial part of huge area in
SE – Analysis, Design & Modeling/Testing/Prototyping/Simulation.
CS&IS Dept. has the Requirements Engineering course (with a lot of details on RE including partially
UML language) for both undergrad and graduate students is available at the CS&IS curriculum.
RE helps software engineers better UNDERSTAND customer needs, desires, requirements and
the problems they are trying to solve.
*) Building an elegant computer/software solution that ignores the customer’s
needs helps no one.
It is very important to understand the customer’s wants and needs before you begin designing or
building a computer-based software solution.
*) Example: in Best Buy
The intent of RE is to produce a written formal understanding of the customer’s problem using
prof. language of diagrams (not just in plain text form). Several outcomes might be used to
communicate this understanding, including:
- list of main users/actors,
- list of main functions and features,
- Use-Case scenarios (Use Case Diagrams, Activity Diagrams, SwimLane Diagrams, etc.),
- Data Objects (DOs) diagrams and Class Objects (COs) Diagrams,
- Data Flow Diagrams (DFDs), incl. Context DFD, Level-0 DFD, Level-1 DFDs, etc.,
- State Transition Diagrams (STDs),
- Entity-Relationships Diagrams (ERDs),
and many other possible Analysis Models. 2
System Requirements Eng.: Analysis Model as a Bridge
System
Description
(by a customer)
List of system
specifications (SE
Diagrams that system
engineers and code
system
developers
description
understand)
analysis
model
design
model
Lists of requirements
to the system (that SW system
customer still development by
understands) code developers in
accordance with
SE Diagrams
3
IEEE Standard 729What is a Requirement in System Engineering?
Source: https://www.geeksforgeeks.org/software-engineering-classification-of-software-requirements 4
Requirements Engineering: 6 Majors Steps (a summary)
4. Data-flow models
3. Behavioral models (WHARE main data and
(HOW system must react control flows between
to legal inputs from main components in the system) :
groups of legal Users: - data-flow diagrams;
- state transition diagrams; - ERD diagrams;
- sequence diagrams. - control-flow diagrams;
- processing narratives;
7
Understanding Requirements
Additional information
8
Step 1: Inception (initiating RE process)
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
Identify stakeholders (who are interested in such an application) and their viewpoints
Questions of type A: Focus on customer, stakeholders, overall goals, and benefits of the system
Who is behind the request for work?
Who will use the solution?
What will be the economic benefit of a successful solution?
Is there another source for the solution needed?
Questions of type B: Understand the problem and the customer’s perceptions of the solution
How would you characterize good output form a successful solution?
What problem(s) will this solution address?
Can you describe the business environment in which the solution will be used?
Will special performance constraints affect the way the solution os approached?
Questions of type C: Focus on communication effectiveness
Are you the best person to give “official” answers to these questions?
Are my questions relevant to your problem?
Am I asking too many questions?
Can anyone else provide additional information?
Should I be asking you anything else?
9
Step 2: Eliciting (Drafting of) Requirements
The goal is
to identify the problem
“Definition mechanism” (e.g. work sheets, stickers, flip sheets, electronic bulletin
board) used to determine (estimate) group consensus
10
Step 2: Elicitation of Requirements:
An Algorithm (Sequence of Actions) using Activity Diagram in UML
Conduct FA ST
m eet ings
Make list s of
f unc t ions , classes
Make list s of
const raint s, et c.
draw us e-cas e
writ e scenario
diagram
11
Step 2: Elicitation Work Products -- The Outcomes
12
Step 3: Elaboration (building an analysis model)
Analysis Modeling uses a combination of text and diagrammic forms to depict requirements
for
1) data,
2) functions, and
3) behavior
in a way that is relatively easy to understand, and, moreover, straightforward to review for
correctness, completeness, and consistency.
13
Step 3: Main Components of the SW Analysis Model
Analysis Model
2. Class models:
1. Scenario-based models: - class diagrams;
- use-cases – textual; - analysis packages;
- use-cases – diagrams; - collaboration diagrams.
- activity diagrams;
- swim lane diagrams;
4. Data-flow models:
3. Behavioral models: - data-flow diagrams;
- state transition diagrams; - ERD diagrams;
- sequence diagrams. - control-flow diagrams;
- processing narratives;
14
Step 4: Negotiation with the Customer
(inform about your current understanding of a problem and
ask additional questions if needed)
Intent is to develop a project plan that meets stakeholder needs and real-world
constraints (time, budget, people) placed on the software team
Negotiation activities
Identification of system key stakeholders
Determination of stakeholders’ “win conditions”
Negotiate to reconcile stakeholders’ win conditions into “win-win” result for all
stakeholders (including developers)
15
Step 5: Problem Specification
etc.
16
Step 6: Validating Requirements (1/2)
SE must be sure that engineered (designed and developed) requirements will provide QUALITY –
i.e. they will provide clear, precise and concise information/data for the Software Development
team, including the following:
GOAL. Is each requirement consistent with the overall objective for the system/product?
LEVEL OF DETAILS. 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?
SOURCES FOR EACH REQ. Does each requirement have attribution? That is, is a source
(generally, a specific individual) noted for each requirement?
17
Step 6: Validating Requirements (2/2)
ACHIEVABLE REQ. Is each requirement achievable in the technical environment that will house
the system or product?
CORRECTNESS OF REQ. Does the requirements model properly reflect the information, function
and behavior of the system to be built.
PARTITIONING OF REQ. Has the requirements model been “partitioned” in a way that exposes
progressively more detailed information about the system.
SIMPLICITY OF REQ. Have requirements patterns been used to simplify the requirements model.
Have all patterns been properly validated? Are all patterns consistent with customer requirements?
18