Unit 4
Unit 4
1. Introduction.
2. Requirement Analysis Process. Current Application Analysis.
3. Requirement gathering techniques & Fact Finding, Recording Outcome.
4. DFD, Data Dictionary and Process Specification.
5. Importance of Requirement Specifications.
6. Software Requirement Specification Document.
· Nonfunctional requirements are basically the quality attribute that system must satisfy
according to the project contract.
· It focus on quality and characteristics that system must process
· It defines how system should perform.
· They deal with issues like -
Portability, Security, Maintainability, Reliability, Scalability, Performance, Reusability,
Flexibility etc.
For Example:
l P a g e 1 | 29
BHAGWAN MAHAVIR COLLEGE OF COMPUTER APPLICATION
1) Emails should be sent with a latency of no greater than 12 hours from such an activity.
2) The processing of each request should be done within 10 seconds.
3) The site should load in 3 seconds when the number of simultaneous users are > 10000.
P a g e 2 | 29
BHAGWAN MAHAVIR COLLEGE OF COMPUTER APPLICATION
P a g e 3 | 29
BHAGWAN MAHAVIR COLLEGE OF COMPUTER APPLICATION
One of the greatest challenges faced by any organization is to share the vision of the final product
with the customers. Hence, a business requirements analysis involves a team effort of all the key
stakeholders, software developers, end-users, and customer managers to achieve a shared
understanding of what the product should do. This is always done in the early phase of
any project to ensure that the final product conforms to all the requirements.
After requirements gathering is complete, the analyst analyses the gathered requirements
to form a clear understanding of the exact customer requirements and to weed out any
1. Stakeholders Identification
The first step in the requirements analysis process of a software development project
is stakeholder identification.
Simply put, this is the process of finding out who has a stake in the success of the software being
P a g e 4 | 29
BHAGWAN MAHAVIR COLLEGE OF COMPUTER APPLICATION
developed.
P a g e 5 | 29
BHAGWAN MAHAVIR COLLEGE OF COMPUTER APPLICATION
Stakeholders are not just the customers who commission the software, but a broader group. They
include the end users who will interact with the software on a daily basis and who may have
valuable insight into what features are essential.
It’s important to identify all of these stakeholders early on, because each can provide unique
perspectives and requirements.
2. Elicitation of Requirement
The team uses a variety of methods to do this. Interviews are common, where team members have
one-on-one conversations with stakeholders to understand their needs. Questionnaires can be
sent out to quickly gather information from a larger group. Workshops or group sessions are also
effective, especially when interactive discussions can lead to deeper insights. Another method
is user observation, where the team observes how potential users interact with existing systems to
identify unspoken needs or problems.
This step is critical because it’s about gathering as much relevant information as possible to ensure
that the software is designed to meet the real needs of its users.
4. Documentation of Requirements
After gathering all the necessary information from stakeholders, it’s time to put it all down on
paper, or more likely, in a digital document.
The goal of this step is to create a clear, detailed record of what the software needs to do and the
constraints within which it must operate. The team typically creates a document called a Software
Requirements Specification (SRS), which serves as a guide for everyone involved in the project.
This document includes everything from the specific features the software must have, to the
performance levels required, to the standards it must meet.
This document is the blueprint for the software project, outlining what needs to be built and how it
should work, and ensuring that everyone is on the same page.
The fourth step in the requirements analysis process is analysis and negotiation.
This stage involves taking a closer look at the documented requirements to make sure they are
realistic and workable.
P a g e 6 | 29
BHAGWAN MAHAVIR COLLEGE OF COMPUTER APPLICATION
The final step in the requirements analysis process, which combines both validation and
verification, is critical to ensuring that the project is on the right track.
Validation is about confirming that the requirements actually meet the needs of the
stakeholders and the goals of the project.
It’s like asking, “Are we building the right thing?” Here, the team reviews the requirements with the
stakeholders to make sure they are in line with their expectations and the goals of the project.
Verification, on the other hand, is about making sure that the requirements are documented
correctly and consistently. It’s like proofreading and quality checking the requirements document.
The team reviews the document to ensure that all requirements are clear, unambiguous, and
consistent.
Together, validation and verification serve as a double check to ensure that the software
development process is built on a solid foundation of well-defined, agreed-upon, and accurately
recorded requirements.
P a g e 7 | 29
BHAGWAN MAHAVIR COLLEGE OF COMPUTER APPLICATION
It is essential to ensure that the software system being developed meets the needs and
expectations of users. The following are the key benefits of Requirement Analysis.
Requirement Analysis helps to identify the actual needs and expectations of the users.
It helps to clearly define the scope and objectives of the software system to be developed.
Reduce Risks
Requirement Analysis helps in reducing the risk of project failure by identifying potential issues at an
early stage.
Improved Communication
It ensures effective communication between the development team, stakeholders, and clients.
Efficient Planning
Requirements Analysis enables efficient planning and scheduling of the software development process.
P a g e 8 | 29
BHAGWAN MAHAVIR COLLEGE OF COMPUTER APPLICATION
Requirements gathering
Requirements gathering is the process of identifying your project’s exact requirements from start
to finish.
This process occurs during the project initiation phase but you’ll continue to manage your project
requirements throughout the entire project timeline.
Questionnaires:
Questionnaires can be beneficial if you need to ask stakeholders the same question across the
enire team. Share the questionnaire with stakeholders in advance, and give them time to answer
questions about project requirements, to ensure no one leaves anything out.
Brainstorming
Brainstorming is used in requirement gathering to get as many ideas as possible from group of people.
Generally used to identify possible solutions to problems, and clarify details of opportunities.
Document Analysis
Reviewing the documentation of an existing system can help when creating AS–IS process document, as well
as driving gap analysis for scoping of migration projects.
In an ideal world, we would even be reviewing the requirements that drove creation of the existing system –
a starting point for documenting current requirements.
Focus Group
A focus group is a gathering of people who are representative of the users or customers of a product to get
feedback.
The feedback can be gathered about needs/opportunities/ problems to identify requirements, or can be
gathered to validate and refine already elicited requirements.
This form of market research is distinct from brainstorming in that it is a managed process with specific
participants.
Interface analysis
Interfaces for a software product can be human or machine. Integration with external systems and devices is
just another interface.
User centric design approaches are very effective at making sure that we create usable software.
Interface analysis – reviewing the touch points with other external systems is important to make sure we
don’t overlook requirements that aren’t immediately visible to users.
Interview
Interviews of stakeholders and users are critical to creating the great software. Without
understanding the goals and expectations of the users and stakeholders, we are very unlikely to
satisfy them. We also have to recognize the perspective of each interviewee, so that, we can
properly weigh and address their inputs. Listening is the skill that helps a great analyst to get more
value from an interview than an average analyst.
Observation
By observing users, an analyst can identify a process flow, steps, pain points and opportunities for
improvement.
Observations can be passive or active (asking questions while observing). Passive observation is better for
getting feedback on a prototype (to refine requirements), where active observation is more effective at
getting an understanding of an existing business process. Either approach can be used.
Prototyping
Prototyping is a relatively modern technique for gathering requirements. In this approach, you gather
preliminary requirements that you use to build an initial version of the solution - a prototype.
You show this to the client, who then gives you additional requirements. You change the application and
cycle around with the client again. This repetitive process continues until the product meets the critical mass
of business needs or for an agreed number of iterations.
Requirement Workshops
Workshops can be very effective for gathering requirements. More structured than a brainstorming session,
involved parties collaborate to document requirements.
One way to capture the collaboration is with creation of domain-model artifacts (like static diagrams,
activity diagrams). A workshop will be more effective with two analysts than with one.
Reverse Engineering
When a migration project does not have access to sufficient documentation of the existing system, reverse
engineering will identify what the system does.
It will not identify what the system should do, and will not identify when the system does the wrong thing.
Survey/Questionnaire
When collecting information from many people – too many to interview with budget and time constraints –
a survey or questionnaire can be used.
The survey can force users to select from choices, rate something (“Agree Strongly, agree…”), or have open
ended questions allowing free-form responses. Survey design is hard – questions can bias the respondents.
● Though extremely simple, it is a very powerful tool to tackle the complexity of industry standard
problems.
● A DFD model only represents the data flow aspects and does not show the sequence of execution of the
different functions and the conditions based on which a function may or may not be executed.
● In the DFD terminology, each function is called a process or a bubble. Each function as a processing station
(or process) that consumes some input data and produces some output data.
DFD Components DFD can represent Source, destination, storage and flow of data using the
following set of components –
• Entities - Entities are source and destination of information data. Entities are represented by a rectangles
with their respective names.
• Process - Activities and action taken on the data are represented by Circle or Round-edged rectangles. •
Data Storage - There are two variants of data storage - it can either be represented as a rectangle with
absence of both smaller sides or as an open-sided rectangle with only one side missing.
• Data Flow - Movement of data is shown by pointed arrows. Data movement is shown from the base of
arrow as its source towards head of the arrow as destination.
The designation of DFD visual elements is not strictly regulated. However, there are two commonly used
versions of notation — DeMarco-Yourdon and Gane-Sarson versions. The differences are the following:
1.level DFD:
➢ In 1-level DFD, the context diagram is decomposed into multiple bubbles/processes.
➢ In this level, we highlight the main functions of the system and breakdown the high-level process of 0-
2.level DFD:
➢ 2-level DFD goes one step deeper into parts of 1-level DFD.
➢ It can be used to plan or record the specific/necessary detail about the system’s functioning.
*https://www.geocities.ws/inf381/chap8/ch8.htm
Advantages of DFD
· Data Flow Diagram represent detailed and well explained diagram of system components.
· Data Flow Diagrams can be understood by both technical or nontechnical person because they are
very easy to understand.
Disadvantages of DFD
· Data Flow Diagram takes long time to be generated, and many times due to this reasons analysts are
denied permission to work on it.
Data Dictionary
So, the data dictionary is automatically updated by the database management system when any
changes are made in the database. This is known as an active data dictionary as it is self updating.
This is not as useful or easy to handle as an active data dictionary. A passive data dictionary is
maintained separately to the database whose contents are stored in the dictionary. That means
that if the database is modified the database dictionary is not automatically updated as in the case
of Active Data Dictionary.
So, the passive data dictionary has to be manually updated to match the database. This needs
careful handling or else the database and data dictionary are out of sync.
Process Specification
Process: sequence of step performed to achieve some goal.
Software Process: sequence of steps to perform to produced software with high quality within
budget and schedule.
· DFD model the processes that exist in a system. But they do not allow us to recored
detailed information about these processes.
· To record detailed information about processes (to specify processes) process specification
technique is used.
· Process specification can be used to specify the processing details implies by bubble with in
DFD. In other word, Process Specification is used to describe the inner workings of a process
represented in data flow diagram.
Process specifications also help to ensure that all stakeholders involved in a process are aware of
its requirements and can work together to achieve desired results.
PSPEC Format:
· SRS allow customer to review whether all requirement are fulfilled by software or not.
· A good SRS defines the how Software System will interact with all internal modules, hardware,
communication with other programs.
· A software requirements specification (SRS) is a document that describes what the software will do
and how it will be expected to perform
Purpose:
1. Introduction
1.1.Purpose of the requirements document
1.2.Scope
1.3.Definitions, acronyms and abbreviations
1.4.References
.5 Overview of the remainder of the document
2. General description
2.1.User Interface
2.2.System Interface
2.3.Software and hardware requirements
2.4.Constraints, Assumptions and dependencies
2.5.User characteristics
3. System Features and Requirements
3.1.Functional Requirements
3.2.User cases, Sequence diagram
3.3.External Interface Requirements
3.4.Logical database diagram
3.5.Nonfunctional Requirements
4. Delivered for approval
1. Introduction
1.1.Purpose of this Document
At first, main aim of why this document is necessary and what’s purpose of document is
explained and described.
1.2.Intended Audience
It describes which type of user will use particular application
1.3.Scope of this document
In this, overall working and main objective of document and what value it will provide to
customer is described and explained.
It also includes a description of development cost and time required.
1.4.Definitions
Clearly define all key terms, acronyms, and abbreviations used in the SRS.
This will help eliminate any ambiguity and ensure that all parties can easily understand
the document. i.e. HOD – Head of the department
1.5.References
1.6.Overview – In this, description of product is explained. It’s simply summary or overall
review of product.
3.1.Functional Requirements
It states that what software will do. Which type of features customer want.
3.2.User cases
Various user classes that are expected to use this software are identified and described here.
3.3.External Interface Requirement
External interface requirements are specific types of functional requirements. These are
especially important when working with embedded systems. They outline how your
product will interface with other components.
i.e. When user pay fee that it will redirect external app (gpay)
3.4.Logical Database requirement
It describe which type of database used like my sql , oracle ,sql server etc.
3.5.Nonfunctional requirement
It states that how system will perform? It show quality attributes like security , availability,
performance, portability, reliability etc.
4. Deliver for approval
Customer check if it is satisfied it will send to next designer or development team.
1. Correct: The SRS is said to be correct if it covers all the requirements that are actually
2. Complete: The SRS should include all the requirements for the software system, including
both functional and non-functional requirements.
3. Consistent: The SRS should be consistent in its use of terminology and formatting, and
should be free of contradictions.(No conflict between any set of requirements)
4. Unambiguous: The SRS should be clear and specific, and should avoid using vague or
imprecise language. Don’t use words which have more than one meaning. One word have
only one interpretation.
5. Traceable: The SRS should be traceable to other documents if origin of each requirements
are clear.
6. Verifiable: The SRS should be verifiable, which means that the requirements can be tested
and validated to ensure that they are being met.
7. Modifiable: The SRS should be modifiable, so that it can be updated and changed as the
software development process progresses.
8. Prioritized: The SRS should prioritize requirements, so that the most important
requirements are addressed first.
9. Testable: The SRS should be written in a way that allows the requirements to be tested
and validated.
10. High-level and low-level: The SRS should provide both high-level requirements (such as
overall system objectives) and low-level requirements (such as detailed functional
requirements).
11. Relevant: The SRS should be relevant to the software system that is being developed, and
should not include unnecessary or irrelevant information.
12. Design Independence: The SRS should be provide more than one interface of software
not only one. So customer can choose any one.
13. Understandable by customer: An end user maybe an expert in his/her specific domain but
might not be an expert in computer science. Hence, the use of formal notations and
symbols should be avoided to as much extent as possible. The language should be kept
easy and clear.
14. Aligned with business goals: The SRS should be aligned with the overall business goals
and objectives of the organization, so that the software system meets the needs of the
business.
By keeping these quality characteristics in mind, developers and stakeholders can ensure that the SRS
document is clear, complete, and accurate, which in turn can help to ensure that the final software
system meets the needs of the business and its users.
· The client will be able to form their vision of the project more clearly.
· The customer and the contractor will have the same idea about the product.
It has become very evident that a poor specification of software requirements can lead to failed