Software Quality

Software Quality Models(SQM)
  • A Software Quality Model is a structured framework that defines different characteristics and factors used to evaluate the quality of a software product.
  • It helps in measuring and ensuring that the software meets user requirements and quality standards.
  • Purpose of Software Quality Model
    • SQM defines software quality attributes.
    • SQM measures and evaluates software quality.
    • SQM improves product reliability and performance.
  • Common Software Quality Models
    • McCall’s Quality Model
      • McCall’s Quality Model is one of the earliest software quality models, proposed by Jim McCall in 1977.
      • McCall’s Quality Model provides a comprehensive, structured framework to evaluate software quality by dividing quality factors into product operation, revision, and transition.
      • It helps improve reliability, maintainability, and adaptability of software systems.
      • The model focuses on the relationship between software quality characteristics and product operations, revision, and transition.
      • Structure of McCall’s Quality Model

McCall’s model is divided into three major perspectives:-

        • Product Operation

These factors describe how well the software performs during operation and include features –

            • Correctness – It is the ability to meet specified requirements.
            • Reliability – It is the ability to perform consistently without failure.
            • Efficiency – It is the use of system resources effectively.
            • Integrity – It is the protection from unauthorized access (security).
            • Usability – It is the ease of use and user-friendliness.
        • Product Revision

These factors relate to the ability to modify the software and include –

            • Maintainability – It is the ease of fixing defects.
            • Flexibility – It is the ease of making changes.
            • Testability – It is the ease of testing the software.
        • Product Transition

These factors relate to adapting software to new environments and include-

            • Portability – It is the ease of transferring software to other systems.
            • Reusability – It is the ability to reuse components in other applications.
            • Interoperability – It is the ability to interact with other systems.
      • Advantages of McCall’s Quality Model
        • It clearly structured the software into three major categories.
        • It covers both operational and maintenance aspects.
        • It helps in systematic quality evaluation.
        • It is easy to understand for academic study.
    • Boehm’s Quality Model
      • Boehm’s Quality Model is a software quality model proposed by Barry W. Boehm in 1978.
      • This model defines different quality characteristics to evaluate and measure the quality of a software product.
      • Boehm’s Quality Model is an important software quality framework that defines multiple (different) quality characteristics in a hierarchical form. It helps in evaluating and improving software performance, reliability, and maintainability.
      • This model focuses on improving software utility and maintainability.
      • Structure of Boehm’s Quality Model

Boehm’s model is divided into three levels:-

        • High-Level Characteristics
          • This level describes the overall utility of the software:-
            • As-is Utility – How well the software can be used in its current state.
            • Maintainability – Ease of modifying and updating the software.
            • Portability – Ease of transferring software to different environments.
        • Intermediate-Level Characteristics
          • These include:-
            • Reliability
            • Efficiency
            • Human Engineering (Usability)
            • Testability
            • Understandability
            • Maintainability
            • Portability
            • Flexibility
        • Primitive Characteristics
          • These are measurable attributes like:-
            • Completeness
            • Consistency
            • Accuracy
            • Structuredness
      • Advantages of Boehm’s Quality Model
        • It provides a hierarchical structure.
        • It covers both user and developer perspectives.
        • It helps improve maintainability and portability.
        • It is easy to understand and apply.
    • ISO 9126 Quality Model
      • The ISO 9126 Quality Model is a widely accepted international standard that defines six major characteristics to evaluate software quality. It helps organizations develop reliable, efficient, and user-friendly software systems.
      • It was developed by the International Organization for Standardization (ISO) to define a structured way to measure and assess software quality.
      • This model identifies the main characteristics that determine the quality of a software product.
      • The ISO 9126 model defines six primary quality characteristics:
        • Functionality
        • Reliability
        • Usability
        • Efficiency
        • Maintainability
        • Portability
      • Importance of the ISO 9126 model
        • It provides a standardized quality framework
        • It helps measure and evaluate software quality
        • It improves product reliability and performance
        • It ensures customer satisfaction
  • Importance of Software Quality Model
    • It provides a clear way to measure quality.
    • It helps in improving software performance.
    • It ensures customer satisfaction.
    • It supports standards-based development.
Software Quality Control(SQC)
  • Software Quality Control (SQC) is a process used to ensure that the developed software product meets the specified quality requirements and standards.
  • It focuses on identifying defects in the actual software product through testing and inspection activities.
  • Unlike Software Quality Assurance (SQA), which is process-oriented, Software Quality Control is product-oriented.
  • The main purpose of software quality control is to detect and correct defects before the software is delivered to the customer.
Software Quality Assurance(SQA)
  • SQA stands for Software Quality Assurance. 
Definition
  • Software Quality Assurance is the process of ensuring that software products and services meet the defined quality standards. 
  • SQA is a set of activities and processes that ensure that the software products and services meet the defined quality requirements, standards, and specifications and are free from defects. 
Characteristics
  • Software Quality Assurance (SQA) is a process-oriented mechanism.
  • SQA involves establishing standards and procedures and implementing processes that ensure that the software development team adheres to these standards.
  • SQA is essential for ensuring that the software product is of high quality, meets the user’s requirements, and is free of defects and issues.
  • By implementing SQA processes, software development teams can minimize the risks of software failures, reduce costs, and increase user satisfaction.
Phases of SQA
The SQA process typically involves the following activities:
    • Planning: In this phase, we develop an SQA plan that outlines the standards, procedures, and metrics for the software development process. This involves defining the quality goals, objectives, and strategies for the software development project.
    • Requirements Analysis: In this phase, we ensure that the software requirements are well-defined, complete, and testable.
    • Design: In this phase, we ensure that the software design meets the quality standards and specifications.
    • Implementation: In this phase, we ensure that the software code is written according to the standards and is free from defects.
    • Review: In this step, the software requirements, design, and code are reviewed to ensure compliance with quality standards and specifications.
    • Testing: In this phase, we conduct various types of testing, including functional testing, performance testing, and security testing, to ensure that the software meets the quality standards. The software is tested using various test cases to identify any defects or issues that need to be addressed.
    • Reporting: The test results and any issues identified are documented and reported to the development team for remediation.
    • Re-testing: The software is re-tested after the issues have been fixed to ensure that the fixes are effective.
      1. Release: In this phase, we ensure that the software is released only after it has met the quality standards and has been thoroughly tested. After successful testing, the software is released to the end users.
      2. Maintenance: In this phase, we ensure that the software is maintained and updated regularly to fix any defects or issues that may arise.
    Objectives
    • The primary objective of SQA is to prevent defects, errors, and issues in the software product by implementing various quality control measures throughout the software development life cycle.
    • Another goal of SQA is to identify and address potential issues in the software development process before the product is released to end users.
    • By implementing an effective SQA process, software development teams can ensure that their software meets quality standards and is free from defects, thereby improving customer satisfaction, reducing costs, and increasing the overall efficiency of the development process.
    Advantages
    There are the following advantages of SQA –
    • Improves Software Quality
      • SQA helps in developing high-quality software by following proper standards and processes.
    • Continuous Monitoring
      • SQA helps continuously check development activities to maintain quality.
    • Audit and Review
      • SQA ensures regular reviews and audits that verify quality practices.
    • Risk Management
      • SQA helps identify and reduce risks related to software quality.
    • Defect Detection
      • In SQA, errors are detected and prevented in the early development lifecycle or stages, which makes software fixing easier and cheaper. 
    • Reliability
      • SQA ensures the software works consistently without failures. Thus, SQA helps produce reliable and stable software products.
    • Customer Satisfaction
      • SQA helps in the creation of high-quality and reliable software, which increases user or customer requirements, expectations, trust, and satisfaction.
    • Development Cost
      • SQA helps in finding and fixing defects early, which reduces maintenance and rework costs.
    • Process Control
      • SQA improves management and monitoring of the development process.
    • Ensures Standard Compliance
      • In SQA, software is developed according to industry standards, procedures, and guidelines. 
    • Improves Documentation Quality
      • In SQA, proper documentation is maintained throughout the project lifecycle, which improves documentation quality.
      • SQA ensures proper documentation of requirements, design, coding, and testing.
    • Reduces Risk
      • SQA helps identify risks related to quality and reduces them early.
    • Continuous Improvement
      • SQA helps organizations improve development processes over time.

    Loading


    0 Comments

    Leave a Reply

    Your email address will not be published. Required fields are marked *

    This site uses Akismet to reduce spam. Learn how your comment data is processed.