Quality Management Chapter 24
79 Questions
1 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

What are the two principal concerns of software quality management?

  • Project Level & Implementation Level
  • Production Level & Implementation Level
  • Development Level & Project Level
  • Organizational Level & Project Level (correct)
  • Quality management is a dependent check on the software development process.

    False (B)

    What is a quality plan?

    A quality plan defines a plan for a project by setting out the quality goals for the project and defining what processes and standards are to be used.

    At what level does software quality management establish a quality plan for a project?

    <p>At the project level.</p> Signup and view all the answers

    Quality plans should be long, detailed documents.

    <p>False (B)</p> Signup and view all the answers

    What three aspects of software standards are highlighted as important?

    <p>Encapsulation of best practice, Framework for defining quality, Continuity of knowledge (C)</p> Signup and view all the answers

    What are the two main types of software standards?

    <p>Product Standards &amp; Process Standards (D)</p> Signup and view all the answers

    What is the definition of software quality, in the simplest sense?

    <p>Software quality, simplistically, means that a product should meet its specification.</p> Signup and view all the answers

    What aspect does the focus on software quality often shift to?

    <p>Fitness for Purpose (D)</p> Signup and view all the answers

    The subjective quality of a software system is largely based on its non-functional characteristics.

    <p>True (A)</p> Signup and view all the answers

    Which of these are examples of non-functional characteristics of a software system?

    <p>All of the above (D)</p> Signup and view all the answers

    Which of these is NOT a software quality attribute?

    <p>Functionality (C)</p> Signup and view all the answers

    It is possible for any system to be optimized for all of its quality attributes.

    <p>False (B)</p> Signup and view all the answers

    The quality of a developed product is influenced by the quality of the production process.

    <p>True (A)</p> Signup and view all the answers

    What are the four primary aspects of a process-based quality approach?

    <p>Define Process, Develop Product, Assess Quality, Improve Process (C)</p> Signup and view all the answers

    What is the goal of quality managers in terms of developing a 'quality culture'?

    <p>Quality managers aim to develop a 'quality culture' where everyone responsible for software development is committed to achieving a high level of product quality.</p> Signup and view all the answers

    Agile development utilizes formal, document-based quality management.

    <p>False (B)</p> Signup and view all the answers

    Why might agile quality management be less suitable for large systems?

    <p>Agile methods don't scale well for large projects (D)</p> Signup and view all the answers

    What is the focus of software measurement?

    <p>Software measurement focuses on deriving a numeric value for an attribute of a software product or process.</p> Signup and view all the answers

    Most organizations systematically utilize software measurement.

    <p>False (B)</p> Signup and view all the answers

    What are two main uses of software metrics?

    <p>Predicting product attributes &amp; Controlling the development process (B)</p> Signup and view all the answers

    There are numerous established standards for software measurement.

    <p>False (B)</p> Signup and view all the answers

    What is the primary reason to use inspection checklists in the code inspection process?

    <p>Inspection checklists are used to drive the inspection by providing a list of common errors that should be checked.</p> Signup and view all the answers

    What is the relationship between type checking in programming languages and inspection checklist size?

    <p>Weaker type checking requires larger checklists (C)</p> Signup and view all the answers

    Which of the following is NOT a type of review with distinct objectives?

    <p>Code reviews (A)</p> Signup and view all the answers

    What is the significance of 'signing off' on a reviewed software or document?

    <p>Signing off on reviewed software or documents signifies that progress to the next development stage has been approved by management.</p> Signup and view all the answers

    The review process traditionally assumes that the review team has a face-to-face meeting to discuss the software or documents.

    <p>True (A)</p> Signup and view all the answers

    Program inspections involve reviewing the source code of a system to discover defects.

    <p>True (A)</p> Signup and view all the answers

    Program inspections require the execution of the system to be performed

    <p>False (B)</p> Signup and view all the answers

    Program inspections have proven to be effective in discovering program errors.

    <p>True (A)</p> Signup and view all the answers

    What practice is common for agile software development teams?

    <p>Agile software development teams often practice 'pair programming', where two developers work together to write code. This ensures that all code is constantly being examined, helping to reduce errors.</p> Signup and view all the answers

    In Scrum, there is no review meeting after each iteration of the software has been completed.

    <p>False (B)</p> Signup and view all the answers

    What is the primary benefit of pair programming?

    <p>Pair programming helps ensure that all code is constantly being reviewed and examined, leading to a deeper understanding of the program for both programmers.</p> Signup and view all the answers

    Which of the following weaknesses is NOT typically associated with pair programming?

    <p>Difficulty in finding experienced pairs (A)</p> Signup and view all the answers

    Why can using agile quality management be impractical for larger systems? (Choose all that apply)

    <p>Multiple Teams (B), Long-Lived Systems (C), Customer Expectations (D)</p> Signup and view all the answers

    Software analytics relies heavily on data collected from small companies.

    <p>False (B)</p> Signup and view all the answers

    Software analytics is a mature and well-established field with proven effectiveness in improving software development processes.

    <p>False (B)</p> Signup and view all the answers

    What is the primary goal of using software analytics?

    <p>Software analytics aims to empower software development individuals and teams to understand data and derive insights from it to make better decisions.</p> Signup and view all the answers

    Which of the following is NOT an enabler of software analytics?

    <p>Limited access to open-source repositories. (B)</p> Signup and view all the answers

    Software analytics tools should generate large volumes of information to ensure comprehensiveness.

    <p>False (B)</p> Signup and view all the answers

    Software analytics tools should be non-interactive to prevent distractions and allow for focused analysis.

    <p>False (B)</p> Signup and view all the answers

    Software quality management ensures that software has a low number of defects and meets the required standards.

    <p>True (A)</p> Signup and view all the answers

    Reviews of the software process deliverables involve a team of people who assess the software against established quality standards.

    <p>True (A)</p> Signup and view all the answers

    Agile quality management relies on teams working together to improve software quality.

    <p>True (A)</p> Signup and view all the answers

    Software measurement can only be used to collect quantitative data about the software itself.

    <p>False (B)</p> Signup and view all the answers

    Software metrics can be used to make inferences about both product and process quality.

    <p>True (A)</p> Signup and view all the answers

    Product quality metrics are essential for identifying components that might have quality problems and require further analysis.

    <p>True (A)</p> Signup and view all the answers

    What is the significance of software analytics in software development?

    <p>Software analytics provides an automated analysis of large amounts of software product and process data, revealing relationships that can offer valuable insights to project managers and developers.</p> Signup and view all the answers

    Signup and view all the answers

    What is the role of a quality team in software development?

    <p>The quality team should be independent from the development team so that they can take an objective view of the software. This allows them to report on software quality without being influenced by software development issues.</p> Signup and view all the answers

    What are the three main purposes of the adaptive median filter?

    <p>To remove salt and pepper impulse noise, to provide smoothing of other noise that may not be impulsive, and to reduce distortion such as excessive thinning or thickening of object boundaries.</p> Signup and view all the answers

    Software quality management is crucial for both large and small software systems.

    <p>True (A)</p> Signup and view all the answers

    Explain the difference between customer quality requirements and developer quality requirements.

    <p>Customer quality requirements focus on factors like efficiency, reliability, and usability. Developer quality requirements focus on aspects like maintainability and reusability.</p> Signup and view all the answers

    Describe the concept of 'fitness for purpose' in relation to software quality.

    <p>Fitness for purpose means that the software fulfills its designated purpose effectively, even if it may not strictly conform to all aspects outlined in the specifications.</p> Signup and view all the answers

    Why are non-functional characteristics often more crucial than functional characteristics in determining software quality?

    <p>Non-functional characteristics such as reliability and performance significantly impact the user's experience. If the software is unreliable or slow, it becomes highly challenging for users to effectively achieve their goals even if the functionality is seemingly adequate.</p> Signup and view all the answers

    What are the various classifications of software standards?

    <p>International, national, organizational, project (A)</p> Signup and view all the answers

    What are the three main benefits of adhering to software standards?

    <p>Software standards encapsulate best practices to avoid past mistakes, provide a framework for defining what quality means within an organization, and promote continuity by enabling new staff to understand the organization's standards and processes.</p> Signup and view all the answers

    What is the purpose of ISO 9001 and how is it related to software development?

    <p>ISO 9001 is an international set of standards used for developing quality management systems across various industries, including software development. It provides a framework for establishing organizational standards and processes that contribute to high-quality software production.</p> Signup and view all the answers

    What is the difference between software reviews and inspections?

    <p>Reviews and inspections are quality assurance activities that assess project deliverables, but differ in their focus and approach. Reviews generally examine parts or all of a process or system alongside its documentation to identify potential problems. Inspections, on the other hand, are specifically aimed at discovering anomalies and defects within the source code, often conducted as peer reviews.</p> Signup and view all the answers

    Name the three phases involved in the software review process.

    <p>The software review process encompasses three key phases: Pre-review activities, the review meeting, and post-review activities.</p> Signup and view all the answers

    What are the key characteristics of agile quality management?

    <p>Agile quality management is informal, relies on establishing a quality culture, and opposes the bureaucratic nature of standards-based processes.</p> Signup and view all the answers

    Explain the concept of 'check before check-in' in agile development.

    <p>It involves programmers conducting code reviews with other members of the team to identify and resolve issues before checking the code into the build system.</p> Signup and view all the answers

    What is pair programming and what are its advantages and potential drawbacks?

    <p>Pair programming involves two programmers collaborating on the same code, providing a constant review and knowledge sharing. This deepens understanding and promotes early detection of bugs. However, it can lead to mutual misunderstandings, reluctance to find errors, and compromised working relationships.</p> Signup and view all the answers

    What are the major limitations of agile quality management in the context of large software systems?

    <p>Agile methods, with minimal documentation, may not be suitable for large, external customer projects requiring formal communication and reporting. Similarly, handling geographically distributed teams and long-lifetime systems with frequent team transitions can pose challenges due to the lack of comprehensive documentation.</p> Signup and view all the answers

    Software measurement is widely adopted by most organizations for systematic quality assessment and analysis.

    <p>False (B)</p> Signup and view all the answers

    Define a software metric and explain its purpose in software development.

    <p>A software metric is a quantifiable measurement related to a software system, process, or documentation. It allows for the quantification of software and its related processes. By using metrics, we can predict product attributes such as maintainability, and control the software development process by identifying areas that need adjustment.</p> Signup and view all the answers

    Explain the difference between dynamic metrics and static metrics in software measurement.

    <p>Dynamic metrics are collected during the execution of a program, directly measuring performance and reliability aspects like response time and number of failures. Static metrics, on the other hand, are calculated from the software's static representations. They assess attributes like complexity, maintainability, and understandability by examining the code structure and relationships.</p> Signup and view all the answers

    What are the common challenges associated with software measurement in industry?

    <p>The difficulties with implementing software measurement in businesses include the lack of a clear return on investment for establishing a measurement program, the lack of standardized metrics and processes, and the inconsistency of software processes. Also, most development focuses on code-based metrics, neglecting other aspects, and introducing measurement further adds overhead to existing processes.</p> Signup and view all the answers

    Explain the relationship between software measurement and empirical software engineering.

    <p>Software measurements and metrics form the foundation of empirical software engineering. This research area uses experiments and real-world data to validate hypotheses about software engineering methods and techniques.</p> Signup and view all the answers

    What are the key aspects of software analytics and how does it provide value to software development?

    <p>Software analytics involves analyzing software-related data to empower software developers and managers. It helps gain insights and make better decisions by leveraging automated analysis.</p> Signup and view all the answers

    What are the key advantages of using software analytics in software development?

    <p>Software analytics enables better decision-making by leveraging automated data collection and analysis, providing insights from user data and open-source repositories. It empowers developers and managers to gain a deeper understanding of software behavior and make informed improvements.</p> Signup and view all the answers

    What are the three key characteristics of tools used for software analytics?

    <p>Software analytics tools should be user-friendly, generate concise outputs rather than overwhelming amounts of information, and be capable of performing extensive measurements across multiple parameters. They should also be interactive to allow for exploration and further analysis.</p> Signup and view all the answers

    What are the major factors limiting the widespread adoption of software analytics?

    <p>The immaturity of software analytics, reliance on data from large companies, and the high cost of data collection systems for smaller companies all hinder its adoption.</p> Signup and view all the answers

    What are the main benefits of software quality management?

    <p>Software quality management ensures high-quality software with minimal defects, adhering to standards of maintainability, reliability, and portability. Standards represent a compilation of best practices and provide a solid foundation for developing high-quality software.</p> Signup and view all the answers

    What is the role of software reviews in quality management?

    <p>Software reviews involve teams who check if quality standards are being followed during the development process. They are a widely used technique for assessing the quality of software.</p> Signup and view all the answers

    What is the purpose of program inspections within software development?

    <p>Program inspections or peer reviews involve a small team systematically examining the code for errors, omissions, and potential problems. These inspections help ensure code quality and identify issues early in the development process.</p> Signup and view all the answers

    Explain the role of agile quality management in achieving software quality goals.

    <p>Agile quality management emphasizes creating a quality-focused culture where the development team works together. This collaborative approach aims to continuously improve the software quality through collective effort and shared responsibility.</p> Signup and view all the answers

    Why are product quality metrics particularly valuable in software development?

    <p>Product quality metrics help highlight anomalous software components that might have quality problems, enabling a more focused analysis on those specific areas.</p> Signup and view all the answers

    How does software analytics contribute to better decision-making within software development?

    <p>Software analytics leverage automated analysis of large volumes of software and process data to expose potential patterns and relationships. These insights can inform better decisions by project managers and developers in areas such as product development, resource allocation, and risk mitigation.</p> Signup and view all the answers

    Flashcards

    Software Quality Management

    A systematic approach that ensures the software meets its specified level of quality, including functionality, reliability, performance, and maintainability.

    Organizational Level Quality Management

    Focuses on establishing organizational processes and standards that lead to high-quality software.

    Project Level Quality Management

    Involves applying specific quality processes within a project and ensuring they are followed consistently.

    Quality Plan

    A detailed document that outlines the quality goals of a project, specifies assessment methods, and defines important quality attributes.

    Signup and view all the flashcards

    Process & Product Quality

    The overall quality of a software product is influenced by the quality of the development processes used to create it.

    Signup and view all the flashcards

    Quality Culture

    Building a company culture where all team members are committed to achieving high-quality software.

    Signup and view all the flashcards

    Software Standards

    Formal guidelines or rules that define the required attributes of a product or process.

    Signup and view all the flashcards

    Software Reviews

    A systematic process where a team reviews software documents or code to identify potential issues or defects.

    Signup and view all the flashcards

    Program Inspections

    A formal peer review process where engineers carefully examine the source code of a software system to identify defects and anomalies.

    Signup and view all the flashcards

    Quality Reviews

    A type of review that focuses specifically on the conformity of a software product to organizational standards.

    Signup and view all the flashcards

    Inspection Checklists

    A predefined list of common errors that should be checked during inspections or reviews.

    Signup and view all the flashcards

    Software Measurement

    Involves gathering numeric data related to a software product or process to obtain objective comparisons.

    Signup and view all the flashcards

    Software Metric

    A specific measurement related to software system, process or documentation.

    Signup and view all the flashcards

    Predictor Metric

    A type of software metric that is associated with the software itself, providing insights into the product's quality characteristics.

    Signup and view all the flashcards

    Control Metric

    A type of software metric that is associated with the development process, providing insights into how well the process is functioning.

    Signup and view all the flashcards

    CK Object-Oriented Metrics Suite

    A collection of metrics focused on object-oriented software, allowing for the measurement of complexity, cohesion, and coupling in object-oriented designs.

    Signup and view all the flashcards

    Weighted Methods per Class (WMC)

    A measure of the complexity of a class, factoring in the complexity of its methods.

    Signup and view all the flashcards

    Depth of Inheritance Tree (DIT)

    A metric that measures the depth of the inheritance hierarchy in an object-oriented design.

    Signup and view all the flashcards

    Number of Children (NOC)

    A metric that measures the number of immediate subclasses of a class.

    Signup and view all the flashcards

    Coupling Between Object Classes (CBO)

    A metric that measures the degree to which classes are interconnected and dependent on each other.

    Signup and view all the flashcards

    Response for a Class (RFC)

    A metric that measures the number of methods that could potentially be executed in response to a message received by an object of a class.

    Signup and view all the flashcards

    Lack of Cohesion in Methods (LCOM)

    A metric that measures the cohesion of methods within a class, evaluating how closely related they are.

    Signup and view all the flashcards

    Software Analytics

    A process of gathering and analyzing data from software products and processes to gain insights into their performance and quality.

    Signup and view all the flashcards

    Software Analysis

    The process of analyzing software data to identify patterns, trends, and anomalies that can inform decision-making in software projects.

    Signup and view all the flashcards

    Agile Quality Management

    An approach to quality management that emphasizes a collaborative and iterative approach, with a strong focus on customer feedback and continuous improvement.

    Signup and view all the flashcards

    Pair Programming

    Working together in pairs to write code, providing immediate feedback and code reviews throughout the development process.

    Signup and view all the flashcards

    Shared Good Practice

    A set of principles and guidelines that aim to improve software quality by fostering a culture of continuous improvement, collaboration, and open communication within the development team.

    Signup and view all the flashcards

    Check Before Check-in

    A process of examining the source code of a software system to detect and fix bugs before the code is integrated into a larger system.

    Signup and view all the flashcards

    Never Break the Build

    A practice where developers ensure that no new code changes break the overall functionality of the system during the development cycle.

    Signup and view all the flashcards

    Fix Problems When You See Them

    A principle where developers actively address any issues or potential problems they discover in the code, even if it wasn't written by them.

    Signup and view all the flashcards

    Image Restoration

    The process of reconstructing or recovering a degraded image to improve its quality.

    Signup and view all the flashcards

    Image Enhancement

    A process that modifies an image to enhance its visual appearance for the human eye.

    Signup and view all the flashcards

    Image Restoration vs. Image Enhancement

    Image restoration aims to objectively reconstruct the original image, while image enhancement focuses on subjective improvements for human perception.

    Signup and view all the flashcards

    Degradation Function (H)

    The function that describes how an image is degraded. It can represent blurring, noise, or other distortions.

    Signup and view all the flashcards

    Additive Noise (η(x,y))

    Noise that is randomly added to an image during acquisition or transmission.

    Signup and view all the flashcards

    Degraded Image (g(x,y))

    A degraded image that results from applying the degradation function and additive noise to the original image.

    Signup and view all the flashcards

    Estimated Image (f'(x,y))

    An estimate of the original image obtained through restoration techniques. It aims to be as close as possible to the original.

    Signup and view all the flashcards

    Noise Removal

    The process of removing noise from an image, often using spatial domain filters.

    Signup and view all the flashcards

    Deblurring

    The process of reducing blur from an image, often using frequency domain filters.

    Signup and view all the flashcards

    Spatial Representation (h(x,y))

    A representation of the degradation function in the spatial domain, where pixels are directly manipulated.

    Signup and view all the flashcards

    Convolution (* )

    A mathematical operation where two signals are combined to produce a third signal, reflecting the interaction between them.

    Signup and view all the flashcards

    Frequency Domain

    A mathematical representation of an image in the frequency domain, showing the distribution of frequencies within the image.

    Signup and view all the flashcards

    Gaussian Noise

    A type of noise that follows a Gaussian distribution, exhibiting a bell-shaped curve.

    Signup and view all the flashcards

    Rayleigh Noise

    A type of noise that follows a Rayleigh distribution, often found in radar signals.

    Signup and view all the flashcards

    Gamma Noise

    A type of noise that follows a Gamma distribution, often found in astronomical images.

    Signup and view all the flashcards

    Exponential Noise

    A type of noise that follows an exponential distribution, often found in communication channels.

    Signup and view all the flashcards

    Uniform Noise

    A type of noise where all values are equally likely within a specific range.

    Signup and view all the flashcards

    Impulse (Salt & Pepper) Noise

    A type of noise characterized by randomly scattered white and black pixels, resembling salt and pepper.

    Signup and view all the flashcards

    Probability Distribution Function (PDF) of Impulse Noise

    The probability of a pixel being corrupted into a specific gray level. For salt and pepper noise, it represents the probability of a pixel becoming white or black.

    Signup and view all the flashcards

    Spatial Filter

    A type of digital image filter that operates directly on the pixel values of an image.

    Signup and view all the flashcards

    Frequency Domain Filter

    A type of filter that operates on the frequency representation of an image.

    Signup and view all the flashcards

    Order-Statistics Filter

    A type of filter that uses the order of pixel values to perform operations. Examples include minimum, maximum, and median filters.

    Signup and view all the flashcards

    Adaptive Filter

    A type of filter that adapts its behavior based on local characteristics of the image. This allows for better noise removal and detail preservation.

    Signup and view all the flashcards

    Median Filter

    A filter that replaces the pixel value with the median of its surrounding neighborhood, effectively smoothing noise and preserving edges.

    Signup and view all the flashcards

    Adaptive Median Filter

    A median filter that adapts its window size based on local image characteristics. It is particularly effective for removing salt and pepper noise.

    Signup and view all the flashcards

    Mean Filter

    A filter that replaces the pixel value with the average of its surrounding neighborhood, This can blur edges and reduce details in the image.

    Signup and view all the flashcards

    Gaussian Filter

    A filter that applies a weighted average to surrounding pixels, where weights correspond to a Gaussian function. It smooths noise while preserving edges more effectively than a mean filter.

    Signup and view all the flashcards

    Image Morphology

    A set of mathematical operations that perform specific manipulations on images, often for noise removal and shape analysis.

    Signup and view all the flashcards

    Non-Local Means Filter

    A filter that compares a pixel to its surrounding neighborhood and uses similar patches to estimate its true value. It is effective for removing noise while preserving fine details.

    Signup and view all the flashcards

    Determining Noise Models

    The process of identifying the type of noise corrupting an image based on the probability distribution of pixel values.

    Signup and view all the flashcards

    Test Pattern Image

    A test image widely used to demonstrate the effect of various noise models. It contains distinct features for visually inspecting the noise.

    Signup and view all the flashcards

    Image Restoration in the Presence of Noise Only

    A method for estimating the original image when only noise is present. It often involves spatial filtering techniques.

    Signup and view all the flashcards

    Spatial Filtering

    A filter that operates on the pixel values of an image to reduce noise, including order-statistics and adaptive filters.

    Signup and view all the flashcards

    Order-Statistics Filters

    Filters that utilize the order of pixel values to determine the output, such as minimum, maximum, and median filters.

    Signup and view all the flashcards

    Min Filter

    A filter designed to find the minimum value within a neighborhood and reduce salt noise, often used for highlighting dark areas.

    Signup and view all the flashcards

    Max Filter

    A filter designed to find the maximum value within a neighborhood and reduce pepper noise, often used for highlighting bright areas.

    Signup and view all the flashcards

    Adaptive Filters

    Filters that modify their behavior based on local image characteristics, adapting to varying noise levels and details.

    Signup and view all the flashcards

    Adaptive Median Filter

    An adaptive median filter that seeks to remove impulse noise while preserving details and smoothing non-impulse noise.

    Signup and view all the flashcards

    Mask Region (Sxy)

    The neighborhood or region of pixels surrounding a target pixel used by filtering operations.

    Signup and view all the flashcards

    Minimum Gray Level (zmin)

    The minimum gray level value within the mask region.

    Signup and view all the flashcards

    Maximum Gray Level (zmax)

    The maximum gray level value within the mask region.

    Signup and view all the flashcards

    Median Gray Level (zmed)

    The median gray level value within the mask region.

    Signup and view all the flashcards

    Gray Level at Coordinates (zxy)

    The gray level value at the specific coordinates (x, y).

    Signup and view all the flashcards

    Maximum Mask Size (Smax)

    The maximum allowed size of the mask region during adaptive filtering.

    Signup and view all the flashcards

    Study Notes

    Chapter 24 - Quality Management

    • Quality management is concerned with ensuring the required level of quality is achieved in a software product.
    • Two principal concerns are at the organizational and project level.
    • At the organizational level, quality management establishes a framework of organizational processes and standards leading to high-quality software.
    • At the project level, quality management involves applying specific quality processes and checking that these planned processes are followed. It also establishes a quality plan for a project. This plan outlines quality goals and defines the processes and standards to be used.
    • Quality management activities provide an independent check on the software development process.
    • The quality management process checks project deliverables ensuring consistency with organizational standards and goals.
    • The quality team should be independent from the development team to maintain an objective view of the software.
    • Quality management is particularly important for large, complex systems, creating documentation of progress and continuity as the development team changes. For smaller systems, establishing a quality culture is a focus.
    • Agile development practices require evolving quality management techniques.

    Quality Planning

    • A quality plan details desired product qualities, how they're assessed, and defines significant quality attributes.
    • The plan defines the quality assessment process.
    • The plan specifies organizational standards to be applied and defines new ones, when necessary.
    • Quality plans should be concise documents.

    Quality Plans Structure

    • Quality plan structure includes:
      • Product introduction
      • Product plans
      • Process descriptions
      • Quality goals
      • Risk and risk management

    Scope of Quality Management

    • Quality management is important for large complex systems because it provides a record of progress and helps with development continuity.
    • For smaller systems, less documentation is needed, and a quality culture is important.
    • Techniques need to evolve in the context of agile development, becoming more informal.

    Software Quality

    • Quality, in a simple sense, means the product meets its specifications.
    • This is problematic for software systems. There's often a tension between customer (e.g., efficiency, reliability) and developer (e.g., maintainability, reusability) quality requirements.
    • Some software quality requirements are difficult to specify unambiguously.
    • Specifications may be incomplete or inconsistent.
    • Focus may be on "fitness for purpose" rather than strict specification conformance.

    Software Fitness for Purpose

    • Questions to consider for fitness for purpose:
      • Has the software been properly tested?
      • Is the software dependable for use?
      • Is performance acceptable for normal use?
      • Is the software usable?
      • Is the software well-structured and understandable?
      • Have programming and documentation standards been followed?

    Non-Functional Characteristics

    • Subjective quality of a software system is based largely on non-functional characteristics.
    • Functionality not meeting expectations can often be worked around. But unreliability or slowness make achieving user goals practically impossible.

    Software Quality Attributes

    • A table lists attributes (safety, security, reliability, robustness, understandability, testability, adaptability, modularity, complexity, portability, usability, reusability, efficiency, learnability).

    Quality Conflicts

    • Not all attributes can be optimized in a system. For example, improving robustness may reduce performance.
    • The quality plan should define the most important quality attributes for the software being developed.
    • The plan should define the quality assessment process.

    Process and Product Quality

    • Developed product quality depends on the quality of the production process.
    • This is important in software development, as some product quality attributes are hard to assess.
    • There's a complex relationship between software processes and product quality.
    • Application of individual skills and experiences is important.
    • Factors such as new application design, or accelerated schedules may impair product quality.

    Process-Based Quality (Flowchart)

    • The process involves defining, developing, assessing product quality and deciding to either improve the process or standardize the process.

    Quality Culture

    • Quality managers should develop a "quality culture."
    • All software developers should be committed to high product quality.
    • Teams should take responsibility for work quality and develop quality improvement approaches.
    • Managers should support people interested in quality aspects and encourage professionalism among team members.

    Software Standards

    • Standards define required attributes of products or processes, playing an important role in quality management.
    • Standards can be international, national, organizational, or project based.

    Importance of Standards

    • Encapsulating best practices helps avoid repeating past mistakes.
    • Standards provide a framework to define quality views and support continuity, especially for new staff.

    Product and Process Standards

    • Product standards apply to the software being developed. They include document structures, such as requirements documents, documentation standards, and coding standards.
    • Process standards dictate the procedures during software development, including specification, design, and validation processes.

    Product and Process Standards (Tables)

    • Tables present examples of standards for both product and processes such as:
      • Design review form, Requirements document structure, Method header format, Java Programming Style, Project Plan Format and Change Request Form, Design review conduct, Submission of new code, Version release process, Project plan approval process, Change control process, and Test recording process.

    Problems with Standards

    • Engineers may not find standards relevant or up-to-date.
    • Excessive bureaucratic form filling is often involved.
    • Lack of supporting software tools can make standards implementation tedious.

    Standards Development

    • Involve software engineers in selecting product standards, as understanding why is important.
    • Standards must be regularly reviewed and modified to reflect changing technologies.
    • Ensure tool support is available to make standards-based development easier.

    ISO 9001 Standards Framework

    • ISO 9001 is an international standard for developing quality management systems, applicable to organizations that design, develop, and maintain products (including software).
    • It gives general quality principles, documents processes, and defines organizational procedures. These procedures should be documented in an organizational quality manual, detailing core processes like business acquisition, design & development, supplier management, and supporting processes (configuration, inventory, service, & support).

    ISO 9001 Core Processes (Diagram)

    • A diagram shows core processes for ISO 9001, linked to support processes to demonstrate the process interactions involved.

    ISO 9001 and Quality Management (Diagram)

    • A diagram illustrates how ISO 9001 quality models, organization quality manuals, and project quality plans lead to an organization quality process and project quality management, showing the relationship between these elements.

    ISO 9001 Certification

    • Quality standards and procedures should be formally documented in an organizational quality manual.
    • An external body may certify the quality manual's conformance to ISO 9000 standards.
    • Some customers require suppliers to have ISO 9000 certification, but flexibility is increasingly recognized.

    Software Quality and ISO9001

    • Conformance to standards is the focus of ISO 9001, not user experience.
    • Test coverage standards may overlook the user experience and allow for incomplete testing.

    Reviews and Inspections

    • Reviews/inspections are quality assurance activities checking project deliverables.
    • They're used to find potential problems in processes/systems and associated documentation.
    • Several types exist with different objectives, like inspections for defect removal (product), reviews for progress assessment (product and process), and quality reviews (product and standards).

    Quality Reviews

    • Groups examine parts/all of a software system and its documentation (code, designs, specifications, test plans, standards).
    • Reviews 'sign off' documents or software, confirming progress approval by management.

    Phases in the Review Process

    • Pre-review activities concern planning and preparation.
    • Review meetings involve the author walking the document through with the review team.
    • Post-review activities address problems and issues raised.

    The Software Review Process (Diagram)

    • A diagram shows stages in a software review process (planning, individual preparation, review meeting, error correction, improvement, and follow-up checks).

    Distributed Reviews

    • Review processes usually assume face-to-face meetings, but distributed teams make this impractical; remote reviews and shared documents are solutions.

    Program Inspections

    • Inspections are peer reviews where engineers examine systems to find anomalies or defects.
    • No execution is required, making them suitable before implementation.
    • They can inspect any aspect of a system, like requirements, design, and test data.

    Inspection Checklists

    • Checklists of common errors (programming language–dependent) aid inspections, with more comprehensive checklists for less strongly typed languages.

    Inspection Checklist (a) (Table)

    • A table provides a checklist of specific errors/faults categorized by data faults, control faults, and input/output faults.

    Inspection Checklist (b) (Table)

    • A table provides a checklist of specific errors/faults categorized by Interface faults, Storage management faults, and Exception management faults.

    Quality Management and Agile Development

    • Agile quality management is informal and based on a quality culture where all developers are responsible for software quality.
    • Agile development emphasizes avoiding bureaucratic overhead, as opposed to standards-based models like ISO9001. It relies on a quality culture and informal methods.

    Shared Good Practice

    • Developers are responsible for peer reviews of their own code before check-in to the build system..
    • Developers should not check-in code that breaks the entire system.
    • Developers should fix their own errors or problems, rather than needing to reassign tasks.

    Reviews and Agile Methods

    • Review processes in agile software development are generally informal.
    • Scrum has review meetings after each iteration.
    • Extreme Programming uses pair programming to continually examine and review code.

    Pair Programming

    • Two developers work together on code development.
    • This continuous examination fosters deep program understanding.
    • This deep knowledge is difficult with other inspection methods, potentially identifying bugs that would be missed otherwise.

    Pair Programming Weaknesses

    • Mutual misunderstandings among developers can result in repeated mistakes. Discussions might reinforce these mistakes.
    • Pairs might avoid looking for problems, to speed development.
    • Close relationships might foster reluctance to point out faults in each other's work.

    Agile QM and Large Systems

    • In large system development, minimum-documentation agile approaches can be difficult.
    • Customers' existing measurement processes may affect the development team's project reporting.
    • Distributed teams may struggle with informal communications.
    • Changing teams make it harder to understand long-term system development without explicit documentation.

    Software Measurement

    • Software measurement derives a numerical value for aspects of a software product or process.
    • This enables objective comparisons between techniques and processes.

    Software Metric

    • Various types of measurements exist for software systems, processes, or their related documentation, such as lines of code, the Fog Index, and numbers of person-days required to develop.
    • Examples of software metrics are lines of code, the fog index, and number of person-days.

    Types of Process Metrics

    • Time to complete a process (total time, time spent by individual engineers).
    • Resources for a particular process (effort in person-days, costs).
    • Number of occurrences of events (defects discovered, changed requirements).

    Predictor/Product and Control/Process measurements

    • Predictor metrics (product metrics) are related to the software itself. Examples include cyclomatic complexity, identifier lengths, and the number of attributes linked to objects in designs.
    • Control metrics measure processes, such as time and resource use in a process. Managers use process and predictor metrics to decide if process changes are necessary or if a software is ready for release.

    Use of Software System Measurements

    • Assigning values to system quality attributes (e.g., measuring and aggregating cyclomatic complexity to assess maintainability).

    Identifying Sub-Standard Quality Components

    • Measurements can reveal components that deviate from the norm (e.g., with high complexity) that likely contain more bugs.

    Metrics Assumptions

    • Software properties can be measured accurately.
    • A direct relationship exists between what is measured, and what is desired to know. (often a difficult relationship to validate.)

    Relationships between Internal and External Software (Diagram)

    • A diagram shows relationships between external quality attributes (maintainability, reliability, reusability, usability) and internal attributes (size, depth of inheritance trees, errors, etc).

    Problems With Measurement in Industry

    • Quantifying return on investment is difficult.
    • Lack of standardized software metrics or processes for analysis prevents generalization and comparison.
    • Software processes are often non-standardized in companies.
    • Much work focuses on code measurement, especially in plan-driven developments, and new complexities are created by using ERP systems or COTS systems.
    • Measurement adds additional overhead.

    Empirical Software Engineering

    • Measurement/metrics form the basis for empirical software engineering that experiments on software systems, gathers project data, creates hypotheses, and validates methods with data about real projects.

    Product Metrics (Classes)

    • Dynamic metrics are gathered during program execution (e.g., response time).
    • Static metrics derive from product representations and can help assess things like complexity, understandability, maintainability, and reliability. Some examples, such as the length of the code are important metrics that relate to product characteristics.

    Dynamic and Static Metrics

    • Dynamic metrics are directly related to software quality attributes (e.g., measuring the time to response).
    • Static metrics have an indirect correlation with attributes; it requires deriving relationships.

    Static Software Product Metrics

    • Metrics (fan-in, fan-out) relate to code that calls other functions, measuring the tight coupling to the entire design.
    • Some metrics like the length of code correlate with complexity.

    Static Software Product Metrics (Tables)

    • Tables present metrics like cyclomatic complexity, identifying length, conditional nesting, and the Fog index.

    The CK Object-Oriented Metrics Suite

    • Weighted Methods per Class (WMC): Counts methods in a class, weighted by their complexities.
    • Depth of Inheritance Tree (DIT): Measures levels in an inheritance tree.
    • Number of Children (NOC): Counts immediate subclasses of a class, a breadth measure.

    The CK Object-Oriented Metrics Suite (Tables)

    • Tables provide descriptions for Coupling between Classes (CBO), Response for a Class (RFC), and Lack of Cohesion in Methods (LCOM).

    Software Component Analysis

    • Individual components can be analyzed separately using different metrics that have similar interpretations across various components.
    • The values of extracted measurements often are compared across components and compared with historical data.
    • Anomalous measurements might highlight problems in components.

    The Process of Product Measurement (Diagram)

    • Process diagrams to detail the steps involved in measuring software quality and characteristics - selecting components to be assessed, choosing measurements to make, measuring characteristics of components, identifying anomalous measurements, and analyzing anomalous components, to show the process interactions involved.

    Measurement Ambiguity

    • Quantitative data from software or processes needs to be analyzed to understand its meaning.
    • This is hard because assumptions made may not be valid, which also means that measured/observed data may not always represent reality in a useful way.
    • Misinterpretations or incorrect inferences are possible.
    • The context of data collection is crucial.

    Measurement Surprises

    • Reducing faults might lead to increased help desk calls as users encounter the software in different ways, leading to different types of help desk tickets.

    Software Context

    • The measured process or product is not isolated; business environments and practices constantly shift; these shifts will invalidate the meaning that can be made from measurements made at one time and compared to another.

    Software Analytics

    • Software analytics applies analytics to software data to empower managers and developers with shared insights and better decision-making.

    Software Analytics Enablers

    • Automated user data collection from software when in use is an enabler.
    • Open-source software platforms and repositories are resources for analysis.

    Analytics Tool Use

    • Tools should be user-friendly and produce succinct output.
    • They should run quickly and incorporate parameters for insight.
    • Tools should be interactive, allowing managers to explore analyses.

    Status of Software Analytics

    • Software analytics is still maturing and it's too early to predict its full impact.
    • Big data challenges persist—collecting, and analyzing software product data, rather than custom software for analysis, creates challenges for companies of different sizes, especially smaller ones.

    Key Points

    • Good quality management focuses on reaching the required standards of defects, maintainability, reliability, portability, etc.
    • Standards help in quality assurance.
    • Methodical evaluation of deliverables is critical.
    • Agile quality management relies on a culture of developers working together, emphasizing less formality and more team collaboration.
    • Software measurements can produce quantitative data about software and processes, offering insights into anomalies.
    • Metrics offer insights into product and process quality - anomalies need to be examined.
    • Analytics use large data volumes to understand software relationships and can aid in improving processes.

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Related Documents

    Image Restoration PDF

    Description

    Explore the principles of quality management in software development as outlined in Chapter 24. This chapter focuses on both organizational and project-level concerns, emphasizing the importance of establishing quality processes and frameworks. Learn how quality management activities ensure adherence to standards and objectives.

    More Like This

    PALM Presentation Quiz
    10 questions
    Challenges in Software Development
    18 questions
    Software Quality Fundamentals
    10 questions
    Use Quizgecko on...
    Browser
    Browser