Notes > Software Engineering > Software Quality

"Good Software" needs to be fit for its purpose i.e. it does what it is intended to do. Software has various attributes that lend towards it being good or bad.

External quality attributes are visible to anyone using the software. Reliability is an external quality attribute which can be measured during or after implementation by testing how the software product relates to its environment.

The internal quality of the software can be measured in terms of its technical attributes such as coupling and cohesion. Some may question the importance of internal quality attributes especially if the software seems to work well and the client is satisfied with it. It can be reasoned though that the internal quality attributes have an impact upon the external quality of the software. Low cohesion for example can lead to messy code which may be very hard to understand and maintain. The ability to maintain the software system is of course an important factor to be considered when determining the overall quality of the software product.

ISO 9126

The ISO 9126 is a Quality Model outlines the factors that contribute to software being good or not so good. The International Organization for Standardization (ISO) 9126 model outlines the following quality attributes:

Functionality - how well the software system caters for the client's needs

Suitability

Accuracy

Interoperability

Compliance

Security

Reliability - how capable the software system is to maintain a desired level of performance for a certain duration of time

Maturity

Recoverability

Fault Tolerance

Usability - how much effort is needed on the part of users to properly use the software system

Learnability

Understandability

Operability

Efficiency - how well the software system performs depending on the resources it requires

Time Behaviour

Resource Behaviour

Maintainability - how easily future changes can be made to the software system

Stability

Analysability

Changeability

Testability

Portability - how well the systems can be transported from one environment to another