0% found this document useful (0 votes)
46 views57 pages

Chapter 2 SE

The document outlines the requirements analysis process, emphasizing the importance of clear, unambiguous, and testable requirements for software development. It categorizes requirements into functional, non-functional, and domain requirements, and details the phases of requirement engineering, including feasibility study, elicitation, specification, validation, and management. Additionally, it discusses the significance of software documentation and the creation of a Software Requirements Specification (SRS) to ensure that the software meets stakeholder needs.

Uploaded by

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

Chapter 2 SE

The document outlines the requirements analysis process, emphasizing the importance of clear, unambiguous, and testable requirements for software development. It categorizes requirements into functional, non-functional, and domain requirements, and details the phases of requirement engineering, including feasibility study, elicitation, specification, validation, and management. Additionally, it discusses the significance of software documentation and the creation of a Software Requirements Specification (SRS) to ensure that the software meets stakeholder needs.

Uploaded by

121vaishnavi4023
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd

Requirements Analysis

Chapter 2
Requirements
Information which describes user’s expectation about system
performance
Must be clear and unambiguous (Single word with different meaning)
Characteristics of Requirements
• Unambiguous (not confusing) • Feasible (realistic, possible)
• Testable (verifiable) • Independent
• Clear (concise, terse, simple, • Atomic
precise) • Necessary
• Correct • Implementation-free (abstract)
• Understandable
Types of Requirement
Functional Requirements
describe all those functions needed to implement to achieve the
goals of business and users
include features such as sorting goods by price, manufacturer,
materials, etc., or the ability to multi-factor authentication to achieve
the highest possible level of system security.
Functional requirements examples
1. Set data access levels; for example, income data inside the system
should be available only to users at the Administrator/Editor level
2. Automatic customer verification for compliance with ABC contact
management system
3. Integration of software with banking API
4. Ability to record sales in the sales system
Non-functional Requirements
does not describe the product's functions, but it does describe the
properties and rules to which it must comply.
For example, there is a multifactor authentication function. Its
attribute is the required number of characters in the password - for
example, 10, where the numbers and underscores are allowed.
Types of Non-functional Requirement
Product Requirement
Requirement which mention delivered product should have behavior in
specific way e.g.. Execution speed, reliability, etc.
Organizational Requirement
Result of organizational policies and procedures
External Requirement
Generated from the factors that are external to the system and its
development process
Examples
The primary password cannot be reused.
Users must change the originally given password immediately after
the first successful login.
Every user’s attempt to access the system component must be
recorded in the audit trail.
the site should be loaded in 3 seconds, the number of users at a time
should be 10 000.
Domain Requirement
Domain requirements are expectations related to a particular type of
software, purpose or industry vertical.
Domain requirements can be functional or nonfunctional.
The common factor for domain requirements is that they meet
established standards or widely accepted feature sets for that category
of software project.
typically arise in military, medical and financial industry sectors,
among others.
Requirement Engineering
The process to gather the software requirements from client, analyze
and document them is known as requirement engineering.
Goal: to develop and maintain sophisticated and descriptive ‘System
Requirements Specification (SRS)’ document.
Requirement Engineering Process
Phases:
Feasibility Study
Requirement Elicitation and Analysis
Software Requirement Specification
Software Requirement Validation
Software Requirement Management
1. Feasibility Study
Objectives of feasibility study is:
 to create the reasons for developing the software that is acceptable to
users
flexible to change
conformable to established standards.
Types of Feasibility
Technical Feasibility - Technical feasibility evaluates the current
technologies, which are needed to accomplish customer
requirements within the time and budget.
Operational Feasibility - Operational feasibility assesses the
range in which the required software performs a series of levels
to solve business problems and customer requirements.
Economic Feasibility - Economic feasibility decides whether the
necessary software can generate financial profits for an
organization.
2. Requirement Elicitation and Analysis
also known as the gathering of requirements
requirements are identified with the help of customers and existing
systems processes
analyzed to identify inconsistencies, defects, omission, etc.
Analysis of requirements starts with requirement elicitation
Elicitation Methods
Interviews
Surveys
Questionnaire
Task analysis
Domain analysis
Brainstorming
Prototyping
Observation
Problems of Elicitation and Analysis

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


Stakeholders often don't know what they want
Stakeholders express requirements in their terms.
Stakeholders may have conflicting requirements.
Requirement change during the analysis process.
Organizational and political factors may influence system
requirements.
3. Software Requirement Specification
kind of document which is created by a software analyst after the
requirements collected from the various sources
requirement received by the customer written in ordinary language
analyst should write the requirement in technical language for
development team
include ER diagrams, data flow diagrams (DFDs), function
decomposition diagrams (FDDs), data dictionaries, etc.
Data Flow Diagrams
flow of data through a system
Data Dictionaries
store information about all data items defined in DFDs
Entity-Relationship (ER) Diagrams
detailed logical representation of the data for the
organization and uses three main constructs i.e. data entities,
relationships, and their associated attributes.
4. Software Requirement Validation
requirements discussed in SRS document are validated
user might demand illegal, impossible solution or experts may
misinterpret the needs. Requirements can be the check against the
following conditions
1. If they can practically implement
2. If they are correct and as per the functionality and specially of
software
3. If there are any ambiguities
4. If they are full
5. If they can describe
Requirements Validation Techniques
Requirements reviews/inspections: systematic manual analysis of
the requirements.
Prototyping: Using an executable model of the system to check
requirements.
Test-case generation: Developing tests for requirements to check
testability.
Automated consistency analysis: checking for the consistency of
structured requirements descriptions.
5. Software Requirement Management
Requirement management is the process of managing changing
requirements during the requirements engineering process and system
development.
New requirements emerge during the process as business needs a
change, and a better understanding of the system is developed.
The priority of requirements from different viewpoints changes during
development process.
The business and technical environment of the system changes during
the development.
Software Prototyping
Software prototypes refers to working models of software with
limited functionality.
 no exact logic used in actual software application.
It also provides an opportunity for the manufacturer to get an actual
feel of what the final product will look like before additional
resources, like time and money, are put into finalizing the product.
Software Prototyping
Process
1. Basic Requirement Identification
understanding the basic product requirements

2. Developing The Initial Prototype


consider the requirements, begin to assemble

3. Review Of The Prototype


feedback is collected

4. Revising The Prototype


revisions to the prototype
Types of software prototyping models
Throwaway/rapid prototyping
Rapid prototyping is also known as throwaway prototyping because
prototypes are only fit for brief periods of time.
Pass through various feedback, revision, and assessment cycles
When all collaborators are satisfied, it becomes the standard for
designers and developers to apply.
Once the exact conditions are noted, the prototype is rejected and the
actual system is developed
Extreme prototyping
Extreme prototyping is mainly applied for web development.

All pages are available in HTML format in the basic prototype.


A service class prototype is used to stimulate the data process.
In the last step, all the processes are performed and connected with the
final prototype.
Evolutionary prototyping
• Evolutionary prototypes are
created by the team in an
incrementally refined manner
after accepting the customer’s
final feedback.
• useful when the software
requirement is not understood
perfectly
Incremental Prototyping
Software Documentation
Software documentation helps you to understand the product,
interface, capability, ability to fulfill a task, and quickly search and
find a particular section within the document, or find resolution when
encountered using the product.

Types of Software Documentation


1. User Documentation
2. Developer Documentation
Characteristics of S/W documentation
Correct
Unambiguous
Complete
Ranked for importance/stability
Modifiable
Traceable
Verifiable
User Documentation
How-to guides Guides the user to complete a task or a
predetermined goal.
Tutorials Learns a concept by following a series of steps
concept
Reference docs technical detail of the product
Administration Enables the administrator to refer to this after
Guide installing an application
Configuration Allows the administrator to refer to this document
Guide for configuration parameters.
Developer Documentation
API (Application Programing Interface)
documentation Specifies how to invoke API calls and classes, or how to
include API in the code that is being developed.

Release notes Describes about the latest software, feature releases, and
what bugs have been fixed with (.txt)

README simple plain text file called Read Me, READ.ME,


README.TXT with A high-level overview of the software,
usually alongside the source code.

System Describes the system requirements, includes design


documentation documents and UML diagrams.
Just-in-time Documentation
just-in-time document quickly serves the support for customer-facing
documentation.
The user need not have to refer to any documents or FAQs for
information.
 For example, GitHub is a cloud-based do my papers application,
which serves the purpose for code developers and authors.
Creating software documentation
Understand user needs
Write easily understood documentation
Include internal subject matter experts
Use analytics feedback
Ask for user feedback
Provide continuous maintenance
Software documentation Tools
Apiary
APIMatic
GitHub Pages
ReadMe
Stoplight
Swagger
Advantage of software documentation
keeping the track of all aspects of an application and also improves on the
quality of the software product
main focus are based on the development , maintenance and knowledge
transfer to other developers.
Helps development teams during development.
Helps end-users in using the product.
Improves overall quality of software product
It cuts down duplicative work.
Makes easier to understand code.
Helps in establishing internal co-ordination in work.
Disadvantage of software documentation
documenting code is time consuming.
The software development process often takes place under time
pressure, due to which many times the documentation updates don’t
match the updated code .
The documentation has no influence on the performance of the an
application.
Documenting is not so fun, its sometime boring to a certain extent.
Software Requirements Specification
(SRS)
A software requirements specification (SRS) is a document that
describes what the software will do and how it will be expected to
perform.
It also describes the functionality the product needs to fulfill all
stakeholders (business, users) needs.
Format of SRS
1. Introduction
Purpose – for whom SRS is constructed
Scope – for which SRS is built
Definition, acronyms, abbreviation – to avoid ambiguities in
requirements
References – refereed by this document
Overview – goals and objectives of System
2. The overall Description
Product perspective - benefits of current product over existing
product
Product function – functionality of system
User characteristics – basic knowledge of system
Constraint – limitations of the component
Assumption and dependencies – SRS dependencies
Apportioning of requirements – order in which the requirements are
fulfilled
3. Specific Requirement
Interfaces – specifies interfaces of hardware, software, system, user
communication
Databases – to store data required and generated by system
Performance – describes required speed, task completion time,
response time and throughput of the system
Software system attributes – assurance of reliability, security,
maintainability
4. change Management Process
Helps to handle all kind of additional changes done by user

5. document approvals
Approval from customers and developer, approval date time and sign

6. Supporting Information
Guidelines about how to use SRS, index of SRS, references, etc.
HOMEWORK
SRS on hospital management system
SRS on online student feedback system
Requirement Elicitation Process
Benefits
Lower project costs by catching requirements problems before
development begins.
Increase the likelihood that users and customers get what they want.
Reduce the risk of project failure.
Steps
Gathering requirements
Identifying key stakeholders
Eliciting requirements from key stakeholders
Documenting requirements
Confirming the findings
Different ways to identify customer
requirement
Interviews
Surveys
Questionaries
Task analysis
Domain analysis
Brainstorming
Prototyping
Observations

You might also like