A software product is commonly ranked on how user-friendly it is, and the type of features it has. Quality attributes refer to the main aspects that have an effect on system design, run-time behaviour and user experience. In order for an application to be seen as quality, it should have exceptional attributes that portray design, run-time, system and user qualities.

Design Qualities

quality concept handwritten on blackboard

Quality software is built to have good design qualities. In this case, conceptual integrity, maintainability, and re-usability make the main attributes for quality software. The conceptual integrity of software should elaborate coherence and consistency of a design.

This also includes the design of coding styles, variable naming and components or modules. Maintainability is another aspect that defines quality software; it should be flexible and be able to function in a changing environment.

Run-time Qualities

The most common run-time qualities that make quality software are availability, reliability, manageability and performance. Availability refers to the overall amount of time that the system is able to function. This can be measured by looking at the total system downtime and the period that the system is functional.

Factors such as system errors, malicious attacks and system overload, have a negative impact on availability. Quality software should be reliable, and be able to work over time. Reliability is the probability that a system will be operational as per its specifications even over time.

User Qualities

Software systems should be user-friendly to end-users. Therefore, usability describes the application’s ability to meet the consumer or user’s requirements. Quality software offers this service by being easy to navigate, and also has services for disabled users.

These attributes result in a good experience for all users. The system quality of good software should provide support to its users, and the system should offer helpful information to users. This information makes it easy to identify and resolve possible system problems faced by users.