Software Engineering | Classification of Software Requirements - GeeksforGeeks (2024)

Last Updated : 20 Jun, 2023

Improve

According to IEEE standard 729, a requirement is defined as follows:

  • A condition or capability needed by a user to solve a problem or achieve an objective
  • A condition or capability that must be met or possessed by a system or system component to satisfy a contract, standard, specification or other formally imposed documents
  • A documented representation of a condition or capability as in 1 and 2.

Main types of software requirement can be of 3 types:

  • Functional requirements
  • Non-functional requirements
  • Domain requirements

Software Engineering | Classification of Software Requirements - GeeksforGeeks (1)

Functional Requirements: These are the requirements that the end user specifically demands as basic facilities that the system should offer. It can be a calculation, data manipulation, business process, user interaction, or any other specific functionality which defines what function a system is likely to perform. All these functionalities need to be necessarily incorporated into the system as a part of the contract. These are represented or stated in the form of input to be given to the system, the operation performed and the output expected. They are basically the requirements stated by the user which one can see directly in the final product, unlike the non-functional requirements. For example, in a hospital management system, a doctor should be able to retrieve the information of his patients. Each high-level functional requirement may involve several interactions or dialogues between the system and the outside world. In order to accurately describe the functional requirements, all scenarios must be enumerated. There are many ways of expressing functional requirements e.g., natural language, a structured or formatted language with no rigorous syntax and formal specification language with proper syntax. Functional Requirements in Software Engineering are also called Functional Specification.

Non-functional requirements: These are basically the quality constraints that the system must satisfy according to the project contract.Nonfunctional requirements, not related to the system functionality, rather define how the system should perform The priority or extent to which these factors are implemented varies from one project to other. They are also called non-behavioral requirements. They basically deal with issues like:

  • Portability
  • Security
  • Maintainability
  • Reliability
  • Scalability
  • Performance
  • Reusability
  • Flexibility

NFR’s are classified into following types:

  • Interface constraints
  • Performance constraints: response time, security, storage space, etc.
  • Operating constraints
  • Life cycle constraints: maintainability, portability, etc.
  • Economic constraints

The process of specifying non-functional requirements requires the knowledge of the functionality of the system, as well as the knowledge of the context within which the system will operate.

They are divided into two main categories: Execution qualities like security and usability, which are observable at run time. Evolution qualities like testability, maintainability, extensibility, and scalability that embodied in the static structure of the software system.

Domain requirements: Domain requirements are the requirements which are characteristic of a particular category or domain of projects. Domain requirements can be functional or nonfunctional. Domain requirements engineering is a continuous process of proactively defining the requirements for all foreseeable applications to be developed in the software product line. The basic functions that a system of a specific domain must necessarily exhibit come under this category. For instance, in an academic software that maintains records of a school or college, the functionality of being able to access the list of faculty and list of students of each grade is a domain requirement. These requirements are therefore identified from that domain model and are not user specific.

Other common classifications of software requirements can be:

  1. User requirements: These requirements describe what the end-user wants from the software system. User requirements are usually expressed in natural language and are typically gathered through interviews, surveys, or user feedback.
  2. System requirements: These requirements specify the technical characteristics of the software system, such as its architecture, hardware requirements, software components, and interfaces. System requirements are typically expressed in technical terms and are often used as a basis for system design.
  3. Business requirements: These requirements describe the business goals and objectives that the software system is expected to achieve. Business requirements are usually expressed in terms of revenue, market share, customer satisfaction, or other business metrics.
  4. Regulatory requirements: These requirements specify the legal or regulatory standards that the software system must meet. Regulatory requirements may include data privacy, security, accessibility, or other legal compliance requirements.
  5. Interface requirements: These requirements specify the interactions between the software system and external systems or components, such as databases, web services, or other software applications.
  6. Design requirements: These requirements describe the technical design of the software system. They include information about the software architecture, data structures, algorithms, and other technical aspects of the software.

By classifying software requirements, it becomes easier to manage, prioritize, and document them effectively. It also helps ensure that all important aspects of the system are considered during the development process.

Advantages of classifying software requirements include:

  1. Better organization: Classifying software requirements helps organize them into groups that are easier to manage, prioritize, and track throughout the development process.
  2. Improved communication: Clear classification of requirements makes it easier to communicate them to stakeholders, developers, and other team members. It also ensures that everyone is on the same page about what is required.
  3. Increased quality: By classifying requirements, potential conflicts or gaps can be identified early in the development process. This reduces the risk of errors, omissions, or misunderstandings, leading to higher quality software.
  4. Improved traceability: Classifying requirements helps establish traceability, which is essential for demonstrating compliance with regulatory or quality standards.

Disadvantages of classifying software requirements include:

  1. Complexity: Classifying software requirements can be complex, especially if there are many stakeholders with different needs or requirements. It can also be time-consuming to identify and classify all the requirements.
  2. Rigid structure: A rigid classification structure may limit the ability to accommodate changes or evolving needs during the development process. It can also lead to a siloed approach that prevents the integration of new ideas or insights.
  3. Misclassification: Misclassifying requirements can lead to errors or misunderstandings that can be costly to correct later in the development process.

Overall, the advantages of classifying software requirements outweigh the disadvantages, as it helps ensure that the software system meets the needs of all stakeholders and is delivered on time, within budget, and with the required quality.


Like Article

Suggest improvement

Previous

Requirements Engineering Process in Software Engineering

Next

How to write a good SRS for your Project

Share your thoughts in the comments

Please Login to comment...

Software Engineering | Classification of Software Requirements - GeeksforGeeks (2024)

FAQs

What are the disadvantages of SRS document? ›

Disadvantages of having a poorly written SRS include:

Time-consuming: Creating a good SRS document can be a time-consuming process, especially for complex software projects, which can delay the development process.

How is the SRS document validated? ›

The purpose of verification and validation (V&V) is to make sure that all requirements outlined in the SRS stage have been implemented and there are no coding or run time errors. Two of the methods used during V&V are static and dynamic testing. Static testing is performed on the programming code.

How do I read a SRS document? ›

The purpose and scope section of an SRS document should provide a high-level overview of the software, its intended audience, and the problem it solves. This section should also outline any constraints, assumptions, and dependencies that may affect the software's development.

What are the strengths and weaknesses of SRS? ›

Researchers choose simple random sampling to make generalizations about a population. Major advantages include its simplicity and lack of bias. Among the disadvantages are difficulty gaining access to a list of a larger population, time, costs, and that bias can still occur under certain circ*mstances.

What are the problems of SRS? ›

As unclear software requirements specification (SRS) are more likely to lead in project failure with 39.03%. And undefined SRS may add up to total project cost due to delay in project delivery, rework, repetitive resource allocation and more.

What are the two 2 main types of requirements? ›

They fall into two large groups.
  • Functional requirements define what a product must do and what its features and functions are.
  • Nonfunctional requirements describe the general properties of a system. They are also known as quality attributes.
Nov 30, 2023

What is included in SRS document? ›

A software requirement specifications (SRS) document lists the requirements, expectations, design, and standards for a future project. These include the high-level business requirements dictating the goal of the project, end-user requirements and needs, and the product's functionality in technical terms.

What are the 5 phases of requirements engineering? ›

Requirements engineering is the discipline that involves establishing and documenting requirements. The various activities associated with requirements engineering are elicitation, specification, analysis, verification and validation, and management.

Who prepares the SRS document? ›

The SRS may be one of a contract's deliverable data item descriptions or have other forms of organizationally-mandated content. Typically a SRS is written by a technical writer, a systems architect, or a software programmer.

Who uses SRS documents? ›

Define who in your organization will have access to the SRS and how they should use it. This may include developers, testers, and project managers. It could also include stakeholders in other departments, including leadership teams, sales, and marketing.

What are the desirable qualities of a good SRS document? ›

Characteristics of Effective Software Requirements Specifications (SRS)
  • Complete. No requirements or necessary information should be absent. ...
  • Consistent. Consistent software requirements don't conflict with other requirements of the same type or with higher-level business, system, or user requirements. ...
  • Modifiable. ...
  • Traceable.

What is SRS with example? ›

Software Requirements Specifications, also known as SRS, is the term used to describe an in-depth description of a software product to be developed. It's considered one of the initial stages of the software development lifecycle (SDLC). Think of it like the map that points you to your finished product.

How software requirements are documented? ›

In requirement documentation in software engineering, the first crucial step is to identify all stakeholders engaged in the project, including clients, end-users, developers, testers, and project managers. Recognizing these key players ensures comprehensive coverage of perspectives and needs.

What is bad SRS document in software engineering? ›

A bad SRS will exhibit the following:

It is strongly recommended that non-safety related functions are limited to the Basic Process Control System (BPCS) and not mixed in with the SIS.

What are the disadvantages of SRS in statistics? ›

Disadvantages of simple random sampling
  • Time-consuming. ADVERTIsem*nT. ...
  • Difficult to achieve a good sample. ADVERTIsem*nT. ...
  • Do not consider heterogeneous population. ADVERTIsem*nT. ...
  • Difficult to achieve a good sample size. ...
  • Difficult to obtain a response. ...
  • Affected by non-response bias. ...
  • Not suitable for all type of researches.

What are the advantages of SRS document? ›

The SRS is used to guide developers in their understanding of the functional specifications and how the software will be designed. The document offers an overview of the system architecture, user interfaces and data structures which enable developers to build a system that meets with client expectations.

What are the advantages of a good SRS document? ›

An SRS minimizes the time and effort required by developers to achieve desired goals and also minimizes the development cost. A good SRS defines how an application will interact with system hardware, other programs and human users in a wide variety of real-world situations.

Top Articles
Latest Posts
Article information

Author: Twana Towne Ret

Last Updated:

Views: 5958

Rating: 4.3 / 5 (44 voted)

Reviews: 91% of readers found this page helpful

Author information

Name: Twana Towne Ret

Birthday: 1994-03-19

Address: Apt. 990 97439 Corwin Motorway, Port Eliseoburgh, NM 99144-2618

Phone: +5958753152963

Job: National Specialist

Hobby: Kayaking, Photography, Skydiving, Embroidery, Leather crafting, Orienteering, Cooking

Introduction: My name is Twana Towne Ret, I am a famous, talented, joyous, perfect, powerful, inquisitive, lovely person who loves writing and wants to share my knowledge and understanding with you.