You are on page 1of 18

Requirement Engineering, Importance,

Quality measurements

Engr. Syed Muhammad Ali Imran


Lecture 5 & 6
Department Of CS&IT, Superior University Sargodha Campus
Introduction - Requirement Engineering
Requirement engineering is a process that is performed in the initial stages of any
software development. It includes analyzing the customer’s requirement and
various tasks such as:
What is Requirement Engineering?
Requirement engineering is the process of collecting, validating and managing
the requirements essential for the development of the software, specified by the
clients or the end-users. This task is performed at the initial stages of software
development.

The requirement engineering process involves a team of software developers or


engineers, business analysts, customers and end-users. Requirement engineering
provides the basic idea to the software developer of what the client or the end-
user wants the software to do.
What is Requirement Engineering? - I
•At first, identify the user’s requirement, what does it want the operational system
to perform?
•Analyze the requirements gathered from the customer.
•Evaluate the feasibility of the operational system.
•Propose some unambiguous solutions.
•Validate the requirement provided by the customer.
•Manage the requirements as far as they are modelled into an operational system.
Importance of Requirement
Engineering
Requirement engineering is an important stage in any software development. It is
also believed if the requirement engineering is done appropriately then we can
expect that the final software developed doesn’t lag behind in terms of design or
functionality leading to successful and profitable software.
Importance of Requirement
Engineering - I
➢It provides a vision of the final software, i.e., what would it do? This creates a
sense of mutual understanding between the customer and the software
developer.

➢It helps in defining the scope of the software i.e. what will be the
functionalities of the final software.

➢It helps in perceiving the cost of the final software.

➢It also helps in perceiving the schedule up to which the software will be
delivered to the customer.
Quality Measurements
The requirements collected from the customer must be precise and must convey
the customer’s need to the software developer. Quality requirements possess the
following features:

•Complete: The specified requirements must be complete, there must be nothing


missing that is important for the development of the software.

•Consistent: If the software requirements are provided by more than one


customer. Then the software engineer must ensure that the requirements provided
by an individual must not contradict the requirements provided by another
customer.
Quality Measurements - I
•Unambiguous: Each specified requirement must be unambiguous i.e. it must
specify a single meaning.

•Functions: The requirement must specify what functions or computations must


the software perform and not how they must be implemented.

•Concise: Each requirement must be specified only once and there should not be
duplication of any requirement statement.

•Minimum: The specified requirements must not carry unnecessary details.


Quality Measurements -II
•Understandable: The specified requirements must be understandable by both
customer and software developer.

•Achievable: The requirement must be technically feasible.

•Testable: It can be verified that the requirements are collected completely.


Assignment SRE#1
▪ Requirements Elicitation
▪ Steps of Requirements elicitation
▪ Problems During Elicitation Techniques
▪ Dealing with Customers: Elicitation Techniques, Specific Elicitation

▪ Knowledge Acquisition
▪ Knowledge Acquisition Techniques
▪ Techniques Including the Interviewing, Scenarios, Prototyping and
▪ Participant Observation

(Deadline: Monday, Oct 02, 2023)


Traditional RE & Agile RE
- Traditional approach – the requirements document
- Agile argument against tradition
➢ Communication gaps between authors and readers
➢ The change cycle is too long
➢ Challenging to capture the complete problem and system context
➢ Brain’s capacity to retain information

Agile answer:
➢ Continuous collaboration with stakeholders
➢ Workshops, conversation
➢ Stories record conversations

Are they the requirements?


Agile Requirements
Why do it?
➢ Answer basic business questions
➢ Reduce business risk – everyone agrees on the problem and solution scope up front
➢ Establishes a knowledge framework to move ahead on architecture and project
planning

What modeling techniques?


➢Usage – use cases, scenarios
➢Use case diagram for context
➢Business domain model – process flow, key data entities, business rules
➢User experience – story boards, prototypes.
Is Agility in Conflict with Architecture
Design?
Software Architecture and Agility
❑ Agility is not in conflict with architecture.
❑ The question is not “Should I do Agile or architecture?”
Rather ….
➢ “How much architecture is done up front versus?”
➢ “How much is deferred until project requirements are more stable?”
➢ “How much of the architecture should I formally document, and when?”
❑A good architecture enables agility!
Agility and Architecture Evaluation
and Documentation
Documentation
➢Write for the reader!
➢If the reader doesn’t need it, don’t write it.
➢But the reader may be a maintainer or other newcomer not yet on the project!
Evaluation
➢Meeting stakeholder important concerns is a fundamental agile objective
➢Focus on meeting the most important QA scenarios
➢Tailor a lightweight process
Abstract Architecture
Specification
Documentation

Updated to support
each incremental
release (i.e., a “sprint”)

You might also like