Comparison of Software Quality Models - An Analytical Approach
Comparison of Software Quality Models - An Analytical Approach
Comparison of Software Quality Models - An Analytical Approach
Amity University, Sec-125, NOIDA, India Amity University, Sec-125, NOIDA, India 3 Amity University, Sec-125, NOIDA, India
2
Abstract With the objective of presenting qualitative software system most of the software producers have endeavoured and infact this is their main purpose. Software quality is having multi-dimensional content which may be distinguished and measured easily. To be specific, with the idea of determining the multidimensional content in a more exact pattern various qualitative models have been presented by virtue of which different aspects of this matter have been attempted to be investigated properly. Practically as because there are existences of different models which have used different expressions the comprehension of this basic content have become to some extent hard or difficult. Attempts have been made in this particular paper to introduce some models that have been mentioned and more clearly analysis the qualitative characteristics and side-by-side determine the software quality along with the analytical comparison of these models. This paper may serve the purpose of a reference for investigating software quality and its related models. KeywordsQuality, Models, Analysis, System
I. INTRODUCTION Software quality plays an important role in success of the overall software system. So it is considered as a very important aspect for the developers, users and project managers. Software quality is the extent to which an industry-defined set of desirable features are incorporated into a product so as to enhance its lifetime performance [11]. For any software system there must be following three specifications such as functional specification (what system is to do), quality specification (how well the functions are to operate), resource specification (how much is to be spent on the system). Quality comprises all characteristics and significant features of a product or an activity which relate to the satisfying of given requirements (German Industry Standard DIN 55350 Part 11).
Quality is the total of features and characteristics of a product or a service that bears on its ability to satisfy the given needs (ANSI/ASQC A3/1978). Software quality has been categorized into two parts by Deutsch et al. [8] as software procedure quality and software product quality. Software engineering related elements like technology, tools, people, organisation and equipment were used in software procedure quality. However, software product quality consists of certain aspects like document clarity and integrity, design trace-ability, program reliability and test integrity as its basic characteristics. A quality model is usually defined as a set of characteristics and relationships between them which actually provide the basis for specifying the requirements of quality and evaluating quality [20]. It is also defined as a structured set of properties that are needed for an object of a class to meet defined purposes [12]. The benefit of quality model is given by decomposition of valuable object like process, product or organisation in the list of its characteristic/subcharacteristics measures. It is applicable for predicting, assuring and verifying the achievement of a defined goal. Quality, apart from describing and measuring the functional aspects of software also describes the extra functional properties such as how system is built and how it performs. This paper describes various quality models and their analytical comparison, determines software qualification and its qualitative characteristics more clearly. Different software quality models were proposed for software applications by various researchers. The ISO/IEC 91261[18] model which actually incorporates the findings of various other models i.e. Mc Call[31], Boehm[4], Dromey[9] etc. has been considered as the most prominent model and this has been widely accepted and recognised as a basic model in field of industry and research.
111
Reliability Efficiency
Flexibility
D. Ghezzi Model: Ghezzi C. et al. [14] state that internal qualities deal with the structure of software which helps the software developers to achieve those external qualities for which software users care a lot and also provided both the internal and external qualities of software which are Accuracy, Flexibility, Integrity, Maintainability, Portability, Reliability, Reusability and Usability.
Software Quality
Efficiency
Serviceability Installability
E. IEEE Model: IEEE [17] is basically standard for software maintenance to provide a qualitative model. In this standard an iterative process for management and execution of software maintenance activities has been described. Other standards like software quality assurance, verification and validation, software configuration management in which associated processes (external processes) are defined. This model shows various measurement ways of qualitative factors and represents factors such as Efficiency, Functionality, Maintainability, Portability, Reliability and Usability. F. Dromeys Quality Model: Dromey G. R. [9] quality model is based on evaluation criteria. In other words, it aims at evaluating the quality of the product when each software product has different quality then the other. 113
Localizability
This model helps in predicting defects and indicates the properties that were violated in order to create defects. This model is designed on the relationship between quality attributes and sub-attributes between software properties and software quality attributes. G. SATCs Quality Model: Software Assurance Technology Center (SATC) Hyatt L. E. et al. [16] which is engaged for NASA with the objective of improving the software quality is actually helping the software managers in establishing metrics programs which may meet their basic needs with minimum
Flexibility
costs and it is also interpreting the resulting metrics in the context of the supported projects. The SATC helps in defining and testing a quality model for software by using the results of these metric programs and discussions with the projects as its basis. The SATCs quality model defines a set of goals related to the software product and process attributes following the structure of the ISO 9126-1 software quality model. H. ISO 9126-1 Quality Model: ISO 9126-1 [18] quality model has two main parts consisting of Internal and External Quality Attributes and Quality in Use Attributes. The Internal quality attributes refers to the properties of the system that can be evaluated without executing it while External quality attributes refers to the system properties that may be evaluated by observing the system during its execution. The quality in use attributes refers to the properties of the system that are experienced by the users of the system when the system is in operable condition and also during its maintenance. The characteristics of this model are Efficiency, Functionality, Maintainability, Portability, Reliability and Usability. I. QMOOD: Bansiya et al. [3] proposed a hierarchical Quality Model for Object-Oriented Design (QMOOD) which extends Dromeys quality model methodology and involves four levels as follows:
i.
ii.
Identifying design quality characteristics:-The set of design quality attributes that were used in QMOOD to describe the characteristics of object-oriented systems are functionality, effectiveness, understand-ability, extendibility, reusability and flexibility. Identifying object-oriented design properties:-Design properties can be determined by examining the internal and external structure, functionality of design components, attributes, methods and classes.
114
Suitability Accuracy
Internal Implementation
Contextual
Functionality Security
Reliability Recoverability
iii.
iv.
The structural and object-oriented set of design properties that were used in QMOOD are design size, hierarchies, abstraction, encapsulation, coupling, cohesion, composition, inheritance, polymorphism messaging, complexity. Identifying object-oriented design metrics:-The various object-oriented design metrics are design size in classes (DSC), Number of Hierarchies (NOH), Average Number of Ancestors (ANA), Data Access Metric (DAM), Direct Class Coupling (DCC), Cohesion among Methods of class (CAM), Measure of Aggregation (MOA), Measure of functional Abstraction (MFA), Number of Polymorphic methods (NOP), Class Interface Size (CIS), Number of Methods (NOM). Identifying object-oriented design properties:-The design components were identified to determine the architecture of object-oriented designs such as objects, classes, generalization-specialization structures, class hierarchies. This model identified the paradigm (e.g. polymorphism, inheritance, data abstraction etc.) and also introduces a set of new object-oriented metrics.
Understand ability Learnability Usability Operability Time behavior Efficiency Resource Behavior
Maintainability
J. Other Quality Models: Kazman et al. [25] model presented two different thoughts regarding the quality characteristics during the software existence cycle. These qualitative characteristics can be summarized as follows: i) efficiency, security, availability and function; ii) modifiability, portability, reusability, inheritability and testability. 115
A quality model Khosravi K. et al. [28] process consists of two tasks i.e. i) choose a super-characteristic and ii) choose and organize characteristics related to super characteristic. This quality model is constructed based on software reusability as super-characteristics and focus on reusability, understandability, flexibility, modularity, robustness, scalability, usability.
116
Characteristics
Criteria
Subcharacteristics 1:n
Subcharacteristics 1:n
Subfactor 1:n
Subattribute n:m
Subcharacteristics 1:n
n:m
TABLE II. CHARACTERISTICS DEFINITION Characteristics Accuracy Availability Changeability Correctness Efficiency Flexibility Functionality Interface facility Integrity Interoperability Maintainability Modifiability Performance Portability Reliability Reusability Robustness Scalability Supportability Definitions The capability of the software product to provide the right or agreed results or effects with the needed degree of precision. The degree to which a work is operational and available for use as a product or to users The characterization of the amount of effort to change a system. The ease with which minor defects can be corrected between major releases while the application or component is in use by its users. The capability of the software product to provide appropriate performance, relative to the amount of resources used understated conditions. The effort required modifying an operational program. The capability of the software product to provide functions meet stated and implied needs when the software is under specified conditions. The degree to which two software products can be connected successfully. The extent to which access to software or data by unauthorized persons can be controlled. The capability of the software product to interact with one or more specified systems. The capability of the software product to be modified. Corrections, improvements or adaptations of the software to changes in environment and in requirements and functional specifications. The degree to which timing characteristics are adequate. The capability of the software product to be transferred from one environment to another. The capability of the software product to maintain a specified level of performance when used under specified conditions. The ease with which an existing application or component can be reused. The degree to which an executable work product continues to function properly under abnormal conditions or circumstances. The ease with which an application or component can be modified to expand its existing capabilities. The ability to extend the program, adaptability and serviceability, in addition to testability, computability, configurability, the ease with which a system can be installed and the ease with which problems can be localized. The capability of the software product to enable modified software to be validated. The cost of transferring a product from its hardware or operational environment to another. The capability of the software product to enable the user to understand whether the software is suitable and how it can be used for particular tasks and conditions of use. The capability of the software product to be understood learned, used and attractive to the user, when used under specified conditions. Ref. [18] [10] [23] [10] [18] [13] [18] [10] [13] [18] [18] [18] [10] [18] [18] [10] [10] [10] [32]
117
Quality Characteristics Accuracy Availability/Relia bility Correctness Efficiency Flexibility Functionality Human Engineering Integrity Interoperability Maintainability Modifiability Performance Portability Process Maturity Reusability Robustness Scalability Security Supportability Testability Understandability Usability
Mc Call [31]
Boeh m [4]
FUR PS [15]
IEE E [17]
Drome y [9]
ISO91261 [18]
Kazma n [25]
X X X X
X X X
X X
X X
X X
X X X
X X X
X X
X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X
References
[1] ANSI/IEEE Standard 610.12. 1990. IEEE Standard Glossary of
Software Engineering Terminology.
[3] Bansiya, J. and Davis, C. 2002. A Hierarchical Model for ObjectOriented Quality Assessment , IEEE Transactions on Software Engineering, vol. 28, Issue 1, pp. 4-17
118
[20] ISO 9126. 2000E. Standard ISO/IEC , Information technologySoftware product quality Part1: Quality Model, ISO/IEC FDIS 9126-1: 2000(E)
[21] ISO /IEC. 1986. International Standard 8402: Quality Vocabulary [22] ISO/ IEC 25030. 2006. Software Engineering: Software Product
Quality Requirements Requirements. and Evaluation (SQuaRE), Quality
[24] ISO/IEC TR 9126-3. 2002. Software Engineering Product Quality. [25] ISO
9126. 1991. Software Product Evaluation: Quality characteristics and guidelines for their use, ISO/IEC Standardization ISO 9126. in Practice 2Ed.Addison Wesley.
[26] Kazman, R., Bass, L. and Clements, P. 2003. Software Architecture [27] Khayami, R., Towhidi, A. and Ziarati, K. 2009. The Analytical
Comparison of Qualitative Models of Software Systems, World Applied Sciences Journal 6, IDOSI Publications.
119