Sie sind auf Seite 1von 14

Software Requirement Engineering

Lecture - 1
Engineering & Requirement

Engineering: A field in which a complex problem is converted into a


simple problem using design, building and structures etc. ”
“ The action of working artfully to bring something about. ”

Example: We want to build a house which is a complex problem in


real but it can be solved by dividing into smaller pieces. Similar is the
case for a car and plane.

Requirement: “A Requirement is a condition/capability needed by a


user to solve a problem or achieve an objective or passed to a system
for satisfying some operation.”
Software Requirement Engineering

Software Requirements: The software requirements are description of


features and functionalities of the target system. Requirements convey
the expectations of users from the software product. The requirements
can be obvious or hidden, known or unknown, expected or unexpected
from client’s point of view.

Software Requirement Engineering: Requirement Engineering is a


mechanism for understanding what customer wants, analyzing needs,
assessing flexibility, negotiating a reasonable solution, specifying
solution and unambiguous statements, validating the specification and
managing requirements as they are transferred into operational system.”
The goal of requirement engineering is to develop and maintain
sophisticated and descriptive “System Requirements Specification (SRS)”
document.
Software Requirement Engineering

SRE is one of the critical stages of the software processes as errors at


this stage will reflect later on the next stages, which definitely will
cause you a higher costs.
At the end of this stage, a requirements document (SRS) that specifies
the requirements will be produced and validated with the stockholders.

Software Requirement Engineering Process:


It is a four step process, which includes
• Feasibility Study
• Requirement Elicitation and Analysis
• Software Requirement Specification
• Software Requirement Validation
Software Requirement Engineering Process
Feasibility Study

• In feasibility study, an estimate is made of whether the identified


requirements can be achieved using the current software and hardware
technologies, under the current budget, etc. The feasibility study should be
cheap and quick; it should inform the decision of whether or not to go
ahead with the project.

• This feasibility study is focused on the software implementation,


contribution of project to organization, cost constraints and as per values
and objectives of the organization. It explores technical aspects of the
project and product such as usability, maintainability, productivity and
integration ability.

• The output of this phase should be a feasibility study report that should
contain adequate comments and recommendations for management about
whether or not the project should be undertaken.
Requirement Elicitation and Analysis

Requirement elicitation process can be depicted using the following:

• Requirements gathering - The developers discuss with the client and end
users and know their expectations from the software.
• Organizing Requirements - The developers prioritize and arrange the
requirements in order of importance, urgency and convenience.
• Negotiation & discussion - If requirements are ambiguous or there are
some conflicts in requirements of various stakeholders, it is then negotiated
and discussed with stakeholders. The requirements come from various
stakeholders. To remove the ambiguity and conflicts, they are discussed for
clarity and correctness.
• Documentation - All formal & informal, functional and non-functional
requirements are documented and made available for next phase
processing.
Software Requirement Specification (SRS)

SRS is a document created by system analyst after the requirements are


collected from various stakeholders. SRS defines how the intended software
will interact with hardware, external interfaces, speed of operation, response
time of system, portability of software across various platforms,
maintainability, speed of recovery after crashing, Security, Quality,
Limitations etc.

SRS should come up with the following features:


• User Requirements are expressed in natural language.
• Technical requirements are expressed in structured language, which is used
inside the organization.
• Design description should be written in Pseudo code.
• Format of Forms and GUI screen prints.
• Conditional and mathematical notations for DFDs etc.
Software Requirement Validation

After requirement specifications are developed, the requirements mentioned in


this document are validated. User might ask for illegal, impractical solution or
experts may interpret the requirements incorrectly. This results in huge
increase in cost if not nipped in the bud.

Requirements can be checked against following conditions:


• If they can be practically implemented
• If they are valid and as per functionality and domain of software
• If there are any ambiguities
• If they are complete
• If they can be demonstrated
Verification & Validation

Verification is the process of checking that a software achieves its goal


without any bugs. It is the process to ensure whether the product that is
developed is right or not. It verifies whether the developed product fulfills the
requirements that we have. Verification is static testing.

Verification means Are we building the product right?

Validation is the process of checking whether the software product is up to


the mark or in other words product has high level requirements. It is the
process of checking the validation of product i.e. it checks what we are
developing is the right product. it is validation of actual and expected product.
Validation is the dynamic testing.

Validation means Are we building the right product?


https://www.easterbrook.ca/steve/2010/11/the-difference-between-verification-and-
validation/
Requirement Elicitation Techniques

• Interviews are strong medium to collect requirements. Organization may


conduct several types of interviews such as:
 Structured (closed) interviews
 Non-structured (open) interviews
 Oral interviews
 Written interviews
 Group interviews
• Surveys: Organization may conduct surveys among various stakeholders
by querying about their expectation and requirements from the upcoming
system.
• Questionnaires: A document with pre-defined set of objective questions
and respective options is handed over to all stakeholders to answer, which
are collected and compiled.
• Task analysis: Team of engineers and developers may analyze the
operations for which the new system is actually required.
Requirement Elicitation Techniques

• Domain Analysis: Every software falls into some domain category. The
expert people in the domain can be a great help to analyze general and
specific requirements.

• Prototyping: Prototyping is building user interface without adding detail


functionality for user to interpret the features of targeted software product.
It helps giving better idea of requirements. The prototype is shown to the
client and the feedback is noted. The client feedback serves as an input for
requirement gathering.

• Observation: Team of experts visit the client’s organization or workplace.


They observe the actual working of the existing installed systems. They
observe the workflow at client’s end and how execution problems are
dealt. The team itself draws some conclusions which aid to form
requirements expected from the software.
Advanced Techniques
FAST: Facilitated Application Specification Technique
This approach encourages the creation of a joint team of customers and
developers who works together to get the FAST Goal.
 Identify the problem
 Solution requirements 
 Propose elements of solutions 
 Negotiate different approach
• A Meeting is conducted at the neutral site and attended by both
software engineers and customers. 
• Rules for preparation and participation established.
• An Agenda is suggested that is formal enough to cover all important
but informal ideas.
• A Facilitator / Moderator can be a customer, developer, or an outsider
who controls the meeting.
Advanced Techniques
QFD: Quality Function Deployment

QFD divides requirements into 3 types:


• Normal Requirements  Functional Requirements
• Expected Requirements  Non-functional Requirements
• Excited Requirements  Gold Plated Requirements

Gold plating means intentionally adding extra features or functions to the


products which were not included in the scope statement. Usually, gold
plating is performed by either the project team or the project manager with
no additional cost to the client.

Das könnte Ihnen auch gefallen