0% found this document useful (0 votes)
37 views52 pages

Lecture#2 - Requirement - Engineering For CSC131

This is a lecture of a course called csc131 at csus that contains information about software engineering fundamentals and principles.

Uploaded by

bilalabaloch
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
37 views52 pages

Lecture#2 - Requirement - Engineering For CSC131

This is a lecture of a course called csc131 at csus that contains information about software engineering fundamentals and principles.

Uploaded by

bilalabaloch
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 52

California State University,

Sacramento
Computer Science
Department

CSc 131 : Computer Software


Engineering
Fall 2023

Lecture #
2
Software Engineering, System
Engineering & Requirement
Engineering
System Engineering

• Before SW can be engineered, the system and


its environment must be understood.

• To accomplish this :
– Overall objectives of the system must be
determined.
– The role of HW, SW, people, procedures must
be identified.
– Operational requirements must be elicited,
analyzed, specified, modeled, validated, and
managed.
System Engineering – Two
Views
Business Process Engineering
– Focuses on utilizing IT effectively.

Product Engineering
– Focuses on converting the customer’s needs
into a working/functional product.
System Engineering

• Concentrate not only on the software but rather


on the system as a whole and its elements.

• SE occurs as a result of a process called system


engineering.
System Modeling

• Model the system


– Easier to assess the system.
– Easier to evaluate system components in
relationship to one another.

– More on system modeling later….


System Context Diagram
(SCD)
• It establishes the information boundary
between the system being implemented and
environment in which the system operate.

• It defines all external producers of information.

• It defines all external consumers of


information.
System Context Diagram
(SCD)
• The objective of the
system context diagram is
to focus attention on
external factors and
events that should be
considered in developing
a complete set of systems
requirements and
constraints.
• A system context diagram
represents all external
entities that may interact
with a system. Fig : 1[1]
Software Development Lifecycle (SDLC)

Phases:
• Requirement Engineering
• Design
• Implementation (Coding)
• Testing
• Deployment
• Maintenance
Software Development Lifecycle (SDLC)

Fig : 2[2]
Requirements Engineering

The outcome of the system engineering process is


the specification of computer-based system at the
different levels.
Requirements Engineering

• It focuses on assessing if the system is useful to the


business (feasibility study), discovering requirements
(elicitation and analysis), converting these
requirements into some standard format
(specification), and checking that the requirements
define the system that the customer wants (validation).
[3]

• In practice, requirements engineering isn’t sequential


process, it’s an iterative process in which activities are
interleaved.
Requirements Engineering
Process

Fig : 3[4]
Definitions

“A feature of the system or a description of


something the system is capable of doing in order
to fulfill the system’s purpose”

• A requirement is a property or behavior that


something must exhibit—it is something
demanded or necessary.

• A specification is a precise description of


something.

• A requirements specification is a precise


Requirement Types?

• Types of Requirements
• Business Need / Requirements
• System Req.:
• Functional requirements
• Non-functional requirements
• Domain requirements
• Inverse requirements

14
Functional vs. Non-Functional
Requirements

Functional requirements
Non-functional requirements
What the product must DO
What the product must BE
How a software product
function. The behavior that Properties that a software
maps inputs to outputs. product must have.

DO BE
exercise fit
s
Attributes of a Good Requirement
Statement

Complete – contains all information needed to


implement it.
Clear – no ambiguity, not possible for different
stakeholders to interpret differently.
Correct – is truthful and accurate. You don’t want the
implementation based on incorrect criteria.
Consistent – does not conflict with other
requirements.
Testable – will be possible to verify that the
Evaluate the Requirements
(Individually and as a
whole)
• The system shall be available in
both English and Korean.
• Each user of the system shall be
assigned a unique id upon account
creation. Complete
?
• The system shall store the full
Clear ?
name, age and date of birth for Correct ?
each user. Consisten
• The system shall be able to t?

generate a report listing every Testable?

user’s id, full name and age.


• All reports generated by the system
Many NFRs

Usability Security Efficiency Flexibility Recoverability

Maintainability Reliability Integrity Portability

Testability Interoperability Reusability


Functional Requirements
vs. NFRs

Functional Non-functional

System must accept cash System must be fast


deposits
System must be secure
System must accept check
System must be reliable
deposits
System must be easy to
System must accept PIN
maintain
System must verify PIN
DO BEeasy to use
System must be
System must allow cash
withdrawals
Domain Requirements

• Domain requirements reflect the environment in


which the system operates in –

• Domain requirements are important because


they often reflect fundamentals of the application
domain.
Inverse Requirements

Inverse Requirements is about “ what the


system shall not do.”

Example: The system shall not use red color in the


user interface, whenever it is asking for inputs from
the end-user.
Requirements According to
Whom?

A product stakeholder is anyone affected by a


product or its development.
Marketers Customers Regulators

Developers Competitors Clients User


s
Requirements According to
Whom?

Stakeholders have a major say in the requirements


for a product
But keep in mind ..
– Conflicting desires and ideas.
– Incomplete and incorrect.
– Too abstract.
• Distinguish between stakeholder needs and
requirements.
– Stakeholder needs are features or properties
that stakeholders desire in a product
– Requirements are product features or
properties agreed by all.
SDLC – Requirement Engineering

Verify &
Requirements Design Implementation /
Engineering Validate (test)
Code

Maintenance Deployment
Requirements Engineering

Requirements engineering process can be


described in seven steps:

– Inception
– Requirement Elicitation
– Requirement Elaboration
– Requirement Analysis & Negotiation
– Requirement Specification
– Requirement Validation
– Requirement Management
Requirements Elicitation

Why requirement elicitation is difficult?

– Problem of scope
• The boundary of the system is ill-defined
– Problem of understanding
• Customers are not sure of what is needed
– Problem of volatility
• Requirements change over time.
Requirements Elicitation

• Techniques
– Interview / Meeting
– Survey / Questionnaire
– Observations
– Temporary Assignment
– Business Plans
– Review Internal / External Documents
– Review Software
Requirements Elicitation
Techniques

Interviews Prototypes

Observation Document studies


Focus groups
Competitive product studies
Workshops (brainstorming)

Waterfall/Traditional Models
Elicitation is done up-front to create the complete
Requirements Specification.
Agile Models
Needs are elicited continuously during
development.
Elaboration

• The information obtained in the elicitation step is


expanded and refined.

• Develop a refined model.


Requirements Analysis &
Negotiation

• Once requirements have been gathered then ..

• Categorize requirements.
• Organize requirements into related subsets.
• Establish requirements relationships.
• Examine requirements consistency.
• Rank requirements based on the need of
customers.
Requirements Analysis

Requirements Analysis is the process of defining


the expectations of the users for an application that
is to be built or modified.

It involves all the tasks that are conducted to


identify the needs of different stakeholders.

It is to analyze, document, validate and manage


software or system requirements.[
Requirements Specifi cation

• System Specification is the final product of


system and requirements engineering.
– It serves as the foundation for HW, SW
engineering.
– It describes the function and performance
of a system/product and its constraints.
Requirements
Specifi cation…
• A specification can be:

– A written document
– A graphical model
– A formal mathematical model
– A prototype
– Any combination of the above …
Requirements Specifications

Write complete, simple sentences in the active


voice.
Define terms clearly and use them consistently.
Use the same words for the same thing—avoid
synonyms.
Group related material into sections.
Use tables, lists, indentation, white space, and
other formatting aids to present and organize
Requirements Specifications

Express all specifications using the words


“must” or “shall.”
Should be testable or verifiable.
Should be easy to understand and to change
(during this phase).
Each specification should state only a single
need or requirement – Atomic.
Each one should have a unique identifier.
Even when done carefully, specifications may
still be vague, ambiguous, or hard to
understand.
Specifications Example

Nonfunctional Requirements by Type


1. The product must be accessible as a WWW page.
1.1. The main file for the product must be written in HTML. (S1,
S2, S3, S4, S5, S6, S7, S8)
1.2. The form/presentation of the user interface must be written in
CSS.
1.3. The algorithms required by the product must be written in
Javascript.

Functional Requirements by Type


1. Startup Requirements
1.1. Startup Study Guide Requirements
1.1.1. The product must be able to start without a study
guide.
1.1.2. The product must be able to open a particular study
guide at startup. (U3)
1.1.2.1. It must be possible to identify the guide in the
URL of the main file.
1.2 It must be possible to include start-up option in the URL of the
main file.
SRS Document

SRS is a document that describes what the


software will do and details its functionality - to
fulfill all stakeholders’ business needs.
SRS – Structure

• A typical SRS often includes:

– Software purpose
– Software functions and description
– Software specific requirements
– Software assumptions and constraints
– User characteristics
Why SRS Document

• SRS establishes the basis for the entire project.

• SRS ensures requirements are discovered,


captured and ultimately delivered
SRS vs. Sys_Rs
Software Requirements Specification vs. System Requirements Specification

• SRS provides in-depth descriptions of the


software to be built
• Sys_RS captures needed information for the
overall system requirements.
• SRS provides much detail than a system
requirements specification.
Requirements Validation

Why requirements validation?

• To Ensure the following:


– All system requirements have been stated
clearly.
– Inconsistencies, errors, omissions have been
detected and corrected.
– Product conforms to the standards.

• Mainly done by Formal Technical Review


Team.
Verifying and Validating Requirements

The high cost of “getting it wrong” means


we should test the requirements.

Verification means Are we building the product


right?
Validation means Are we building the right
product?
Test the requirement for “goodness” (clear,
concise, complete, etc.)
Main technique – reviews
Keep in mind any assumptions. They may not
be shared amongst stakeholders.
Requirements
Management

It is a set of activities that support the project team


to:
– Identify, control, and track requirements and
changes to requirements at any time.

• Why requirement management??


– Because requirements change…
Requirements Review?

– Are the requirements complete?


– Are the requirements concise?
– Are the requirements correct?
– Are the requirements consistent?
– Are the requirements modular?
– Can they accommodate change?
– Are the requirements realistic?
– Are the requirements needed by the
customer?
– Are the requirements traceable?
Requirements Engineering
in Agile

Fig : 5[9]
Requirements Engineering
in Agile
How it is done
Engineers work with the customers and end-
users to find out the application domain,
services that system should provide, the
required performance of the system, and so on.
[8]

Requirements are:
• Categorized and organized into related
subsets,
• Consistency of the requirements is checked
• Requirements are prioritized
• User stories are written and acceptance criteria
Requirements Engineering
in Agile
PO Role
Product Owner (PO) is the key in this phase

“voice of the customer” throughout the cycle.

The PO must constantly monitor the Product


Backlog and be able to identify this scenario and
act in consequence.
Requirements Engineering
in Agile
Scrum Master Role

Scrum Master supports the PO to maintain the


Product Backlog in a way that ensures that the
needed work is well understood…

Ensures process is followed and removes blocker


and impediments
Requirements Engineering
in Agile
Team Development Role
Development Team focus is to fully understand
and flesh out each potential item from the Product
Backlog.

Take on the role of analyst to understand scope and


expectations ..
Requirements Engineering
in Agile
• Advantages and benefits working with agile model

 Customer satisfaction by rapid, continuous delivery of


useful software.
 People and interactions are emphasized rather than
process and tools. Customers, developers and testers
constantly interact with each other.
 Working software is delivered frequently (weeks rather
than months).
 Continuous attention to technical excellence and good
design.
References

1. https://online.visual-paradigm.com/knowledge/system-context-diagram/wh
at-is-system-context-diagram/
2. https://bigwater.consulting/2019/04/08/software-development-life-cycle-sd
lc/
3. https://medium.com/omarelgabrys-blog/requirements-engineering-introdu
ction-part-1-6d49001526d3
4. https://www.javatpoint.com/software-engineering-requirement-engineerin
g
5. https://ifs.host.cs.st-andrews.ac.uk/Books/SE9/Web/Requirements/Domain
Req.html
6. https://reqtest.com/requirements-blog/requirements-analysis/
7. https://www.dataart.com/blog/an-introduction-to-agile-requirements-
engineering#:~:text=Requirements%20Engineering%20(RE)%20can
%20be,is%20building%20the%20right%20product.&text=Verification
%20%26%20Validation%2C%20which%20checks%20the,in
%20accordance%20with%20scope%20control.
8. http://jultika.oulu.fi/files/nbnfioulu-201705091721.pdf
9. https://www.wearemarketing.com/blog/what-is-the-agile-methodology-and-
what-benefits-does-it-have-for-your-company.html
Questions ..?

Next topic: Requirement


Engineering & Analysis
Modeling

You might also like