One of my YouTube subscribers asked for an explanation of difference between functional and system requirements so I expanded on a previous post about business and functional requirements to also include an explanation of non-functional (system) requirements.
Business vs. Functional Requirements vs. Non-Functional Requirements
Business Requirements document WHAT the business need is.
Functional requirements further describe HOW the business requirements should be accomplished.
- Accept a customer payment
- Accept payment via Web
- Accept payment via Phone
- Accept payment via Mail
Why do we not include how the process is performed in business requirements?
- You may end up going down the wrong path for a solution
- You don’t want to limit yourself to what the solution could be
A technical/system (non-functional) requirement is a requirement that describes specifically how the business problem will be solved. It reflects the view from the technical world.
- Hardware descriptions – Are there specific types or brands of hardware that must be used?
- Software descriptions – What development tools will be used, what programming language?
- Database design and data conversion requirements
- Design flows – Diagrams and descriptions that depict how programs and other system components interface with each other.
- Programming considerations – Creating reusable modules, following standard programming naming conventions, using consistent call sequences.
- Interface requirements describe connections between this system and other existing systems. These include interfaces, and communication mechanisms for hardware and other software systems.