Software Product Metrics

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

Match each McCall's Quality Factor with its primary focus:

Maintainability = Ease of modifying the software after delivery Portability = Ease of transferring the software to another environment Reusability = Extent to which code can be used in other applications Interoperability = Ability of the software to interact with other systems

Match each term with its correct definition in the context of software metrics:

Measure = A quantitative indication of the extent, amount, dimension, capacity, or size of some attribute of a product or process Metric = A quantitative measure of the degree to which a system, component, or process possesses a given attribute Indicator = A metric or combination of metrics that provide insight into the software process, a software project, or the product itself Goal = A specific objective that a measurement aims to achieve

Match the following measurement principles with their description:

Objectives of Measurement = Should be established before data collection begins Technical Metric Definition = Should be defined in an unambiguous manner Metrics Derivation = Should be derived based on a theory that is valid for the domain of application Metrics Tailoring = Should be tailored to best accommodate specific products and processes

Match the following stages of the measurement process with their description:

<p>Formulation = Derivation of software measures and metrics appropriate for the software's representation Collection = Mechanism used to accumulate data required to derive the formulated metrics Analysis = Computation of metrics and the application of mathematical tools Interpretation = Evaluation of metrics results to gain insight into the quality of the representation</p> Signup and view all the answers

Match the elements of the Goal Definition Template with their purpose:

<p>Analyze = Name of activity or attribute to be measured For the purpose of = Overall objective of the analysis With respect to = Aspect of the activity or attribute that is considered From the viewpoint of = People who have an interest in the measurement</p> Signup and view all the answers

Match the attributes of effective software metrics with their descriptions:

<p>Simple and Computable = Easy to derive and does not demand inordinate effort or time Empirically Persuasive = Satisfies the engineer's intuitive notions about the product attribute Consistent and Objective = Always yields unambiguous results Effective Feedback = Provides information that can lead to a higher quality end product</p> Signup and view all the answers

Match the following data collection and analysis principles with their descriptions:

<p>Data Collection Automation = Whenever possible, data collection and analysis should be automated Valid Statistical Techniques = Should be applied to establish relationships between product attributes and quality Interpretative Guidelines = Should be established for each metric to provide context</p> Signup and view all the answers

Match the following types of Function-Based Metrics with their definitions:

<p>External Inputs (Els) = Data entering the system from outside External Outputs (EOs) = Data leaving the system to the outside External Inquiries (EQs) = Requests from outside that trigger a response Internal Logical Files (ILFs) = Data stored within the system</p> Signup and view all the answers

Match the Architectural Design Metrics with their corresponding formulas:

<p>Structural Complexity = $g(fan-out)$ Data Complexity = $f(input &amp; output \ variables, fan-out)$ System Complexity = $h(structural &amp; data \ complexity)$ HK Metric = Function of fan-in and fan-out</p> Signup and view all the answers

Match the OO Design Characteristics (as described by Whitmire) with their definitions:

<p>Size = Defined in terms of views: population, volume, length, functionality Complexity = How classes of an OO design are interrelated Coupling = Physical connections between elements of the OO design Completeness = Degree to which a design component can be reused</p> Signup and view all the answers

Match the following distinguishing characteristics of OO Metrics with their descriptions:

<p>Localization = The way in which information is concentrated in a program Encapsulation = The packaging of data and processing Information Hiding = Hidden operational details behind a secure interface Inheritance = Manner in which responsibilities of one class are propagated to another</p> Signup and view all the answers

Match class-oriented metrics (Proposed by Chidamber and Kemerer) with its description:

<p>Weighted methods per class = Complexity of the class Depth of the inheritance tree = How far down the hierarchy the class is Coupling between object classes = Dependencies between classes Lack of cohesion in methods = How related the class's methods are</p> Signup and view all the answers

Match class-oriented metrics (Proposed by Lorenz and Kidd) with its description:

<p>Class size = Number of methods and attributes in a class Number of operations overridden by a subclass = How many methods are redefined in a subclass Number of operations added by a subclass = How many new methods are added by a subclass Specialization index = Indicates the relative degree of specialization in the class hierarchy</p> Signup and view all the answers

Match the elements of the MOOD Metrics Suite with their descriptions:

<p>Method Inheritance Factor = Extent to which methods are inherited across the class hierarchy Coupling Factor = Measure of the degree of interconnection between classes Polymorphism Factor = Extent to which polymorphism is used in the system</p> Signup and view all the answers

Match the Operation-Oriented Metrics (Proposed by Lorenz and Kidd) to its description:

<p>Average Operation Size = Average lines of code in an operation Operation Complexity = Complexity within a method Average Number of Parameters per Operation = Average number of parameters passed in methods</p> Signup and view all the answers

Match Component-Level Design Metrics with their description.:

<p>Cohesion metrics = Focus of data objects Coupling metrics = Function of input and output parameters Complexity metrics = Cyclomatic complexity</p> Signup and view all the answers

Match Interface Design Metrics with their description.:

<p>Layout appropriateness = Layout entities and cost of making transitions among entities</p> Signup and view all the answers

Match design Quality Metrics for WebApps with their description.:

<p>User interface = Promote usability Aesthetics = Application domain and pleasing to the user Content = Imparts the most information with the least effort WebApp Architecture = Accommodate the special goals and objectives of WebApp users</p> Signup and view all the answers

Match Hallstead's Software Science Metrics with its description.:

<p>Comprehensive collection of metrics = Number of operators and operands Controversial = Laws generated substantial controversy Experimental Verification = Performed for selected programming languages</p> Signup and view all the answers

Match Software testing measurements derived from Hallstead with its description.:

<p>Lack of cohesion in methods (LCOM) = Measures the relationships between methods in the same class Percent public and protected (PAP) = Ratio of public and protected members to the total members of the class Public access to data members (PAD) = Percentage of data members with public access<br /> Number of root classes (NOR) = Number of classes in the class hierarchy</p> Signup and view all the answers

Match Software Maintenance Metric Definitions with their description:

<p>MT = The number of Modules in the Current Release Fc = The number of Modules in the Current Release that have been Changed Fa = The number of Modules in the Current Release that have been Added Fd = The number of Modules from the Preceding Release that were Deleted in the Current Release</p> Signup and view all the answers

Match principles of Goal-Oriented Software Measurement to the action

<p>Goal = establish an explicit measurement Questions = define a set of questions that must be Metrics = identify well-formulated that help to</p> Signup and view all the answers

Match the following stages of the measurement process with an example.:

<p>Formulation = Identify the lines of code needing to be measured Collection = Run script to retrieve the number of lines of code Analysis = Create scatterplot that maps the lines of code to test cases Interpretation = A large amount of code may mean it will take substantial resources and time to test</p> Signup and view all the answers

Match Function-Based Metrics with the impact on the value of FP:

<p>External Inputs (Els) = Increase the FP as it improves testabiltiy with additional data External Outputs (EOs) = Increase the FP when the information is more complex External Inquiries (EQs) = The FP remains unchanged Internal Logical Files (ILFs) = Increase FP when there additional external systems</p> Signup and view all the answers

Match the attributes of Halstead’s Software Science with their impact on software testing effort.

<p>Program Vocabulary = Larger vocabulary typically implies more complex code, increasing testing effort Program Length = Longer programs mean more code to test, leading to increased testing effort Estimated Length = Discrepancies between estimated and actual length may indicate inconsistencies or issues needing further investigation during testing Difficulty = Higher difficulty implies the code is harder to understand and test, thus increasing testing effort</p> Signup and view all the answers

Match the WebApp Metrics to their corresponding Description with their impact on usability.

<p>Content Quality = High-quality helps in overall usability Navigation Structure = A well-designed structure significantly enhances the user experience Performance = A performant site will increase usability Accessibility = A webapp that doesn't conform to accessibility is less usable</p> Signup and view all the answers

Flashcards

What is a measure?

A quantitative indication of the extent, amount, dimension, capacity, or size of some attribute of a product or process.

What is a metric?

A quantitative measure of the degree to which a system, component, or process possesses a given attribute.

What is an indicator?

A metric or combination of metrics that provide insight into the software process, a software project, or the product itself.

What is Formulation?

The derivation of software measures and metrics appropriate for the representation of the software that is being considered.

Signup and view all the flashcards

What is Collection?

The mechanism used to accumulate data required to derive the formulated metrics.

Signup and view all the flashcards

What is Analysis?

The computation of metrics and the application of mathematical tools.

Signup and view all the flashcards

What is Interpretation?

The evaluation of metrics results in an effort to gain insight into the quality of the representation.

Signup and view all the flashcards

What is Feedback?

Recommendations derived from the interpretation of product metrics transmitted to the software team.

Signup and view all the flashcards

What is the Goal/Question/Metric Paradigm?

A way to establish an explicit measurement goal that is specific to the process activity or product characteristic.

Signup and view all the flashcards

What does it mean for metrics to be simple and computable?

Metrics easily learned and computed without excessive effort/time.

Signup and view all the flashcards

What does it mean for metrics to be empirically and intuitively persuasive?

Metrics satisfying engineers' intuition about the product attribute.

Signup and view all the flashcards

What does it mean for metrics to be consistent and objective?

Metrics that always yield unambiguous results.

Signup and view all the flashcards

What does it mean for metrics to be consistent in its use of units and dimensions?

Using measures consistently, avoiding bizarre combinations of units.

Signup and view all the flashcards

What does it mean for metrics to be programming language independent?

Metrics based on analysis/design models, not the programming language itself.

Signup and view all the flashcards

What does it mean for metrics to be an effective mechanism for quality feedback?

Metrics providing information that leads to a higher quality end product.

Signup and view all the flashcards

What is function-based metrics?

Use of the function point as a normalizing factor or a measure of the size for specification

Signup and view all the flashcards

What is specification metrics?

Indication of quality by measuring the number of requirements by type

Signup and view all the flashcards

What are architectural design metrics?

Structural complexity = g(fan-out), Data complexity = f(input & output variables, fan-out), System complexity = h(structural & data complexity)

Signup and view all the flashcards

What is the HK metric?

Architectural complexity as a function of fan-in and fan-out

Signup and view all the flashcards

What are Morphology metrics?

A function of the number of modules and the number of interfaces between modules.

Signup and view all the flashcards

What is localization?

The way in which information is concentrated in a program

Signup and view all the flashcards

What is encapsulation?

The packaging of data and processing

Signup and view all the flashcards

What is information hiding?

The way in which information about operational details is hidden by a secure interface

Signup and view all the flashcards

What are the class-oriented metrics proposed by Chidamber and Kemerer?

Weighted methods per class, depth of the inheritance tree, number of children, coupling between object classes, response for a class, lack of cohesion in methods

Signup and view all the flashcards

What are the class-oriented Metrics proposed by Lorenz and Kidd?

Class size, number of operations overridden by a subclass, number of operations added by a subclass, specialization index

Signup and view all the flashcards

What are operation-oriented metrics?

Average operation size, operation complexity, average number of parameters per operation

Signup and view all the flashcards

What are Cohesion metrics?

A function of data objects and the focus of their definition

Signup and view all the flashcards

What are Coupling metrics?

A function of input and output parameters, global variables, and modules called

Signup and view all the flashcards

What are Complexity metrics?

Hundreds have been proposed (e.g., cyclomatic complexity)

Signup and view all the flashcards

What is Layout appropriateness?

A function of layout entities, the geographic position and the “cost” of making transitions among entities

Signup and view all the flashcards

Study Notes

  • Product Metrics are an important part of software quality assessment.

McCall's Triangle of Quality

  • Maintainability, Flexibility, and Testability are related to product revision.
  • Portability, Reusability, and Interoperability are related to product transition.
  • Correctness, Usability, Efficiency, Reliability, and Integrity are related to product operation.
  • McCall's quality factors, proposed in the early 1970s, remain valid today and into the 21st century.

Measures, Metrics, and Indicators

  • A measure provides a quantitative indication of the extent, amount, dimension, capacity, or size of some attribute of a product or process.
  • A metric is defined by the IEEE glossary as a quantitative measure of the degree to which a system, component, or process possesses a given attribute.
  • An indicator is a metric or combination of metrics that provide insight into the software process, a software project, or the product itself.

Measurement Principles

  • The objectives of measurement should be established before data collection begins.
  • Each technical metric should be defined in an unambiguous manner.
  • Metrics should be derived based on a theory that is valid for the domain of application.
  • Metrics should be tailored to best accommodate specific products and processes.

Measurement Process

  • Formulation is the derivation of software measures and metrics appropriate for the representation of the software being considered.
  • Collection is the mechanism used to accumulate data required to derive the formulated metrics.
  • Analysis is the computation of metrics and the application of mathematical tools.
  • Interpretation is the evaluation of metrics results to gain insight into the quality of the representation.
  • Feedback involves recommendations derived from the interpretation of product metrics transmitted to the software team.

Goal-Oriented Software Measurement

  • The Goal/Question/Metric Paradigm involves:
    • Establishing an explicit measurement goal specific to the process activity or product characteristic being assessed
    • Defining a set of questions that must be answered to achieve the goal
    • Identifying well-formulated metrics that help answer these questions
  • Goal definition template: Analyze {the name of activity or attribute to be measured} for the purpose of {the overall objective of the analysis} with respect to {the aspect of the activity or attribute that is considered} from the viewpoint of {the people who have an interest in the measurement} in the context of {the environment in which the measurement takes place}.

Metrics Attributes

  • Metrics should be simple and computable, requiring minimal effort or time to derive.
  • Metrics should be Empirically and intuitively persuasive, satisfying engineer's intuitive notions.
  • Metrics should be consistent and objective, always yielding unambiguous results.
  • Mathematical computation of metrics should use measures that don't lead to bizarre combinations of units.
  • Metrics should be programming language independent, based on analysis/design models or program structure.
  • Metrics serve as an effective mechanism for quality feedback, providing information for higher quality products.

Collection and Analysis Principles

  • Data collection and analysis should be automated whenever possible.
  • Valid statistical techniques should establish relationship between internal product attributes and external quality.
  • Interpretative guidelines and recommendations should be established for each metric.

Metrics for the Requirements Model

  • Function-based metrics use the function point as a normalizing factor or measure of specification "size".
  • Specification metrics are used to indicate quality by measuring the number of requirements by type.

Function-Based Metrics

  • The function point metric (FP), proposed by Albrecht, measures the functionality delivered by a system.
  • Function points are derived from countable measures of software's information domain and assessments of software complexity.
  • Information domain values:
    • Number of external inputs (Els)
    • Number of external outputs (EOs)
    • Number of external inquiries (EQs)
    • Number of internal logical files (ILFs)
    • Number of external interface files (EIFs)

Architectural Design Metrics

  • Structural complexity = g(fan-out)
  • Data complexity = f(input & output variables, fan-out)
  • System complexity = h(structural & data complexity)
  • HK metric measures architectural complexity as a function of fan-in and fan-out.
  • Morphology metrics measure the number of modules and interfaces between modules.

Metrics for OO Design

  • Whitmire describes nine distinct and measurable characteristics of an OO design:
    • Size including population, volume, length, and functionality views
    • Complexity describing the interrelatedness of OO design classes
    • Coupling describing physical connections between OO design elements
    • Sufficiency indicating if an abstraction possesses features
    • Completeness signifying the possibility of a design component being reused.
    • Cohesion, which is the degree to which all operations work together to achieve a single, well-defined purpose
    • Primitiveness; operations and classes for which an operation is atomic,
    • Similarity of two or more classes in terms of their Structure, function, behavior, or purpose
    • Volatility which is the Likelihood that a change will occur

Distinguishing Characteristics: Berard States Special OO metrics need developed by:

  • Localization, information concentration in a program
  • Encapsulation, packaging of data and processing
  • Information Hiding, information about operational details is hidden by a secure interface,
  • Inheritance, how one class' responsibilities are propagated to another
  • Abstraction; design focuses on essential details.

Class-Oriented Metrics

  • Proposed by Chidamber and Kemerer:
    • Weighted methods per class
    • Depth of the inheritance tree
    • Number of children
    • Coupling between object classes
    • Response for a class
    • Lack of cohesion in methods
  • Proposed by Lorenz and Kidd:
    • Class size
    • Number of operations overridden by a subclass
    • Number of operations added by a subclass
    • Specialization index
  • The MOOD Metrics Suite:
    • Method inheritance factor
    • Coupling factor
    • Polymorphism factor

Operation-Oriented Metrics

Proposed by Lorenz and Kidd:

  • average operation size
  • operation complexity
  • average number of parameters per operation

Component-Level Design Metrics

  • Cohesion metrics are a function of data objects and the focus of their definition.
  • Coupling metrics depend on input and output parameters, global variables, and modules called.
  • Complexity metrics have various proposals, including cyclomatic complexity.

Interface Design Metrics

  • Layout appropriateness is a function of layout entities, geographic position, and the "cost" of making transitions.

Design Metrics for WebApps

  • User interface usability
  • WebApp aesthetics in domain and user appeal
  • Content delivery efficiency
  • Navigation efficiency and straightforwardness
  • WebApp architecture for special goals, content structure, and navigation flow
  • Component design reducing procedural complexity; as well as enhancing correctness, reliability, performance

Code Metrics

  • Halstead's Software Science is a comprehensive collection predicated on the number of operators and operands.
    • Halstead's "laws" have faced controversy but have some experimental verification for programming languages.

Metrics for Testing

  • Testing effort can also be estimated using metrics derived from Halstead measures.
  • Binder suggests design metrics that influence the "testability" of an OO system:
    • Lack of cohesion in methods (LCOM)
    • Percent public and protected (PAP)
    • Public access to data members (PAD)
    • Number of root classes (NOR)
    • Fan-in (FIN)
    • Number of children (NOC) and depth of the inheritance tree (DIT)

Maintenance Metrics

  • IEEE Std. suggests a software maturity index (SMI) that indicates the stability of a software
    • Determined by:
      • Mₜ = the number of modules in the current release
      • Fc = the number of modules in the current release that have been changed
      • Fa = the number of modules in the current release that have been added
      • Fd = the number of modules from the preceding release that were deleted in the current release
    • SMI = [Mₜ - (Fc + Fa + Fd)]/Mₜ, as SMI approaches 1.0, the product begins to stabilize

Studying That Suits You

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

Quiz Team

Related Documents

More Like This

Measuring Software Size Metrics Quiz
12 questions
Use Quizgecko on...
Browser
Browser