Non functional Attributes (Quality Attributes)
infrastructure services can be well defined as a function, like providing disk space, or routing network messages.
Functional Attributes
Non-functional attributes, on the other hand, describe the qualitative behavior of a system, rather than specific functionalities.
Examples of non-functional attributes are:
Availability
Scalability
Reliability
Stability
Testability
Recoverability
NFAs important for the successful implementation and use of an IT infrastructure,
but in projects, they rarely get the same attention as the functional services
When NFAs are not meant they have a direct impact on the business
Slow to deploy features to customers
Cannot maintain and users experience more bugs
Regulations cannot be met, and fines and reputational damage occurs
User experience is slow, buggy or outdated, and users will leave to competitors (clients or employees)
NFAs are functional indeed, but they are not directly related to the primary functionalities of a system
Better term would be quality attributes
This leads to important stakeholders of a business (ones with money and influence) to not have the same feelings about NFAs and focus more on functionality.
They conisder NFAs as hygiene factor and taken for granted
They dont mention them, or state them explicitly
But they have expectations of them
Non functional Requirements (NFRs)
Architects and engineers job is to find out these NFRs
the acceptance of a system is largely dependent on the implemented non-functional requirements.
A website can be very beautiful and functional, but if loading the site (performance, a non-functional requirement) takes 30 seconds, most customers are gone!
A large part of the budget for building an infrastructure is usually spent in fulfilling non-functional requirements that are not always clearly defined
Infrastructure delivers manyof the NFRs
Examples
An application using an IT infrastructure built with several single points of failure will probably not reach very high availability figures, no matter how well the application is built
when the IT infrastructure is not designed to be scalable, the applications built upon it cannot introduce scalability as an afterthought. Will need to redesign and reimplement a new infrastructure which can be costly
When an IT infrastructure is setup to be highly available, a badly designed application can make the end result highly unreliable
security flaws on the processes level can undo all
not unusual to have conflicting non-functional requirements in a system
Example
security versus user friendliness.
Users expect highly secured systems, but really don’t want to be bothered by password changes, smart card authentication, and other annoying security measures.
performance and cost.
Getting a high-performance system usually means getting more and faster hardware, and using strict implementation rules (which takes time to do and dependent on needs high cost engineers)
Last updated
Was this helpful?