Podcast
Questions and Answers
Match each McCall's Quality Factor with its primary focus:
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:
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:
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:
Match the following stages of the measurement process with their description:
Match the elements of the Goal Definition Template with their purpose:
Match the elements of the Goal Definition Template with their purpose:
Match the attributes of effective software metrics with their descriptions:
Match the attributes of effective software metrics with their descriptions:
Match the following data collection and analysis principles with their descriptions:
Match the following data collection and analysis principles with their descriptions:
Match the following types of Function-Based Metrics with their definitions:
Match the following types of Function-Based Metrics with their definitions:
Match the Architectural Design Metrics with their corresponding formulas:
Match the Architectural Design Metrics with their corresponding formulas:
Match the OO Design Characteristics (as described by Whitmire) with their definitions:
Match the OO Design Characteristics (as described by Whitmire) with their definitions:
Match the following distinguishing characteristics of OO Metrics with their descriptions:
Match the following distinguishing characteristics of OO Metrics with their descriptions:
Match class-oriented metrics (Proposed by Chidamber and Kemerer) with its description:
Match class-oriented metrics (Proposed by Chidamber and Kemerer) with its description:
Match class-oriented metrics (Proposed by Lorenz and Kidd) with its description:
Match class-oriented metrics (Proposed by Lorenz and Kidd) with its description:
Match the elements of the MOOD Metrics Suite with their descriptions:
Match the elements of the MOOD Metrics Suite with their descriptions:
Match the Operation-Oriented Metrics (Proposed by Lorenz and Kidd) to its description:
Match the Operation-Oriented Metrics (Proposed by Lorenz and Kidd) to its description:
Match Component-Level Design Metrics with their description.:
Match Component-Level Design Metrics with their description.:
Match Interface Design Metrics with their description.:
Match Interface Design Metrics with their description.:
Match design Quality Metrics for WebApps with their description.:
Match design Quality Metrics for WebApps with their description.:
Match Hallstead's Software Science Metrics with its description.:
Match Hallstead's Software Science Metrics with its description.:
Match Software testing measurements derived from Hallstead with its description.:
Match Software testing measurements derived from Hallstead with its description.:
Match Software Maintenance Metric Definitions with their description:
Match Software Maintenance Metric Definitions with their description:
Match principles of Goal-Oriented Software Measurement to the action
Match principles of Goal-Oriented Software Measurement to the action
Match the following stages of the measurement process with an example.:
Match the following stages of the measurement process with an example.:
Match Function-Based Metrics with the impact on the value of FP:
Match Function-Based Metrics with the impact on the value of FP:
Match the attributes of Halstead’s Software Science with their impact on software testing effort.
Match the attributes of Halstead’s Software Science with their impact on software testing effort.
Match the WebApp Metrics to their corresponding Description with their impact on usability.
Match the WebApp Metrics to their corresponding Description with their impact on usability.
Flashcards
What is a measure?
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?
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?
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?
What is Formulation?
Signup and view all the flashcards
What is Collection?
What is Collection?
Signup and view all the flashcards
What is Analysis?
What is Analysis?
Signup and view all the flashcards
What is Interpretation?
What is Interpretation?
Signup and view all the flashcards
What is Feedback?
What is Feedback?
Signup and view all the flashcards
What is the Goal/Question/Metric Paradigm?
What is the Goal/Question/Metric Paradigm?
Signup and view all the flashcards
What does it mean for metrics to be simple and computable?
What does it mean for metrics to be simple and computable?
Signup and view all the flashcards
What does it mean for metrics to be empirically and intuitively persuasive?
What does it mean for metrics to be empirically and intuitively persuasive?
Signup and view all the flashcards
What does it mean for metrics to be consistent and objective?
What does it mean for metrics to be consistent and objective?
Signup and view all the flashcards
What does it mean for metrics to be consistent in its use of units and dimensions?
What does it mean for metrics to be consistent in its use of units and dimensions?
Signup and view all the flashcards
What does it mean for metrics to be programming language independent?
What does it mean for metrics to be programming language independent?
Signup and view all the flashcards
What does it mean for metrics to be an effective mechanism for quality feedback?
What does it mean for metrics to be an effective mechanism for quality feedback?
Signup and view all the flashcards
What is function-based metrics?
What is function-based metrics?
Signup and view all the flashcards
What is specification metrics?
What is specification metrics?
Signup and view all the flashcards
What are architectural design metrics?
What are architectural design metrics?
Signup and view all the flashcards
What is the HK metric?
What is the HK metric?
Signup and view all the flashcards
What are Morphology metrics?
What are Morphology metrics?
Signup and view all the flashcards
What is localization?
What is localization?
Signup and view all the flashcards
What is encapsulation?
What is encapsulation?
Signup and view all the flashcards
What is information hiding?
What is information hiding?
Signup and view all the flashcards
What are the class-oriented metrics proposed by Chidamber and Kemerer?
What are the class-oriented metrics proposed by Chidamber and Kemerer?
Signup and view all the flashcards
What are the class-oriented Metrics proposed by Lorenz and Kidd?
What are the class-oriented Metrics proposed by Lorenz and Kidd?
Signup and view all the flashcards
What are operation-oriented metrics?
What are operation-oriented metrics?
Signup and view all the flashcards
What are Cohesion metrics?
What are Cohesion metrics?
Signup and view all the flashcards
What are Coupling metrics?
What are Coupling metrics?
Signup and view all the flashcards
What are Complexity metrics?
What are Complexity metrics?
Signup and view all the flashcards
What is Layout appropriateness?
What is Layout appropriateness?
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
- Determined by:
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.