Functional requirements capture the intended behavior of the system. This behavior may be expressed as
services, tasks, or functions the system is required to perform.
A non-functional requirement is a specification that describes the system’s operational capabilities and constraints that enhance its functionality. These may be speed, security, reliability, extensibility, flexibility, etc.