CHARACTERISTICS OF GOOD
SOFTWARE
While developing any kind of software product, the first question in any
developer's mind is, “What are the qualities that 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
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.
Source: http://www.ianswer4u.com/2011/10/characteristics-of-good-
software.html#axzz3QrxIqkfR