All of these
are required non-functional requirement of any system, but do any all these
criteria have the same priority on each layer of the system? The simple answer
in no, as each layer are design to server different type of functionality in an
application and the criteria for their design are different, so which one should
be given more priority and where?
As I see the
priority for these nonfunctional requirement as follow
Presentation Layer, as this layer is near to the user
all the time, Performance should
be the first criteria, the performance of the page load/form load in web/desktop
give the first and lasting impression to the user, any application component
that is near to the user need to have performance and #1 criteria.
Business
Layer, this layer is the most volatile layer, this layer is introduced
to handle the changing nature of the business and should have Extensibility as
#1 criteria.
Data
Layer, this is a static layer and most need to have the Maintainability as
#1 criteria, data resides here and that need to be taken care well, all the
backup recovery and maintainability should be used a design
consideration.
These are just
few guidelines that I believe help in design a better system, this doesn’t mean
that other criteria on each layer are not required, they are but few of them
have greater priority and should be given first thought while architecting any
system!
-Pramod