top of page

Critical Software Quality Attributes

  • Saurabh Dhupkar
  • Sep 30, 2020
  • 2 min read

Writing good software is one thing and keeping the software in good health is another thing. Unless you have managed both these, there are very high chances that your struggle with software support and maintenance will keep on increasing. And certainly, a point will come, which is really very thought for any developer, is to see that the software which used to be your key strong point has now become your key pain area.

Nobody wants to see an application that has earned the respect of fellow humans, gets termed as 'pain area' in the later stages.


How can we avoid this?


Well, if we keep an eye on the software's health, we might be able to avoid it.


Very easy to say, right?

What exactly do we mean by monitoring the health of software ...


Let's see


There are various quality attributes defined for software [pretty long list ... hmm ?].


Believe me, not all of them are vital. I think, there are two sets of software quality attributes that are critical for the survival of any software. If the values of these attributes fall out of acceptable range, then pretty quickly it becomes difficult for software to survive.


Common Critical Software Quality Attributes

These are basically four Software Quality Attributes, that are mandatory for all software of any type to manage -

  1. Reliability

  2. Usability

  3. Performance

  4. Availability

Special Critical Software Quality Attributes

These are other Software Quality Attributes, which are 'Raison d'être' or 'Reason of Existence' of the software. For example, Traceability is vital for a version control software. Failure of Traceability will cause the app to become useless.

These attributes vary from software to software, and mostly depends on the type of software.


When any of these Critical Software Quality Attributes fall out of 'acceptable range', then software hits its retirement phase.

Let me give you an example which is simple to visualize -




Let's take the example of 'Performance', which is 'Common Critical Software Quality Attribute'. If your application becomes too slow to work with, you start thinking about getting rid of it. That's where it becomes 'Pain Area'.


So, if you are maintaining a potential pain area, I would rather suggest to you to first identify the Critical Software Quality Attributes and their acceptable ranges. Then start measuring their values. A trend analysis of these values will help you predict and 'brace yourself' well in advance.


Well, it is not just for 'Potential Pain Area's, it is essential for all... For Potential Pain Areas, it is urgent ...





Comments


Commenting has been turned off.

Saurabh Dhupkar

A research enthusiast and aspiring software architect.

Loves to design and build big systems from simplest and tiniest possible components.

 

Believes that true greatness lies in simplicity

Computer Engineer from University of Pune and Master of Technology from Birla Institute of Technology and Science, Pilani

Working as software professional since 2008

Continuously trying to contribute to subject through small scribbles which are available here.

Budding thinker who loves to look at bigger picture and think as much deep as possible.

'Coding Universe' is a scribbling pad for me to just write down and share ideas, concepts and knowledge about Software Engineering and JAVA in the form of Technical Blog.

You can get in touch with me at saurabh.dhupkar@gmail.com

© Copyright : Saurabh Dhupkar
  • Academia_edited
  • Academia_edited
  • LinkedIn
bottom of page