As with functional requirements, when defining the nonfunctional requirements or constraints, they should be clearly stated and specified. Define each constraint individually; do not combine multiple nonfunctional requirements into a single constraint.
Currently, HP DL380 servers are used. The infrastructure team is familiar with the management and maintenance of these servers and wants to continue using them.
This statement does not identify something the design must do. It is placing a constraint on the design by providing a specific type of hardware that should be used. The following is an example of the constraint that can be formed from this statement:
- HP DL380 servers should be used for compute resources
Budgetary constraints affect nearly all the projects. There will likely be a limit on the amount of money a company will want to spend to accomplish a goal.
During the design discovery, the following budget was identified for this project: there is an approved project budget of $200,000.
This budget constraint can simply be stated as follows: a project budget of $200,000.
Operational constraints are also common. Often, there will be existing processes or policies in place that will need to be factored into the design. Often, you will need to accommodate the existing monitoring and management applications in the design. An example of an operational requirement is as follows: server logs are auditable and must be retained for 6 months. All logs should also be sent to a central syslog server that is already in place.
Here, a functional and nonfunctional requirement can be identified. The functional requirement is that the server logs are auditable and must be retained for 6 months. This functional requirement defines something the design must do, but there is also a constraint on how the design must accomplish this, and that is by using syslog to send logs to a central server. Based on this information, the constraint is as follows: syslog should be used to send server logs to an existing central syslog server.