A requirement is an aspect that the proposed system must make or a restriction in the development of the system. There are two types of requirements classification, they are: Functional Requirements (RF) and Non-Functional Requirements (RNF).
- Functional requirements refer to what the system should do, that is, its functions and information.
- Non-functional requirements refer to the criteria that qualify the functional requirements.
Therefore, functional requirements are concerned with the functionality and services of the system. That is, the functions that the system must provide to the customer, and how the system will behave in certain situations.
Below are some examples of functional requirements:
- [RF001] The system must register professional doctors (entry)
- [RF002] The system should issue a customer report (outbound)
- [RF003] The System must pass a customer from the situation “in consultation” to “consulted” when the customer finishes being served (change of state)
- [RF004] The customer can consult his data in the system
Non-functional requirements are still classified into three types, they are: Final Product Requirements, Organizational Requirements and External Requirements.
- Final Product Requirements refer to how the product should behave, that is, its speed of execution, reliability, etc.
- Organizational requirements refer to the consequence of organizational policies and procedures that must be followed.
- External requirements refer to factors external to the system and the development process such as legislation.
Below are some examples of non-functional requirements:
- [RNF001] The system should print the report within 5 seconds.
- [RNF002] All reports must follow the reporting standard specified by sector XYZ.
- [RNF003] The system must be implemented in Java.
Usability: Indicates the training time for a user to become productive, desired duration time for a given operation in the system and online Help, user documentation and training material.
Performance: Indicates the Response Time for a transaction, Throughput, Capacity, Partial Operation, and Use of resources: memory, disk space, communication, etc.
In addition, software requirements specification have some central objectives such as establishing and maintaining agreement with customers and other stakeholders about what the system should do. It should offer system developers, designers and testers. It can define system boundaries, system defining, what should be included and what should not be part of the system, providing a basis for estimating, the cost and time of development of the system. And finally defining a user interface for the system. For a successful software project, the developing team must have the proper specification.