A software requirement is a requirement in the context of software development. The request captures the purpose and intent of a software system, as well as its (external) behavior. The task of the requirements manager is to collect the requirements and possibilities together with the stakeholders involved and to transfer them into a form that is understandable for software developers. This is formally done in the form of user stories, which are broken down into functional requirements and, with the help of a software developer, translated according to Gherkin syntax, as well as in the form of UML diagrams, which are defined in more detail by a software architect.
Requirements that are only recorded verbally, by voicemail, on sticky notes, e-mails, minutes of meetings, or similarly unstructured do not belong to the catalog of requirements of the software system, which a developer must implement. These requirements must first be recorded in a structured manner by the business analyst.
A software system sees the requirement as a black box and defines not only the purpose of the individual sub-requirements but also associated application examples from the point of view of the different user groups.
---
The software requirements must be managed in a living documentation. In order to enable traceability, version control should be used. A contact person and the associated contact details should also be known for partial requirements. An issue tracking system should also record when a request was made and amended, by which interest group and for what reason. In the case of program errors and change requests of the system, both the current state and behavior as well as the target state and behavior should be documented.
Business Requirements
Objectives resulting from the client’s business activities and market requirements. Business requirements are defined by management and marketing.
User Requirements
The requirements required for the users of the software system to be able to meet the business requirements. This is where it is defined which user groups exist, which business processes change and how for the respective users, as well as suitable metrics to capture these goals. User requirements are defined by business analysts, users or user representatives, and product managers.
Functional Requirements
Capture the behavior that a software system should possess in order to meet user requirements. Functional requirements are defined by business analysts and product managers in consultation with software development and testing.
- Project Requirements: The requirements necessary for the success of a project in order to be able to implement the functional requirements and to be able to support the product in the course of application lifecycle management (ALM). These include, for example: Hardware, Deployment Environments, Software
- Licenses for Development Tools, Premises
- Employees and training
- Documentation of the software system for users, trainings and support staff
- Quality requirements and service level agreements (SLAs)
- Legal requirements (e.g. licenses, patents, trademarks, copyright)

Challenges
Documents with software requirements can be very large and, depending on the product, can include hundreds to thousands of pages of documentation. In practice, it is impossible to formulate the requirements completely or without contradictions. Gaps and contradictions are usually only discovered during development or in production. In addition, the requirements usually change during the development of a software product.
Agile software development reduces these problems through regular communication between stakeholders, but is affected by the same effects.
Due to these challenges, it is important to ensure that communication is as precise as possible. In addition, processes must be provided to modify the requirements if necessary. In addition, the request should be automatically verifiable so that the request is consistent and consistent with the behavior of the developed software at the time of completion of the software.