Demand is the most important thing, lose the function, lose the value of the customer, the software will be worthless.
However, the implementation of functionality is just the beginning of the architecture.
Architecture first comes from demand, demand-driven architecture, and then non-functional requirements reflect service level, in the face of the constraints of the objective environment, the introduction of the framework to achieve the principle, is at a higher level of demand, constraints, and principles of understanding and grasp.
Non-functional requirements can also be called quality attributes, and the non-functional requirements I understand are: performance: Response Time or latency scalability: more users, request and data processing capacity availability: 99.9% means one minute per day failure security: You can refer to the Owasp,open Web Application Security Project Disaster recovery: Business Continuity Process accessibility: www.w3.org/standards/webdesign/accessibility monitoring: Read-only view management: manipulating views Audit: Journal and virtual Currency reconciliation flexibility: Non-Technician ability to modify business rules scalability: Can do things that can't be done now maintainability: readability, sustainable development legal rules: such as privacy internationalization i18n localization i10n
I can't think of more, welcome to add.