Requirements Engineering in Software Development
Requirements Engineering in Software Development
Problem of scope: The customer give the unnecessary technical detail rather than clarity of the
overall system objective.
Problem of volatility: In this problem, the requirements change from time to time and it is
difficult while developing the project.
There are a number of requirements elicitation
methods. Few of them are listed below –
• Interviews: Objective of conducting an interview is to understand the customer’s
expectations from the software.
• Brainstorming Sessions: It is a group technique intended to generate lots of new
ideas providing a platform to share views
• Facilitated Application Specification Technique (FAST):It’s objective is to bridge the
expectation gap – difference between what the developers think they are supposed
to build and what customers think they are going to get.
• Quality Function Deployment (QFD):translate the customer need into the technical
requirement for the software
• Use Case Approach: defining a list of actions or event steps or interactions between a
role (known in the Unified Modelling Language as an actor) and a system, to achieve
a goal.
Eliciting requirement steps are as follows:
1. Collaborative requirements gathering: Gathering the requirements by conducting the
meetings between developer and customer.The main motive is to identify the problem,
give the solutions for the elements, negotiate the different approaches and specify the
primary set of solution requirements in an environment which is valuable for achieving
goal.
2. Quality Function Deployment (QFD): In this technique, translate the customer need into
the technical requirement for the software.QFD system designs a software according to
the demands of the customer.
QFD consist of three types of requirement:
Normal requirements:The objective and goal are stated for the system through the
meetings with the customer.
For the customer satisfaction these requirements should be there.
Expected requirement:These requirements are implicit.These are the basic
requirement that not be clearly told by the customer, but also the customer
expect that requirement.
Exciting requirements:These features are beyond the expectation of the
customer.The developer adds some additional features or unexpected
feature into the software to make the customer more satisfied.
3. Usage scenarios:Till the software team does not understand how the
features and function are used by the end users it is difficult to move
technical activities.To achieve above problem the software team produces a
set of structure that identify the usage for the software.
• This structure is called as 'Use Cases'.
4. Elicitation work product: The work product is created as a result of
requirement elicitation. It depends on the size of the system or product
to be built.
• The work product consists of feasibility statement and scope of the
system.
• It also consists of a list of users participate in the requirement
elicitation.
Developing use cases
• In software and systems engineering, a use case is a list of actions or
event steps, typically defining the interactions between a role (known
in the Unified Modelling Language as an actor) and a system, to
achieve a goal.
• The actor can be a human, an external system, or time.
• Another way to look at it is a use case describes a way in which a real-
world actor interacts with the system.
• System use cases can be written in both an informal manner and a
formal manner.
• A use case is a term that describes how a user uses a system to
accomplish a particular goal.
• Use cases define interactions between external actors and the system
to attain particular goals.
• There are three basic elements that make up a use case:
1. Actors: Actors are the type of users that interact with the system.
2. System: Use cases capture functional requirements that specify the
intended behaviour of the system.
3. Goals: Use cases are typically initiated by a user to fulfil goals
describing the activities and variants involved in attaining the goal.
Advantages of use case
• The list of goal names provides the shortest summary of what the
system will offer
• It gives an overview of the roles of each and every component in the
system. It will help us in defining the role of users, administrators etc.
• It helps us in extensively defining the user’s need and exploring it as
to how it will work.
• It provides solutions and answers to many questions that might pop
up if we start a project unplanned.
Planning a use case
• Use Case: What is the main objective of this use case. For eg. Adding a
software component, adding certain functionality etc.
• Primary Actor: Who will have the access to this use case. In the above
examples, administrators will have the access.
• Scope: Scope of the use case
• Level: At what level the implementation of the use case be.
• Flow: What will be the flow of the functionality that needs to be there.
More precisely, the work flow of the use case.
• Some other things that can be included in the use cases are:
• Preconditions
• Postconditions
• Brief course of action
• Time Period
The steps in designing use cases
• Eliciting requirements
• Analyzing requirements
• Requirements modeling
• Review and retrospective
1- Eliciting requirements
• The process of gathering requirements by communicating with the
customers is known as eliciting requirements.
2- Analyzing requirements
• This step helps to determine the quality of the requirements. It
involves identifying whether the requirements are unclear,
incomplete, ambiguous, and contradictory. These issues resolved
before moving to the next step.
3- Requirements modeling
• In Requirements modeling, the requirements are usually documented
in different formats such as use cases, user stories, natural-language
documents, or process specification.
6- Gantt Charts
• Gantt charts used in project planning as they provide a visual representation of tasks that
are scheduled along with the timelines. The Gantt charts help to know what is scheduled
to be completed by which date. The start and end dates of all the tasks in the project can
be seen in a single view.
7- IDEF (Integrated Definition for Function Modeling)
• Integrated definition for function modeling (IDEFM) technique represents the
functions of a process and their relationships to child and parent systems with the
help of a box. It provides a blueprint to gain an understanding of an organization’s
system.
8- Gap Analysis
• Gap analysis is a technique which helps to analyze the gaps in performance of a
software application to determine whether the business requirements are met or
not. It also involves the steps that are to be taken to ensure that all the business
requirements are met successfully. Gap denotes the difference between the
present state and the target state. Gap analysis is also known as need analysis,
need assessment or need-gap analysis.
Requirement modelling strategies
• Attributes
• Please visit the link: https://slideplayer.com/slide/2477580/ for
further notes on requirement modelling strategies.