Briefly, functional requirements define what a system is supposed to do, like in the case of a car, take a person from A to B, and non-functional requirements stipulate how a system is supposed to be.
Architecture characteristics covers most of the aspect of a large-scale project:
๐ญ. ๐ฆ๐ฐ๐ฎ๐น๐ฎ๐ฏ๐ถ๐น๐ถ๐๐
The ability for the system to perform and operate as the number of users or requests increases. Scalability is achievable with Horizontal or vertical scaling of the machine.
๐ฎ. ๐๐๐ฎ๐ถ๐น๐ฎ๐ฏ๐ถ๐น๐ถ๐๐
It is measured as a percentage of uptime and defines the proportion of time that a system is functional and working. Availability is affected by system errors, infrastructure problems, malicious attacks and system load.
๐ฏ. ๐๐ ๐๐ฒ๐ป๐๐ถ๐ฏ๐ถ๐น๐ถ๐๐
Extensibility measures the ability to extend a system and the effort required to implement the extension. The extension can be through adding new functionality or modifying existing functionality. The principle provides for enhancements without impairing current system functions.
๐ฐ. ๐๐ผ๐ป๐๐ถ๐๐๐ฒ๐ป๐ฐ๐
Consistency guarantees that every read returns the most recent write. This means that after the execution of every operation, the data is consistent across all the nodes, and thus all clients see the same data at the same time, no matter which node they connect to.
๐ฑ. ๐ฅ๐ฒ๐๐ถ๐น๐ถ๐ฒ๐ป๐ฐ๐
A system can gracefully handle and recover from accidental and malicious failures. Detecting failures and recovering quickly and efficiently is necessary to maintain resiliency.
๐ฒ. ๐จ๐๐ฎ๐ฏ๐ถ๐น๐ถ๐๐
Usability can be described as the capacity of a system to provide a condition for its users to perform the tasks safely, effectively, and efficiently while enjoying the experience.
๐ณ. ๐ข๐ฏ๐๐ฒ๐ฟ๐๐ฎ๐ฏ๐ถ๐น๐ถ๐๐
Observability is the ability to collect data about program execution, internal states of modules, and communication between components. To improve observability, use various logging and tracing techniques and tools.
๐ด. ๐ฆ๐ฒ๐ฐ๐๐ฟ๐ถ๐๐
Degree the software protects information and data so that people or other products or systems have the degree of data access appropriate to their types and levels of authorization. This family of characteristics includes confidentiality, integrity, nonrepudiation, accountability, and authenticity.
๐ต. ๐๐๐ฟ๐ฎ๐ฏ๐ถ๐น๐ถ๐๐
Durability is the solution ability of softwareโs serviceability and meet usersโ needs for a relatively long time.
๐ญ๐ฌ. ๐๐ด๐ถ๐น๐ถ๐๐
It has become todayโs buzzword when describing a contemporary software method. An associate agile team could be a handy team able to befitting reply to changes. Modification is what software development is highly abundant.