SE Presentation UNIT-II
SE Presentation UNIT-II
Contents:
Requirement:
In software engineering, requirements are the conditions or capabilities that a software system must meet
to satisfy user needs and fulfill the purposes for which it is designed.
These requirements serve as a foundation for designing, developing, and testing software, ensuring that
the final product meets stakeholders' expectations
Requirements engineering:
The process to gather the software requirements from customers, analyze and document them
is known s requirement engineering.
FUNCTIONAL REQUIREMENTS
Describe functionality or system services, how the system should react to particular
inputs and how the system should behave in particular situations.
Requirements should be complete and consistent Complete
Depend on the type of software, expected users and the type of system where the
software is used
Functional user requirements may be high-level statements of what the system should
do but functional system requirements should describe the system services in detail.
Finally ,Describe what the software should do, focusing on specific tasks, behaviors, or features it must perform.
Finally, Describe how the software should perform, focusing on qualities like speed, security, and usability.
Product requirements
• Requirements which specify that the delivered product must behave in a
particular way
e.g. execution speed, reliability, etc.
Organisational requirements
External requirements
• Requirements which arise from factors which are external to the system and its
development process
e.g. interoperability requirements, legislative requirements, etc.
DOMAIN REQUIREMENTS:
1. Help to understand the functions of the system 1.Help to understand the system
performance
5. These requirements are specified by the user 5. These are specified by software developers,
Architects and technical persons.
7. There is functional testing such as API testing, 7.There is non functional testing such as
System, Integration etc. Usability, performance, security etc
USER REQUIREMENTS:
User requirements are defined using natural language, tables and diagrams.
Lack of clarity
Requirements confusion
For Example: Suppose you are a web developer and user ask you to create a website of his
company. For that he has to give some requirements which he wants from this website.
So user requirements are those which user wants from the system.
SYSTEM REQUIREMENTS
For Example: If we’re talking about a game that you play on your computer or phone, a
system requirement could be something like this:
“ The game needs to be able to run smoothly on computers with at least 4GB of RAM and
a graphics card that support direct 11”
INTERFACE SPECIFICATION
It defines the data they will exchange, the rules for communication, and how they
will work together.
In simple terms, it's like a "contract" that explains how one part of the system talks to
another, ensuring they understand each other and work smoothly. For example, it
might specify that one part of the system sends data in a certain format, and the other
part receives it and processes it correctly.
Most systems must operate with other systems and the operating interfaces must
be specified as part of the requirements
Procedural interfaces
Data structures that are exchanged
Data representations
1. Procedural Interfaces
These define the functions or procedures that one module can call in another module.
It specifies the name of the function, the parameters (inputs) it accepts, and the output
it returns.
Example:
These are the complex data formats or objects shared between modules.
Instead of passing simple values (like integers or strings), modules may exchange
structs, arrays, lists, or classes.
The structure must be clearly defined so both modules understand it.
Example:
struct Student {
int id;
char name[50];
float marks;
};
3. Data Representations
This specifies how the data is stored, formatted, or encoded when exchanged.
Important when systems are built on different platforms (e.g., 32-bit vs 64-bit) or
languages (like C++ vs Python).
Example:
These three types of interfaces help ensure that modules communicate correctly and that data is shared
accurately between different parts of a software system
A Software Requirements Document is a formal document that explains what the software
system should do. It includes all the features, functions, and constraints of the software
that needs to be built.
It is prepared after talking with the client or user to understand their needs. This document helps
everyone involved in the
project — developers, testers, designers, and
clients — to understand the system clearly.
It helps to avoid misunderstandings between the client and the development team.
It allows for planning, designing, coding, and testing in a more organized way.
It is NOT a design document. As far as possible, it should set of WHAT the system
should do rather than HOW it should do it
Purpose of SRS:
Introduction
General description
Specific requirements
Appendices
Index
This is a generic structure that must be instantiated for specific systems
Conclusion: The SRD is the Foundation of the entire software development process. A well written SRD
ensures that the final software meets the users expectations and works correctly.
USERS SYSTEM
Objectives
The objective of this chapter is to discuss the activities involved in the requirements
engineering process. When you study this chapter, you will:
Defination:
The process to gather the software requirements from customers analyze and document them is known as
Requirement engineering.
1. Feasibility studies
1. To create and analyze the reasons for developing the software that is acceptable to users
2. To check aim and goal of the customer and organization behind implementation of
software.
1. Technical Feasibility:
Evaluates the current technologies which are needed to achieve customer requirements within the time
and budget.
2. Operational Feasibility:
3. Economic feasibility:
It decides whether the necessary software can generate financial profits for an organization.
Requirement elicitation is the process of gathering actual requirements about needs and
expectations of stake holders for a software system.
To understand customers, business manuals the existing software of same type, standards and
other stakeholders of the project.
ELICITATION CHALENGES:
Understanding of problems
1. This is the process of interacting with stakeholders of the system to discover their requirements.
2. Domain requirements from stakeholders and documentation are alos discovered during this
activity.
1. This activity takes the unstructured collection of requirements group related requirements and
organizes them in to coherent clusters.
2. The most common way of grouping requirements to use a model of the system architecture to
identify sub systems and to associate requirements with each sub system.
Requirements Specification:
1.The requirements and documented and input to the next round of spiral formal or informal
requirements documents may be produced.
1. Interviews: One – on – one conversations with stakeholders to gather information about their
needs and expectations.
2. Surveys : these are questionnaires that are distributed to stake holders to gather information.
3. Focus Groups: Small groups of stake holders who are brought together to discuss their needs.
5. Prototyping: Creating a working model of the software system, which can be used to gather
feedback from stakeholders and to validate requirements.
SRS Defines:
1. How the intended software will interact with hardware
2. External interface/GUI
3. Speed of operation, Response time of system
4. Portability of software across various platforms.
5. Maintainability
6. Speed of recovery after cresting
7. Security quality, limitations etc
After SRS developed , the requirements discussed in this document are validated or
tested.
2. If they are correct and as per the functionality and specially of software
4.Communication: If changing requirements has any issues contact with clients within time.
5.Monitoring & Reporting: Monitoring development process and report the status.