A functional requirement is a requirement that specifies an action performed by a system without considering physical constraints. Non-functional requirement specifies system properties such as environmental and implementation constraints, performance, platform dependencies,
maintainability, extensibility, reliability etc. [1].