0% found this document useful (0 votes)
160 views13 pages

OOSE Chapter2 Notes

The document discusses requirement engineering, which is the process of defining, documenting, and maintaining software requirements. It involves gathering requirements from clients, analyzing and documenting them in a system requirements specification. There are four main phases: feasibility study, requirement elicitation and analysis, software requirement specification, and validation. Functional requirements define system functions while non-functional requirements specify qualities like performance, security, and usability. Both types of requirements are important for developing quality software.

Uploaded by

Padre Bhoj
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)
160 views13 pages

OOSE Chapter2 Notes

The document discusses requirement engineering, which is the process of defining, documenting, and maintaining software requirements. It involves gathering requirements from clients, analyzing and documenting them in a system requirements specification. There are four main phases: feasibility study, requirement elicitation and analysis, software requirement specification, and validation. Functional requirements define system functions while non-functional requirements specify qualities like performance, security, and usability. Both types of requirements are important for developing quality software.

Uploaded by

Padre Bhoj
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/ 13

Chapter 2: Requirement Engineering

 Requirement:
-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.

-The IEEE defines requirements as “a condition or capability needed by a user to solve a problem or
achieve an objective.

 Requirement Engineering:
-Requirement Engineering is the process of defining, documenting and maintaining the requirements.

-The process to gather the software requirements from client, analyze and document them is known as
requirement engineering.

-The goal of requirement engineering is to develop and maintain sophisticated and descriptive ‘System
Requirements Specification’ document.

-Requirements engineering is the process of identifying, eliciting, analyzing, specifying, validating, and
managing the needs and expectations of stakeholders for a software system. The requirements
engineering process is an iterative process that involves several steps.

- Tools involved in requirement engineering:

 observation report
 Questionnaire ( survey , poll )
 Use cases
 User stories
 Requirement workshop
 Mind mapping
 Role playing
 Prototyping

 Types of Requirements – Functional and Nonfunctional

1. Functional Requirements

-Functional requirements define a function that a system or system element must be qualified to perform
and must be documented in different forms.

-The functional requirements describe the behavior of the system as it correlates to the system's
functionality.
-Functional requirements should be written in a simple language, so that it is easily understandable. The
examples of functional requirements are authentication, business rules, audit tracking, certification
requirements, transaction corrections, etc.

-These requirements allow us to verify whether the application provides all functionalities mentioned in the
application's functional requirements. They support tasks, activities, user goals for easier project
management.

-There are a number of ways to prepare functional requirements. The most common way is that they are
documented in the text form. Other formats of preparing the functional requirements are use cases, models,
prototypes, user stories, and diagrams.

- For example, in a hospital management system, a doctor should be able to retrieve the information of his
patients.

2. Non-functional requirements

-Non-functional requirements are not related to the software's functional aspect.

-Non-functional requirements specify the software's quality attribute.

-These requirements define the general characteristics, behavior of the system, and features that affect the
experience of the user.

-They ensure a better user experience, minimizes the cost factor.

-Non-functional requirements ensure that the software system must follow the legal rules.

-The impact of the non-functional requirements is not on the functionality of the system, but they impact
how it will perform.

-For a well-performing product, at least some of the non-functional requirements should be met.

-They are also called non-behavioral requirements. They basically deal with issues like:

 Portability
 Security
 Maintainability
 Reliability
 Scalability
 Performance
 Reusability
 Flexibility
-Metrics for Non-functional Requirements

Features Measures
 Processed transaction/ second
Speed
 User/event response time
 Screen refresh rate

 Amount of memory (KB)


Size
 Number of RAM chips.

 Training time
Ease of use
 Number of help windows

 Mean time to failure (MTTF)


Reliability
 Portability of unavailability
 Rate of failure occurrence

 Time to restart after failure


Robustness
 Percentage of events causing failure
 Probability of data corruption on failure

 Percentage of target-dependent
Portability
statements
 Number of target systems

 Difference between Functional requirements v/s Non-functional requirements

Functional Requirements Non-functional requirements

Functional requirements help to They help to understand the system's performance.


understand the functions of the system.

Functional requirements are mandatory. While non-functional requirements are not


mandatory.

They are easy to define. They are hard to define.

They describe what the product does. They describe the working of product.

It concentrates on the user's requirement. It concentrates on the expectation and experience of


the user.

It helps us to verify the software's It helps us to verify the software's performance.


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

There is functional testing such as API There is non-functional testing such as usability,
testing, system, integration, etc. performance, stress, security, etc.

Examples of the functional requirements Examples of the non-functional requirements are -


are - The background color of the screens should be light
Authentication of a user on trying to log in blue.
to the system.

 Four Phases of Requirement Engineering

It is a four-step process, which includes -

1. Feasibility Study
2. Requirement Elicitation and Analysis
3. Software Requirement Specification
4. Software Requirement Validation
1. Feasibility Study:
The objective behind the feasibility study is to create the reasons for developing the software that is
acceptable to users, flexible to change and conformable to established standards.

Types of Feasibility:

1. Technical Feasibility - Technical feasibility evaluates the current technologies, which are needed to
accomplish customer requirements within the time and budget.
2. Operational Feasibility - Operational feasibility assesses the range in which the required software
performs a series of levels to solve business problems and customer requirements.
3. Economic Feasibility - Economic feasibility decides whether the necessary software can generate
financial profits for an organization.

2. Requirement Elicitation and Analysis:


This is also known as the gathering of requirements. Here, requirements are identified with the help of
customers and existing systems processes, if available.

Analysis of requirements starts with requirement elicitation. The requirements are analyzed to identify
inconsistencies, defects, omission, etc. We describe requirements in terms of relationships and also resolve
conflicts if any.

Problems of Elicitation and Analysis

o Getting all, and only, the right people involved.


o Stakeholders often don't know what they want
o Stakeholders express requirements in their terms.
o Stakeholders may have conflicting requirements.
o Requirement change during the analysis process.
o Organizational and political factors may influence system requirements.

3. Software Requirement Specification:


Software requirement specification is a kind of document which is created by a business analyst after the
requirements collected from the various sources - the requirement received by the customer written in
ordinary language. It is the job of the analyst to write the requirement in technical language so that they can
be understood and beneficial by the development team.

The models used at this stage include Use Case diagram, ER diagrams, data flow diagrams (DFDs), function
decomposition diagrams (FDDs), data dictionaries, etc.
4. Software Requirement Validation:
After requirement specifications developed, the requirements discussed in this document are validated. The
user might demand illegal, impossible solution or experts may misinterpret the needs. Requirements can be
the check against the following conditions -

o If they can practically implement


o If they are correct and as per the functionality and specially of software
o If there are any ambiguities
o If they are full
o If they can describe

Requirements Validation Techniques

o Requirements reviews/inspections: systematic manual analysis of the requirements.


o Prototyping: Using an executable model of the system to check requirements.
o Test-case generation: Developing tests for requirements to check testability.

Software requirement Specification (SRS):

-A Software Requirements Specification (SRS) is a document that describes the nature of a project,
software or application.

-In simple words, an SRS document is a manual of a project provided it is prepared before you kick-start a
project/application.

-This document is also known by the names SRS report, or software document. A software document is
primarily prepared for a project, software, or any kind of application.

-There are a set of guidelines to be followed while preparing the software requirement specification
document.

-This includes the purpose, scope, functional and non-functional requirements, and software and hardware
requirements of the project.

-In addition to this, it also contains information about environmental conditions required, safety and
security requirements, software quality attributes of the project, etc.
What is a Software Requirements Specification document?

A Software requirements specification document describes the intended purpose, requirements and
nature of a software to be developed. It also includes the yield and cost of the software.

Characteristics of good SRS

1. Correctness: User review is used to provide the accuracy of requirements stated in the SRS. SRS is said to
be perfect if it covers all the needs that are truly expected from the system.

2. Completeness: The SRS is complete if, and only if All essential requirements, whether relating to
functionality, performance, design, constraints, attributes, or external interfaces.

3. Consistency: The SRS is consistent if, and only if, no subset of individual requirements described in its
conflict (Mismatched)
For Example:

1) The format of an output report may be described in one requirement as tabular but in another as
textual.

2) One requirement may determine that the program will add two inputs, and another may determine that
the program will multiply them.

3) One condition may state that all lights shall be green while another states that all lights shall be blue

4. Unambiguousness:

Requirements is clear and simple to understand.

5. Ranking for importance:

All requirements are not equally important. Some prerequisites may be essential, especially for life-critical
applications, while others may be desirable. Each element should be identified to make these differences
clear and explicit.

6. Modifiability: SRS should be made as modifiable as likely and should be capable of quickly obtain
changes to the system to some extent.

7. Verifiability:

SRS is correct when the specified requirements can be verified with a cost-effective system to check
whether the final software meets those requirements. The requirements are verified with the help of
reviews.

8. Testability:

An SRS should be written in such a method that it is simple to generate test cases and test plans from the
report.

9. Understandable by the customer:

An end user may be an expert in his/her explicit domain but might not be trained in computer science.
Hence, the purpose of formal notations and symbols should be avoided too as much extent as possible.
The language should be kept simple and clear.
IEEE standard format for SRS:
These are the standards created by IEEE (Institute of of Electrical and Electronics Engineers) for SRS. The
heart of the SRS consists of descriptions of both functional and nonfunctional requirements.
The IEEE standard provides several suggestions of how to organize functional requirements: by mode, user
class, object, features, functional hierarchy or combinations of these criteria.
Table of Contents
1. Introduction
1.1 Purpose
1.2 Document Conventions
1.3 Intended Audience and Reading Suggestions
1.4 Product Scope
1.5 References
2. Overall Description
2.1 Product Perspective
2.2 Product Functions
2.3 User Classes and Characteristics
2.4 Operating Environment
2.5 Design and Implementation Constraints
2.6 User Documentation
2.7 Assumptions and Dependencies
3. System Features
3.1 Functional requirement
4. External Interface Requirements
4.1 User Interfaces
4.2 Hardware Interfaces
4.3 Software Interfaces
4.4 Communications Interfaces
5. Other Nonfunctional Requirements
5.1 Performance Requirements
5.2 Safety Requirements
5.3 Security Requirements
5.4 Software Quality Attributes
5.5 Business Rules
6. Other Requirements
1. Introduction
1.1 Purpose
Identify the product whose software requirements are specified in this document, including the release
number. Describe the scope of the product that is covered by this SRS, particularly if this SRS describes only
part of the system or a single subsystem.
1.2 Document Conventions
Describe any standards or typographical conventions that were followed when writing this SRS, such as
fonts or highlighting that have special significance. For example, state whether priorities for higher-level
requirements are assumed to be inherited by detailed requirements, or whether every requirement
statement is to have its own priority.

1.3 Intended Audience and Reading Suggestions


Describe the different types of reader that the document is intended for, such as developers, project
managers, marketing staff, users, testers, and documentation writers. Describe what the rest of this SRS
contains and how it is organized.
1.4 Product Scope
Provide a short description of the software being specified and its purpose, including relevant benefits,
objectives, and goals. Relate the software to corporate goals or business strategies.
1.5 References
List any other documents or Web addresses to which this SRS refers. These may include user interface style
guides, contracts, standards, system requirements specifications, use case documents, or a vision and
scope document. Provide enough information so that the reader could access a copy of each reference,
including title, author, version number, date, and source or location.
2. Overall Description
2.1 Product Perspective
Describe the context and origin of the product being specified in this SRS. A simple diagram that shows the
major components of the overall system, subsystem interconnections, and external interfaces can be
helpful.
2.2 Product Functions
Summarize the major functions the product must perform or must let the user perform. Details will be
provided in Section 3, so only a high level summary (such as a bullet list) is needed here. Organize the
functions to make them understandable to any reader of the SRS. A picture of the major groups of related
requirements and how they relate, such as a top level data flow diagram or object class diagram, is often
effective.
2.3 User Classes and Characteristics
Identify the various user classes that you anticipate will use this product. User classes may be
differentiated based on frequency of use, subset of product functions used, technical expertise, security or
privilege levels, educational level, or experience.
2.4 Operating Environment
Describe the environment in which the software will operate, including the hardware platform, operating
system and versions, and any other software components or applications with which it must peacefully
coexist.
2.5 Design and Implementation Constraints
Describe any items or issues that will limit the options available to the developers. These might include:
corporate or regulatory policies; hardware limitations (timing requirements, memory requirements);
specific technologies, tools, and databases to be used; language requirements; communications protocols;
security considerations.
2.6 User Documentation
List the user documentation components (such as user manuals, on-line help, and tutorials) that will be
delivered along with the software. Identify any known user documentation delivery formats or standards.
2.7 Assumptions and Dependencies
List any assumed factors (as opposed to known facts) that could affect the requirements stated in the SRS.
These could include third-party or commercial components that you plan to use, issues around the
development or operating environment, or constraints. The project could be affected if these assumptions
are incorrect, are not shared, or change. Also identify any dependencies the project has on external
factors, such as software components that you intend to reuse from another project, unless they are
already documented elsewhere (for example, in the vision and scope document or the project plan).

3. System Features
3.1 Functional Requirements
This template illustrates organizing the functional requirements for the product by system features, the
major services provided by the product. You may prefer to organize this section by use case, mode of
operation, user class, object class, functional hierarchy, or combinations of these, whatever makes the
most logical sense for your product.

4. External Interface Requirements


4.1 User Interfaces
Describe the logical characteristics of each interface between the software product and the users. This may
include sample screen images, any GUI standards or product family style guides that are to be followed,
screen layout constraints, standard buttons and functions
4.2 Hardware Interfaces
Describe the logical and physical characteristics of each interface between the software product and the
hardware components of the system. This may include the supported device types, the nature of the data
and control interactions between the software and the hardware, and communication protocols to be
used.
4.3 Software Interfaces
Describe the connections between this product and other specific software components (name and
version), including databases, operating systems, tools, libraries, and integrated commercial components.
Identify the data items or messages coming into the system and going out and describe the purpose of
each.
4.4 Communications Interfaces
Describe the requirements associated with any communications functions required by this product,
including e-mail, web browser, network server communications protocols, electronic forms, and so on.
Define any pertinent message formatting. Identify any communication standards that will be used, such as
FTP or HTTP. Specify any communication security or encryption issues, data transfer rates, and
synchronization mechanisms.

5. Other Nonfunctional Requirements


5.1 Performance Requirements
If there are performance requirements for the product under various circumstances, state them here and
explain their rationale, to help the developers understand the intent and make suitable design choices.
Specify the timing relationships for real time systems. Make such requirements as specific as possible. You
may need to state performance requirements for individual functional requirements or features
5.2 Safety Requirements
Specify those requirements that are concerned with possible loss, damage, or harm that could result from
the use of the product. Define any safeguards or actions that must be taken, as well as actions that must
be prevented. Refer to any external policies or regulations that state safety issues that affect the product’s
design or use. Define any safety certifications that must be satisfied.
5.3 Security Requirements
Specify any requirements regarding security or privacy issues surrounding use of the product or protection
of the data used or created by the product. Define any user identity authentication requirements. Refer to
any external policies or regulations containing security issues that affect the product. Define any security
or privacy certifications that must be satisfied.
5.4 Software Quality Attributes
Specify any additional quality characteristics for the product that will be important to either the customers
or the developers. Some to consider are: adaptability, availability, correctness, flexibility, interoperability,
maintainability, portability, reliability, reusability, robustness, testability, and usability. Write these to be
specific, quantitative, and verifiable when possible. At the least, clarify the relative preferences for various
attributes, such as ease of use over ease of learning.
5.5 Business Rules
List any operating principles about the product, such as which individuals or roles can perform which
functions under specific circumstances. These are not functional requirements in themselves, but they may
imply certain functional requirements to enforce the rules.
6. Other Requirements
Define any other requirements not covered elsewhere in the SRS.

You might also like