Software Quality Factors

Thilina Weerasinghe
4 min readJun 21, 2022

In software development quality assurance is very important thing. Quality of software directly affect for software Engineers, Developers and Users. Because of that software quality factors are very essential for a develop quality software. These factors are important measure of the quality of software and being a good indicator of the need for software development and maintenance. There are soo many factors that affect the quality of the software In this article I’m gong to discuss about these software quality factors.

When we discuss about software quality factors can’t miss-out software quality factor models. There are many software quality factor models. The classic model of software quality factors, introduced by McCall in 1977. Later Similarly, models to similar McCall model were suggested by Deutsch and Willis and by Evans and Marciniak. But these models not much different from McCall’s model. In software requirement The McCall factor model provides a practical, up-to-date method for classifying software requirement.

McCall’s Factor Model

In this model we can Classify software requirements into software quality factors. There are 11 requirements divided into software quality factors. The 11 factors are grouped into three main categories there are product operation, product revision, and product transition factors.

McCall’s factor model tree
McCall’s factor model tree

Product operation factors:

Correctness, Reliability, Efficiency, Integrity, Usability.

Product revision factors:

Maintainability, Flexibility, Testability.

Product transition factors:

Portability, Reusability, Interoperability.

Product operation factors

Product operation factors includes five software requirements. These requirements directly affect to the software operations such as operational performance, ease of usage and etc. These 5 factors help to provide a better user experience to users.

Correctness

Correctness means a program satisfy all its specifications. Correctness is the capability of software to perform the operations that were designed to perform.

In the correctness consider what are the things need to output, Accuracy of output ,Completeness of output information , Up-to-date of the information and Availability of the information

Reliability

Reliability means a program capable to be maintained so that it can perform its exact function. Reliability requirements deal with software product failure.

Efficiency

Efficiency requirements deal with the computer resources that include in a system to complete its functions.

Integrity

Integrity requirements deal with the software system security. This hepl to prevent access to unauthorized persons, to distinguish between the majority of personnel allowed to see the information and a limited group who will be allowed to add and change data in a system.

Usability

Usability means the requirements for staff to execute the software-based system and a new staff member training on this system. And usability deal with the quality of a user’s experience when interacting with products and systems.

Product revision factors

Product revision factors includes three software quality factors. These are Maintainability, Flexibility and Testability. These requirements are required for testing and maintenance of the software. They provide ease of maintenance, flexibility and testing effort to support the software to be functional according to the needs and requirements of the user in the future.

Maintainability

Maintainability considers the efforts that will be needed by users and maintenance personnel to identify the reasons for software failures, to correct the failures, and to verify the success of the corrections.

Flexibility

Flexibility means capabilities and effort needed to improve an operational software program.

Testability

Testability means effort and capabilities required to verify a software system to ensure software meets the specified requirements. Testability requirements deal with the testing of an information system as well as with its operation.

Product transition factors

Product transition factors includes three software quality factors. There are Portability, Reusability and Interoperability. That allows the software to adapt to the change of environments in the new platform or technology from the used platform or technology.

Portability

Portability means software program adaptation with different platforms and different environments continue using the same software. EX: different operating systems , different hardware.

Reusability

Reusability requirements deal with the use of software modules originally designed for one project in a new software project currently being developed.

Interoperability

Interoperability requirements is , the effort required to to integrate two systems with one another. EX: the firmware of the production machinery and testing equipment interfaces with the production control software.

Qualify factors are important for both developers and clients for develop quality software system and give very smooth and quality service for users. Some quality factors are mostly important for developers side to easily develop applications. Reusability, Portability , Verifiability are the examples for that. Sometimes that quality factors not include in the client’s requirements document because they don’t want to know about these things and normal (client) people hard to understand about these quality factors and no need. But for developers these things are very important.

In the beginning of the article I mentioned about McCall’s factor model and about alternative models factor models this table shows the comparison.

As I mentioned before Software Quality Factors are very important factors for develop a quality software like relationship between tree and roots.

--

--