OOSE Chapter2 Notes
OOSE Chapter2 Notes
Requirement:
-The software requirements are description of features and functionalities of the target system.
-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.
observation report
Questionnaire ( survey , poll )
Use cases
User stories
Requirement workshop
Mind mapping
Role playing
Prototyping
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
-These requirements define the general characteristics, behavior of the system, and features that affect the
experience of the user.
-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
Training time
Ease of use
Number of help windows
Percentage of target-dependent
Portability
statements
Number of target systems
They describe what the product does. They describe the working of product.
There is functional testing such as API There is non-functional testing such as usability,
testing, system, integration, etc. performance, stress, security, etc.
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.
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.
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 -
-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.
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:
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.
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.
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.