0% found this document useful (0 votes)
35 views

Software Engineering Chapter 4

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

Software Engineering Chapter 4

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

Software Engineering

Chapter 4: Requirement Engineering &


Requirement Engineering Task
Contents:
• 1. What is Requirement Engineering?

• 2. Users VS System Requirements

• 3. Tools for Requirement Engineering

• 4. Establishing Ground Work

• 5. Inception Task

• 6. Problem Identification in Inception

• 7. Task in Requirement Engineering

• 8. Detailed Discussion
What is Requirement Engineering?
• The process to gather the software requirements from customers, analyze and document
them is known as requirement engineering.

• Requirement Engineering provides the appropriate mechanism to understand


 Customer desires/wishes,

 Analyzing customer need

 Assessing feasibility

 Negotiating a reasonable solution

 Specifying the solution clearly

 Validating the specifications and managing the requirements

They are transformed into a working system


User VS System Requirements

User Requirements System Requirements


Written for customers Written for Implementation
In Natural language In Technical language
Describe the service & features provide by Describe the detail description of services,
system feature & complete operations of system.
May include diagrams & tables. May include system models.
Understandable by system users who don’t Understandable by implementation team
have technical knowledge. who have technical knowledge.
For Client Managers, System Users, For system Architects, Software Developers,
Contractor Managers, System Architects Client Engineers, system Users
Tools in Requirement Engineering
• 1. Observation report

• 2. Questionnaire ( Survey, Poll)

• 3. Use Cases

• 4. User stories

• 5. Requirement workshop Available Softwares:

• 6. Mind mapping 1. Xebrio – Requirements Management Software


2. Jira for requirements engineering
• 7. Role playing 3. Doc sheets
4. Requirements Hub
• 8. Prototyping 5. IBM Engineering Requirements Management DOORS
6. Modern Requirements
7. SpiraTeam
Establishing Ground Work
• 1. Identifying the stakeholders

• Any person who benefits directly or indirectly from the system being developed is a
stakeholder.
• Ex: Business operations managers, product managers, marketing people, internal and external
customers, end-users, consultants, product engineers, software engineers, developers, testers and
support/maintenance engineers are the usual stakeholders.

• Each stakeholder sees the system differently, gains different benefits when the system is successfully
developed.

• They also faces different risks if the development effort fails.


Establishing Ground Work
• 2. Recognizing Multiple Viewpoints:

• Because there are so many different stakeholders, the system’s requirements will be
examined from various perspectives.

• Each of these stakeholders will contribute data to the requirements engineering process.

• As information is gathered from multiple viewpoints, collecting requirements may be


inconsistent or contradictory.

• You should categories all stakeholder information so that decision-makers can select an
consistent set of requirements systems for the system.
Establishing Ground Work
• 3. Working towards collaboration

• If there are five stakeholders involved in a software project, there may be five different
opinions on the set of requirements.

• Customers must work together with software development team to create a successful
system.

• A requirements engineer’s job is to identify areas of commonality requiement as well as


areas of conflict requirements.

• At the end project head & requirement engineer may decide on which requirements are
accepted.
Establishing Ground Work
• 4. Asking the first questions: (For identifying stakeholders)

• The first set of questions are focuses on the customer, stakeholders as well as the overall
project goals and benefits.

 1. Who is the person or organization behind the request for this work?
 2. Who will make use of the solution?
 3. What is the economic value of successful solution?
 4. Is there a different source for the solution you require?
Establishing Ground Work
• 4. Asking the first questions: (Understanding Problems & Solutions)

• Following set of questions helps in gaining a better understanding of the problem and allows
the customer to express his or her thoughts on a solution:

 1. How would you charaterize “good” output produced by a successful solution?


 2. To what problem(s) will this solution be applied?
 3. Can you describe (or show me) the business environment in which the solution will be
used?
 4. Will there be any special performance issues or constraints that will influence how the
solution is approached?
Functional VS Non Functional Requirements
 Definition: A requirement is a condition needed by a user to solve a problem
or achieve an objective.

• Requirement should be clear, correct and well-defined.

 Types of Requirements:

There are two types of requirements:

• Functional Requirements

• Non Functional Requirements


Difference between Functional and Non functional Requirements
Functional Requirements Non Functional Requirements
Help to understand the functions of the Help to understand the system’s
system performance.

Mandatory requirements Not mandatory requirements

They are easy to define They are hard to define

It concentrates on the user’s requirement. It concentrates on the expectation of the


user.

These requirements are specified by the These requirements are specified by the
user. software developers, architects and
technical persons.

Describe what the product does Describes how the product works

There is functional testing such as API There is non-functional testing such as


testing, system, integration, etc. usability, performance, stress, security etc.

First completion of functional requirements While system will not work only with non-
allows the system to perform non- functional requirements.
functional requirements.
Examples
 Examples of Functional Requirements:

1. In hospital management system, a doctor should be able to retrieve the information of his patients.

2. Search option given to user to search from various invoices.

3. User should be able to mail any report to management

4. Only managerial level employees have the right to view banking revenue data.

 Examples of Non Functional Requirements:

1. Security, Logging, Storage, Configuration, Performance, Cost, Interoperability, Flexibility, Disaster recovery,
Accessibility.

2. Employees never allowed to update their salary information. Reported to the administrator.

3. A website should be capable enough to handle 20 million users with affecting its performance.

4. The software should be portable. Moving from on OS to other OS does not create any issue.
Requirement Engineering Tasks:
Inception Task:

• Purpose – Gathers basic details about the project, such as goals, future,
and key stakeholders.

• Stakeholders Identification – Identifies all types of people involved of the


project (customers, orgs, developers, testers, etc.)

• Communication – Establishes strong communication and bonding between


customers and developers.
Problem Identification in Inception

Problem of Scope Problem of Problem of Changing


Understanding Requirements
Unnecessary technical Misunderstanding Continuous changes in
details or unfeasible between customer and requirements leading
ideas from customer developer due to to wastage of resources
unclear requirements and time.
Task in Requirement Engineering
Task in Requirement Engineering
• 1. Inception task – Basic understanding and details about the project.

• 2. Elicitation – Clearing and gathering detailed requirements.

• 3. Elaboration – Developing rough models or prototypes based on collected requirements.

• 4. Negotiation – Settlements and conflict resolutions regarding project deliver, cost, and resource
availability.

• 5. Specification – Detailed documentation and diagrams understandable by both developers and


customers.

• 6. Validation – Checking if the requirements are correctly documented and if there are any
missing requirements.

• 7. Requirement Management – Managing changing requirements, identifying, controlling ang


tracking them.
Detailed Discussion
• 1. Inception – Details understanding and stakeholder identification.

• 2. Elaboration – Rough modelling and prototyping.

• 4. Negotiation – Negotiating project cost, delivery time, and available resources.

• 5. Specification – Creating source documents with detailed diagrams and data dictionaries.

• 6. Validation – Ensuring the final product meets customer requirements.

• 7. Requirement Management – Handling changes in requirements and maintaining project


quality.
Chapter Assignment:
• 1. Explain the importance of Requirement Engineering.

• 2. How to establish ground work in Requirement Engineering?

You might also like