Software Quality Models are a standardised way of measuring a software product. With the increasing trend in software industry, new applications are planned and developed everyday. This eventually gives rise to the need for reassuring that the product so built meets at least the expected standards.
Following are few models that explains what kind of quality criteria is to be followed.
Mc Call's Model - Mccall Model is the first quality model developed, which defines a layout of the various aspects that define the product's quality. It defines the product quality in the following manner – Product Revision, Product Operation, Product Transition. Product revision deals with maintainability, flexibility and testability, product operation is about correctness, reliability, efficiency and integrity.
Boehm Model - This model describes how easily and reliably a software product can be used. This model actually elaborates the aspects of McCall model in detail. It begins with the characteristics that resorts to higher level requirements. The model's general utility is divided into various factors - portability, efficiency and human engineering, which are the refinement of factors like portability and utility. Further maintainability is refined into testability, understandability and modifiability.
FURPS Model -This model categorises requirements into functional and non-functional requirements. The term FURPS is an acronym for Functional requirement(F) which relies on expected input and output, and in non functional requirements (U) stands for Usability which includes human factors, aesthetic, documentation of user material of training, (R) stands for reliability(frequency and severity of failure, time among failure), (P) stands for Performance that includes functional requirements, and finally (S) stands for supportability that includes backup, requirement of design and implementation etc.
Ghezzi Model -This model states that the internal qualities of a software help the software developers to attain a collaborative result both in terms of external and internal qualities of a software. The overall qualities can be accuracy, flexibility, integrity, maintainability, portability, reliability, re-usability and usability.
IEEE Model -It is a standard which defines various specifications for software maintenance, thus providing a quality model. This model gives a variety of measurement techniques for various qualitative factors like efficiency, functionality, maintainability, portability, reliability and usability.
Dromey's Quality Model -This model emphasises on evaluating one software's quality with another. It helps to find out defects if any, and also to point out the factors that caused such defects. This model is designed on the basis of the relationship that exist between software properties and its quality attributes.
SATC's Model -SATC is an acronym for Software Assurance Technology Centre. Its objective is to improve software quality by defining metrics program which helps to meet the basic needs with least expenditure. This model tests a quality model by evaluating the results of the metrics used, and also on the basis of discussions based on the project. This model defines set of goals and process attributes based on the structure of ISO 9126-1 quality model.
ISO 9126-1 Quality Model -This model has two primary categories – internal and external quality attributes and quality in use attributes. The internal quality attributes are the properties of the system the evaluation of which can be done without executing it. Whereas the external quality attributes are those that are evaluated by observing the system during execution.
Capability Maturity Model -One of the most important quality models of software quality maintenance. The model lays down a very simple approach to define the quality standards. It has five levels namely – initial, repeatable, defined, managed, optimizing.
At the initial level, the company is quite small and it solely depends on an individual how he handles the company. The repeatable level states that at least the basic requirements or techniques have been established and the organisation has attained a certain level of success. By the next level that is , defined, the company has already established a set of standards for smooth functioning of a software project/process. At the managed level, an organisation monitors its own activities through a data collection and analysis. At the fifth level that is the optimizing level, constant improvement of the prevailing process becomes a priority, a lot of innovative approach is applied towards the qualitative enhancement.
Importance of software quality models :
With the growing number of customer's demand for software systems, the expectations for quality has also grown in terms of how reliable a software product will be.
As we know a software application is quite complex in nature, hence the task of verifying whether a specific functionality has been implemented or not, becomes quite difficult. Therefore software developers often divide the tasks in the form of deliverables, that is, defining a benchmark to mark the completion of one specific task.
If the errors in some of the previous phases are not rectified on time, then it may lead to that error being carried over to the next consecutive phases, which may have a serious problem in the later stages of the project.
Hence if we consider the above facts carefully, we may arrive at a conclusion as to what extent a software quality measurement holds relevance. A good quality product leads to customer satisfaction and signifies an overall success of a project.
Conclusion :
Lot of effort is invested in the process quality improvement. When a project is undertaken, the aim is to deliver the right product at the right time with the right functionalities.
It is a common scenario that the one at the receiving end always desires/expects the best to be delivered to them. The onus lies on the developers and testers to ensure that they are able to meet the expectations of their clients.