Characteristics of a Good Software

While developing any kind of software product, the first question in any developer's mind is, “What are the qualities that a good software should have ?" Well before going into technical characteristics, I would like to state the obvious expectations one has from any software. First and foremost, a software product must meet all the requirements of the customer or end-user. Also, the cost of developing and maintaining the software should be low. The development of software should be completed in the specified time-frame.

Well these were the obvious things which are expected from any project (and software development is a project in itself). Now lets take a look at Software Quality factors. These set of factors can be easily explained by Software Quality Triangle. The three characteristics of good application software are :-
 1)  Operational Characteristics
 2)  Transition Characteristics
 3)  Revision Characteristics

Software Quality Triangle
Characteristics of a Good Software,Qualities of Good Software, Quality triangle wikipedia
Software Quality Triangle with characteristics
16 Characteristics of a Good Software

What Operational Characteristics should a software have ?

These are functionality based factors and related to 'exterior quality' of software. Various Operational Characteristics of software are :

a)  Correctness: The software which we are making should meet all the specifications stated by the customer.
b)  Usability/Learnability: The amount of efforts or time required to learn how to use the software should be less. This makes the software user-friendly even for IT-illiterate people.
c)  Integrity : Just like medicines have side-effects, in the same way a software may have a side-effect i.e. it may affect the working of another application. But a quality software should not have side effects.
d)   Reliability : The software product should not have any defects. Not only this, it shouldn't fail while execution.
e)   Efficiency : This characteristic relates to the way software uses the available resources. The software should make effective use of the storage space and execute command as per desired timing requirements.
f)   Security : With the increase in security threats nowadays, this factor is gaining importance. The software shouldn't have ill effects on data / hardware. Proper measures should be taken to keep data secure from external threats.
g)  Safety : The software should not be hazardous to the environment/life.

What are the Revision Characteristics of software ?

These engineering based factors of the relate to 'interior quality' of the software like efficiency, documentation and structure. These factors should be in-build in any good software. Various Revision Characteristics of software are :-

a) Maintainability : Maintenance of the software should be easy for any kind of user.
b) Flexibility : Changes in the software should be easy to make.
c) Extensibility : It should be easy to increase the functions performed by it.
d) Scalability : It should be very easy to upgrade it for more work(or for more number of users).
e) Testability : Testing the software should be easy.
f) Modularity : Any software is said to made of units and modules which are independent of each other. These modules are then integrated to make the final software. If the software is divided into separate independent parts that can be modified, tested separately, it has high modularity.

Transition Characteristics of the software :

a) Interoperability : Interoperability is the ability of software to exchange information with other applications and make use of information transparently.
b) Reusability : If we are able to use the software code with some modifications for different purpose then we call software to be reusable.
c)Portability : The ability of software to perform same functions across all environments and platforms, demonstrate its portability.

Importance of any of these factors varies from application to application. In systems where human life is at stake, integrity and reliability factors must be given prime importance. In any business related application usability and maintainability are key factors to be considered. Always remember in Software Engineering, quality of software is everything, therefore try to deliver a product which has all these characteristics and qualities. Read Grievances of A Software (Just 4 Fun)

Copyright ©

Difference between testing and debugging
Advantages and Disadvantages of Ring Topology
Client Server Network : Advantages and Disadvantages
How to make a glass painting
Client Server Architectures


  1. fabulously written. i got all the points. its for my friend's seminar. thank you.

  2. Awesome..Thanks for this.. :)