SOFTWARE QUALITY MODELS: A COMPARATIVE STUDY Mrs. Manisha L. Waghmode Assistant Professor Bharati Vidyapeeth Deemed University, Institute of Management and Rural Development Administration, Sangli Dr. Pallavi P. Jamsandekar Professor Bharati Vidyapeeth Deemed University, of Management and Rural Development Administration, Sangli ABSTRACT: Software is now used in almost every business application. People depend on reports generated through software. Small error in software may cause serious mistake in decision making. Today software plays a vital role in keeping and updating all records in a systematic manner, and hence software industries have demand of developing the software as per the end users requirements. When demand increases the supply has to be increased in same proportion, so for supplying the required software it is important to keep into consideration quality of the software. This paper describes about software quality, factors affecting quality of software, different software quality models and its comparative study. Keywords: ISO, McCall, Software, IEEE,. INTRODUCTION: Software comprises of quality of product, service, information, processes, people, and system. There are numerous definitions of quality. The ISO 9000 model defines quality as the degree to which a set of inherent characteristics fulfills requirements. (Tricker) ISO 9126, a refinement of the ISO 9000 model, which proposes a quality standard for software product evaluation, defines software quality as the totality of features and characteristics of a software product that bear on its ability to satisfy stated or implied needs. (Hansen) Pressman has defined software quality as Conformance to explicitly defined functional and implicit characteristics that are expected of professionally developed software According to IEEE Software quality is the degree to which a system, component, or process meets specified requirements and/ or customer or user needs or expectations. Software quality focuses four areas viz; product, project quality, process, postproduction quality. The first area, product quality, is concerned with the requirements and specifications of the product as it applies to the attributes or characteristics of the software product. This area could also be referred to as end-product quality. The second area, project quality, is concerned with the metrics and measurements associated with the software production effort. The third area is process or management quality, which is concerned with the processes, planning and controls used to develop and manage the software product. The last area of focus is on post-production quality or deployed application management. High quality software meets the needs of users while being reliable, well supported, maintainable, portable, and easily integrated with other tools. SOFTWARE QUALITY PROBLEM Software defects have created a serious damages and even physical harm. The defects in software like word, finance applications etc., increases cost but nobody is injured or killed. When software with special intensive systems are considered like airplane, automobiles, control air traffic, run factories or operate power plants, defects can be dangerous. People have been killed by defective software. Defects in software adversely affect the security, safety, and reliability of the system. 1
is referred to as the satisfaction of requirements. But what are requirements? Requirements can be categorized as functional and non-functional. Functional requirements refer to specific functions that software should be able to do. But we all know that just because a user can complete a task using the software, does not mean it has good quality. That s because of the non-functional requirements not being met. For maintaining quality software some standards which are made, called as software quality models. SOFTWARE QUALITY FACTORS The quality of software is assessed by a number of variables. Some quality criteria are objective, and can be measured accordingly. Some quality criteria are subjective, and are therefore captured with more arbitrary measurements. These variables can be divided into external and internal quality criteria. External quality (features, speed, space, network usage, stability, robustness, ease of use, determinism, back-compatibility, security, power consumption) is what a user experiences when running the software in its operational mode. Internal quality (test coverage, testability, portability, thread-safeness, conciseness, maintainability, documentation, legibility, scalability) refers to aspects that are code-dependent, and that are not visible to the end-user. External quality is critical to the user, while internal quality is meaningful to the developer only. Software quality factors are characteristics which are measured for testing the quality of software. These attributes are correctness, reliability, efficiency, integrity, usability, maintainability, flexibility, testability, portability, reusability, interoperability, availability, Table1. Software Attributes Criteria/goals Correctness Efficiency Flexibility Functionality Integrity Interoperability Maintainability Modifiability Performance Portability Reliability Reusability Supportability Testability Description Extent to which a program satisfies its requirements The amount of computing resources and code required by a program to perform a function. Effort required modifying an operational program. Which may include feature sets, capabilities and security Extent to which access to software or data by unauthorized persons can be controlled. Effort required to couple one system with another Effort required locating and fixing an error in an operational program. The degree to which a system or component facilitates the incorporation of changes, once the nature of the desired change has been determined. Imposes conditions on functional requirements such as speed, efficiency, availability, accuracy, throughput, response time, recovery time, and resource usage. Effort required to transfer software from one configuration to another. Extent to which a program can be expected to perform its intended function with required precision. Extent to which a program can be used in other applications related to the packaging and scope of the functions that programs perform. Which may include testability, extensibility, adaptability, maintainability, compatibility, configurability, serviceability, installability, localizability (internationalization) Effort required testing a program to ensure that it performs its intended function 2
Understandability The degree to which the purpose of the system or component is clear to the evaluator. Usability Effort required learning, operating, preparing input, and interpreting output of a program. SOFTWARE QUALITY MODELS From the 1960 s the development of software products was perceived as an engineering discipline. One can also find first attempts to define goals and measures for software in that time. One of the most difficult measures to define was the software quality measure. The first attempts to define quality measure were made in the 1970 s by McCall s and Boehm s. Azuma has defined a as the set of characteristics and the relationships between them which provide the basis for specifying quality requirements and evaluating quality. Software quality models are a well-accepted means to support quality management of software systems. BOHEM MODEL This model attempts to qualitatively define the quality of software by a predefined set of attributes and metrics. He classified (B.W. Bohem ) General utility into utility, maintainability, portability which in turn were classified into characteristics like device independence, selfcontentedness, Accuracy, Completeness, Integrity, Consistency, Device efficiency, Accessibility, communication, Self Descriptiveness, Structuredness, Conciseness, Legibility, Augment ability. The intermediate level characteristic represents Boehm s 7 quality factors that together represent the qualities expected from a software system: BOWEN 1985 The Bowen 1985 software quality model identifies quality characteristics, namely: correctness, Reliability, Efficiency, Usability, Integrity, Maintainability, verifiability, Portability, flexibility, reusability, interoperability, survivability, expandability. DROMEYMODEL Dromey s (R.G. Dromey) proposes a framework to evaluate requirement determination, design and implementation phases. The framework consists of three models, i.e. Requirement quality model, Design quality model and Implementation quality model. The high-level product properties for the implementation quality model include, correctness measures, Internal measures, Contextual measures, Descriptive measures. Dromey includes high level quality attributes: functionality, reliability, efficiency, usability, maintainability, portability, correctness, reusability and process maturity. Dromey focuses on relationship between the quality attributes and sub attributes. FURPS MODEL Robert Grady and Hewlett-Packard are the first one to propose model with the industrial approach. This quality model is known as FURPS. The model aimed at improving the management of software development processes by software industry. FURPS includes top five level attributes i.e. Functionality, Usability, Reliability, Performance and Supportability. Further, the model was extended by IBM Rational Software into FURPS+, widely used in the software industry now. ISO 9126 MODEL 3
In 1991, the International Organization for Standardization introduced a standard named ISO/IEC 9126 Software product evaluation - characteristics and guidelines for their use. This standard aimed to define a quality model for software and a set of guidelines for measuring the characteristics associated with it. ISO 9126 (ISO / IEC) ISO 9126 is an international standard for the evaluation of software. The standard is divided into four parts which addresses: quality model; external metrics; internal metrics; and quality in use metrics. The ISO 9126-1 software quality model identifies main quality characteristics, namely: Functionality (Suitability, Accurateness. Interoperability, Compliance, Security), Reliability (Maturity, Fault tolerance, Recoverability, Understand ability), Usability (Learnability, Operability), Efficiency (Time behaviour, Resource behaviour, Analysability), Maintainability (Changeability, Stability, Testability, Adaptability) Portability (Installability, Conformance, Replaceability). McCall MODEL McCall s model relates external quality factors, i.e. attributes, to product quality criteria. McCall s model classifies all software requirements grouped into three categories, product operations, product revision and product transition. (McCall) MURINE 1983 The Marine 1983 software quality model identifies quality characteristics, namely: correctness, Reliability, Efficiency, Usability, Integrity, Maintainability, Portability, flexibility, testability, reusability, interoperability, Intraoperability COMPARATIVE STUDY OF MODELS Characteristics Table2: Comparison between quality models w.r.t. Characteristics McCall s Boehm s. Dromey's. FURPS ISO 9126 Bowen 1985 Murine 1983 Correctness Efficiency Expandability Flexibility Functionality Human Engineering Integrity Interoperability Intraoperability Maintainability Modifiability Performance Portability Process Maturity Reliability 4
Reusability Supportability Survivability Testability Understandabil ity Usability Verifiability CONCLUSION Software quality is essential for every stakeholder of software. Through comparative study of software quality models it has found that, software should have different characteristics (achieving high quality software is not single person responsibility) developing quality software is need today. While developing any software there must be quality as one of the objectives. It is everybody s responsibility to see to it that defined quality should be achieved for the final product. Starting from requirement specification till maintenance phase who have role in software developing, operation and transaction, all should have as prime objective. From the comparative table it is observed that reliability and usability characteristics are considered in every model and most of the sub characters are used in most models. So we have to give focus on improving software quality. REFERENCE 1. B.W. Bohem et al. J. R. Brown, H. Kaspar, M. Lipow, G. McLeod, and M. Merritt, Characteristics of Software, North Holland, (1978) 2. Hansen, W., A Generic Process and Terminology for Evaluating COTS Software, i. [http://www.sei.cmu.edu/cbs/tools99/generic/generic.pdf], 07 Sep. 1999. ii. Accessed Jul.2004. 3. ISO / IEC, IS 9126-1, Software Engineering Product Part 1:, Geneva Switzerland: International Organization for Standization, 2001. 4. McCall, J. Richards, P., Walters, G. Factors in software quality. Griffiths Air Force Base, NY, Rome Air Development Center Air Force System Command, 1977. 5. R.G. Dromey, Software product quality: Theory, model and practices. Software quality Institute, Griffith University, Brisbane, Technical Report, 1999. 6. Software Engineering Institute: Glossary - Software Technology Roadmap, i. http://www.sei.cmu.edu/str/indexes/glossary, last checked Nov. 30, 2004. 7. Software Engineering Institute, The Capability Maturity : Guidelines for Improving the Software Process, MA: Addision Wesley, 1994. 8. Tricker, R., and Sherring-Lucas, B., ISO 9001:2000 In Brief, Butterworth Heinemann, Oxford, 2001. 5