Quantifying Non-Funcational Requirments of Service Oriented Applications

A Classification and Quantification of Non-Funcational Requirments 

A non-functional requirements are those which are not related to functionality of the system and often ignored to quantify for software projects. In this article I will discuss the importance of non-functional requirements quantification for service oriented architecture. Some of services i.e. weather forecast services, Money Transfer APIs, Amazon Web Services and Google web services require many non-functional requirements for example response time, load time, HIPA compliance rules, Legislative requirements, Security, Integrity and accessibility.

There was an age of static web where we had only static web pages then world moved towards the web application i.e. online HRIS, Online Banking, Online gaming applications. Now is the age of web application+ Web services. Web application interacting with each other through web services

Quantifying non-functional requirements are very important for clients as well as for successful running of any business. For example security aspect in online money transfer system (MTS) transaction API is a non-functional requirement but we may

include that to functional requirement if client has ask for, if not we may cover in non-functional requirements

Much work is done on non-functional requirements in literature, as requirements are written in natural languages and natural languages are ambiguous, one requirement can be interpreted in different ways. For example.

“Stop not run”

First interpretation

“Stop, not run”

Second interpretation

“Stop not, run”

I have quantified some of non-functional requirements

# IDNon-Quantified RequirementsQuantified Requirements
1Req001System should be available to user all the timeOur system should have 99.9% up time
2Req002System should response in minimum timeSystem response time or page load time should be 1second/page on average
3Req003User should not be able to try different password many   times for security reasonsUser with 3 unsuccessful password attempt should be shown captcha
4Req004User should be able to see his information in secure waySocial Security Number (SSN) and Password should be encrypted and information should be integrated.
5Req005System should ask to user for login again after some time   inactivityAfter 10 minutes of inactivity system should prompt to user for login again

I have identified and classified non-functional requirements which are shown in given below picture

Our web applications or business should compliant to government rules or regulations, for example for healthcare system HIPA compliance rules should be followed, as protecting the patient information and information visibility to concern parties only is the mandatory requirement.

Apparently it seems that government is putting restriction on our business but government is the mother of all security concerns. Government is responsible for well-being of every citizen of the country. Government rules and regulations are at the top then we have company regulations, development constraints, QOS, Software interoperability etc.

Quality of Service

Security:

Services should be secure from external attacks. Security should be built in the code which developers write. Hackers on internet are trying and launching different types of attacks and financial applications are at their hit list.

Safety:

Safety is important in mission critical systems. Human mission to mars and beyond is one example where we many not only care about the many million dollar shuttle and we may do extra care about our expensive human resources

Availability:

If we put load on services and they become un-available it will be major loss to business with growing clients. Software applications are used in stock market, data should be available to user all the times as un-availability of only 1 minute can create million dollar finical loss to business.

Development Constraint

Every software have development constrains which are related to cost, deadline, maintainability etc., as these are non-functional requirements and have greater impact on software product or services. For example if we fix and quantify the cost then requirement becomes variable and if we fix and quantify the requirement then cost becomes variable.

Architectural Constraint

Software architecture whether it is service based or web base or desktop base have some constraints which are interoperability, installation and distribution etc. , these constraints should be discuss with client before the development of services.

Analysis and Conclusion

Quantifying non-functional requirement for services is important as it is said that if we cannot measure, we cannot control it. So quantifiable measuring is important for controlling and monitoring the non-functional requirements. Sometimes client do not speak for write the quantified requirements, in this case we should interpret in quantifiable way and should discuss with client for agreement.

As in future each project should have documented quantified non-functional requirements, similar as we have functional requirements. Sometimes non-functional requirements have more importance than its counterpart functional requirement, so ignorance can lead to dissatisfied customer and legal penalty. As an IT expert we should develop quality software on which customer can trust and have faith on it.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: