1,2Department of Computer Science, University of Agriculture, Faisalabad, Pakistan
Software quality models are one of the best means for the support of software quality management system. Since more than 30 years, several quality models have been offered and used with fluctuating mark of success. To be particular, with the idea of defining the multidimensional content of software quality management system a variety of qualitative models have been presented by which different aspects of this topic have been tried to be investigated properly. By investigating the trends and evolution of software quality models and identifying differences in the approaches and judgment outcomes, the results indicate significant progress in the development of software quality models. Many definitions and models of software quality are studied and a competitive conclusion is drawn. It carries on with a review of the quality models and comparison between them.
The main aspects of the quality at which every software engineer should focus himself are reviewed and compared  in this paper. Now a days, in modern age of technology large firms and companies spend millions and billions of dollars at the IT projects to get precise and efficient software services. Our first point is, what is meant by quality  in software products. What should we do to a software product to decide it as a quality product, simply a good product or name it as a failed product. Many papers have been published about the causes of project failure e.g. . Several models and many success factors are presented for effective and precise management of projects to make up the quality of products . This paper is taking a review by examining factors and points discussed in different models like Boehm, McCall and many others. We also illustrates their impact on quality of the software product.
Secondly, many models are presented by different researchers, organizations and scientists. Most of the scientists followed the basic models of software quality presented by the McCall, Boehm, and FURPS. On the basis of these models IEEE and ISO presented new models and also did many additions like ISO 9126. This paper emphasizes all these models of quality factors and explains a comparison between them. How to measure the quality of software and which scales are defined to measure it, are also mentioned in the paper. At the end, effect of quality at the cost and demand of software will also be discussed.
We have reviewed and compared the following software quality models in this paper:
- McCall’s software Quality Model
- Boehm’s software Quality Model
- FURPS software Quality Model
- IEEE software Quality Model
- ISO 9126 software Quality Model
A quality model is mostly stated as a set of characteristics like document clarity, design trace-ability, integrity, program reliability, test integrity and relationships among them which truly provide the foundation for identifying the requirements of quality and calculating quality. It can be identified as defined set of properties that are required for a product to meet stated purposes. The advantage of quality model is determined by the decomposition of main objects like product, process or organization in the list of its properties and characteristics. It is applicable for forecasting, guaranteeing and authenticating the accomplishment of a well-defined goal.
- Quality Defined
- As the quality of any object/thing in universe can be defined as:
“The measure of standard of any object/thing against the other objects/things of same kind is known as the quality of that object/thing.”
“It can also be defined as the degree of superiority or inferiority of something as compare to the other things of same type.”
For example the quality of a computer depends on the speed of the computer, reliability of the computer, consistency of the computer and many other factors like that. Similarly, the dictionary definitions of quality in computing largely concentrated on excellence and improvement in product International Standards(IS) professional’s should focus.
- Quality according to ANSI Standard can be define as
“Quality is the sum of characteristics and features of a software product or a service that bears on its capacity to fulfill the given needs”
- Quality according to IEEE Standard (IEEE Std. 729-1983)
- “All the characteristics and features of a software product which stand on its capacity to fulfill the particular requirements : for example, follow to conditions.
- The grade to which software keeps a wanted mixture of features.
- The mark at which a consumer observes that software meets his mutual outlooks.
- The multiple characteristics of software that define the unit according to which the software product in use will meet the hopes of the customer”.
- General Kinds of the Models
Now a days, most of the quality models are hierarchical models which are based on the basic principles of the quality and related metrics . All of these models are classified on the basis of the means and ways according to which they have been generated. These are categorized into the following three types.
- The assumed model is based on the hypothesis relationships among variables used.
- The model based on data-driven by a statistical analysis of related matrix in model.
- This model is the mutual effect of hunches which are used to determine the simple type of the model and secondly the Data analysis used to formulate the constants of the model along with the variable values.
- Different Quality Models
4.1 McCall’s Quality Model
This was the first ever quality model presented by the Jim McCall in year 1977 which is also called General Electronic Model . Before presenting this model there was no any authentic model to review or check the quality of the product. This model provides a set of the basic characteristics to measure the quality of product.
Figure 1. McCall’s quality model and all of its components
Three major perceptions of the McCall model for declaring and recognizing the quality of the product are presented following:
- Product Operation: The degree of any product that how much quickly and easily it can be understood, it includes, reliability, correctness, efficiency, integrity and usability criteria.
- Product Revision: it covers the maintainability, testability, changeability, flexibility and debugging of the product.
- Product Transition: it deals with the adaptability with the environment, portability, reusability and interoperability of the product.
4.2Boehm’s Quality Model
Boehm’s software quality model  offers more attributes and characteristics of product than McCall’s quality model. It was presented by Barry W. Boehm in 1978. Boehm’s model is almost similar to the McCall Quality Model because it also presents a hierarchical quality model designed about high-level, intermediate level and primitive characteristics, each of them plays an important role in the overall quality level. All above stated levels represent the questions of buyer, the quality factor which can affect or represent the quality of product and offers the basis for describing qualities metrics.
Figure 2. Boehm’s quality model and all of its components
Almost both Boehm’s and McCall’s models similar to some extent .The difference in these two models is that McCall’s model mainly centers on the accurate measurement of the high-level characteristics “As-is utility”. On other hand Boehm’s quality model is dependent on a broader range of characteristics with a stretched and detailed emphasis on primarily maintainability.
4.3 FURPS Quality Model
FURPS model was presented after the McCall’s and Boehm’s model. It was firstly presented by Robert Grady and Hewlett Packard Co. the abbreviation of word FURPS stands for Functionality, Usability, Reliability, Performance and Supportability of the product under development .
- Functionality: Functionality contains combination of characteristics, security, features and capabilities.
- Usability: This section covers the factors which affect usability of the product like Human Factors, Aesthetic, material of training and documentation of the user.
- Reliability: It ensures the reliability and integrity factors like Recovery to failures Time among failures, Frequency and severity of failures.
- Performance: Enforces conditions on practical necessities like speed, availability, efficiency, throughput, accuracy, resource usage, response time and recovery time.
- Supportability: This section contains the components like Extensibility, Adaptability, Maintainability, Compatibility, Configurability, Install ability, Serviceability and Localizability.
Figure 3. FURPS quality model and all of its components
4.4 IEEE Quality Model
Institute of Electrical and Electronics Engineers (IEEE) . It is an international organization which also provided many standard models for the software product quality and maintenance. It presented, many standards of software quality assurance and verification/validation of the software product. The abstract figure of IEEE software quality models is given forward:
Figure 4. IEEE quality model and all of its components
This model illustrates several ways for the measurement of qualitative factors and reflects factors like Efficiency, Functionality, Maintainability, Portability, Reliability and Usability.
Efficiency: It includes the characters like time and resources.
Reliability: It contains the factors and the characteristics which are used to increase and maintain the maturity and reliability by fault tolerance and Recoverability.
Functionality: It includes characteristics like accuracy, compatibility, completeness, security and interoperability.
Supportability: It helps in maintaining the testability, extendibility and correctability.
Portability: It makes the software portable by ensuring characteristics like hardware independency, software independency, adaptability, install-ability and reusability.
Usability: It ensures the comprehensibility, communicativeness and ease of learning.
4.5 ISO 9126 Quality Model
ISO 9126   is presented by the international standard organization. It is one of the most implemented and used quality model for maintaining the quality of the software product. This modern model is based at the previous models like McCall, Boehm, FURPS and many other old versions of the ISO like ISO 9000 and etc.
Figure 5. ISO 9126 quality model and all of its components
This version of ISO also takes account of functionality as parameter and include identification of both internal quality characteristics and external quality characteristics of the products. The characteristics new version of this model  contains are Efficiency, Maintainability, Functionality, Reliability, Portability and Usability.
Efficiency: It contains the characters which affects the throughput in a given time and resources used.
Reliability: It includes the Maturity, Fault Tolerance and Recoverability.
Functionality: It contains many essential characteristics which are necessary for the proper functionality of the product like suitability, accurateness, interoperability, compliance and security.
Maintainability: It helps in maintaining the changeability, stability and testability by using analyzability.
Portability: It makes the software more dynamic and portable by ensuring characteristics like adaptability, install-ability, conformance and replaceability.
Usability: It makes sour that the learnability and operability of the software product should be easy and simple.
5. Comparison of Models
According to the above study and figures we did a comparison between all of the models to justify our competitive study.
McCall Model: according to the reference  and the figure 1 of McCall model we can observe it can say following characteristics are included in this model correctness, reliability, efficiency, integrity, usability, flexibility, maintainability, testability, portability, interpretability and reusability.
Boehm’s Model: As shown in the above figure 2 and the literature the characteristics owned by the Boehm’s model  are device independence, self-contentedness, understandability, modifiability, testability, human engineering, efficiency and reliability.
FURPS Model: FURPS is the combination of functionality, usability, reliability, performance and supportability these are further classified into security, capabilities, availability, efficiency, throughput, accuracy, resource, response time, integrity, failures, human factors, documentation, extensibility, maintainability, compatibility, install ability and serviceability. All these characteristics are mentioned in reference no. .
IEEE Model: As we mentioned above the IEEE model is consist of the external and internal characteristics like functionality, reliability, supportability, usability, efficiency and portability these external characteristics are sub divided into internal characteristics like time, resources, error tolerance, availability, completeness, accuracy, security, compatibility, interoperability, testability, correctability, hardware independence, software independence, installability, reusability, usability, comprehensibility, ease of learning, extensibility and communicativeness .
ISO 9126 Model: ISO 9126 is the combination of all the models it includes all the best characteristics which are necessary for building up a satisfactory product. The main characteristics of the ISO model are functionality, reliability, maintainability, usability, efficiency and portability. The derived sub characteristics form those main characteristics are suitability, accurateness, interoperability, compliance, security, maturity, fault tolerance, recoverability, understandability, learnability, operability, time behaviour, resource behaviour, analyzability, changeability, stability, testability, adaptability, installability, conformance and replaceability.
We have studied several types of software quality models which are different on the basis of their characteristics and methodologies. Really it was a great task and challenge for us to conclude which model is the best and which we should prefer to implement in developing a good software product. In this paper we have also made a comparison table (above) to understand the real differences in the models. This table also shows which features and characteristic a model contains or lacks. We have studied and compared the following models.
McCall’s Model: In McCall’s quality model, the quality is mostly measured on the basis of judgment of the person(s) or the users by answering the questions given in a questioner. (Yes or no questions).
Boehm’s Model: While Boehm concentrates on the levels based upon the characteristics of the product.
FURPS: The FURPS quality model is made and stretched to be cast-off in the IBM Rational Software Company. So, it is a special-purpose quality model, which is presented, for the benefits and betterment of that company.
IEEE: It is also a good model to implement. It uses different measurement ways and standards like software quality assurance to maintain the quality of the product.
ISO 9126: The ISO 9126 quality model is the most useful model it has been figured on the basis of international agreements and accordance from all the countries which are members of the ISO organization.
In result of the comparative study ISO 9126 is best model. But it depends at your software product and the organizations that which model is best for use. It is a satisfactory and successful completion we hope it help the new users to understand the quality models properly and easily.
 Khomh, F., Haderer, N. and Antoniol, G. (2009). SQUAD: Software Quality Understanding through the Analysis of Design, Reverse Engineering, WCRE’09, 16th working conference
Dubey, S.K., Gosh, S. and Rana, A. (2012). Comparison of Software Quality Models: An Analytical Approach. International Journal of
Emerging Technology and Advanced Engineering, ISSN 2250-2459, Vol. 2, No. 2, pp. 111-119.
Robson, C. (2002). Real world research: a resource for social scientists and practitioner-researchers, Blackwell Publisher Ltd.
Sharma, K. and Sharma, K. (2013). Comparison of various software quality products, Proc. of the Intl. Conf. on Recent Trends in Computing and Communication Engineering, RTCCE 2013
Sharma, A., Kumar, R. and Grover, P. S. (2008). Estimation of Quality for software components: an empirical approach, ACM SIGSOFT Software Engineering Notes, 33(6), pp. 1-10
IEEE STD 729. (1983). IEEE Standard Glossary of the Software Engineering Terminology
 Pressman, R. S. (2012). Software Engineering a practitioner’s Approach 7th Edition. McGraw-Hill, Inc.
McCall J. A., Richards, P. K. and Walters, G. F. (1977). Factors in Software Quality, Vol. 1, 2 and 3, AD/A 049-014/015/055, National Tech. Information service, Springfield.
 Boehm, B. W., Brown, J. R., and Lipow, M. (1976). Quantitative evaluation of software quality, International Conference on Software Engineering, Proceedings of the 2nd international conference on Software Engineering (2nd):592-605.
Boehm, B. W., Brown, J. R. and Kaspar, J. R. (1978).Characteristics of software Quality, TRW Series of software Technology, Amsterdam, North Holland.
Ghezzi, Jazayeri, C. M. and Mandrioli, D. (1991). Fundamental of software Engineering, Prentice-Hall, NJ, USA.
 IEEE (1993). Standard for Software Maintenance, Software Engineering Standards Subcommittee of the IEEE Computer Society.
 ISO/IEC TR 9126-3. (2002). Software Engineering Product Quality.
ISO 9126. (2000)E. Standard ISO/IEC, Informatio