Metrics: Product, Process and Project

Ace your homework & exams now with Quizwiz!

Halstead's Software Science

A comprehensive collection of metrics all predicated on the number (count and occurrence) of operators and operands within a component or program

Cohesion Metrics

A function of data objects and the locus of their definition.

Coupling Metrics

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

Complex code

A program that is significantly larger than another, size adds to the complexity of the program.

Measure

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

Cyclomatic Complexity

A software metric (measurement). It was developed by Thomas J. McCabe, Sr. in 1976 and is used to indicate the complexity of a program. Not a size metric. A quantitative measure of logical strength of the program. Directly measures the number of linearly independent paths through a program's source code. (Count the number of enclosed area's and add 1 to it to get the cyclomatic complexity)

Example of Software Science

Code Vocabulary = 17

Measurement Process

Formulation - representation of the software that is being considered. Collection - accumulate data required to derive the formulated metrics. Analysis - Computation of metrics and the application of mathematical tools. Interpretation - Metrics results in an effort to gain insight into the quality of the representation. Feedback - Recommendations derived from the interpretation of product metrics transmitted to the software team.

Operators

Function name Brackets { } Parentheses ( ) Type Arithmetic/logic operators (+,/,-,*,&,|)

Complexity Metrics

Hundreds have been proposed(ex. cyclomatic complexity)

Every project should measure?

Inputs - measures of the resources (e.g., people, tools) required to do the work. Outputs - measures of the deliverables or work products created during the software engineering process. Results - measures that indicate the effectiveness of the deliverables.

Why Opt for FP? (Function Point)

Language independent. Does not penalize inventive implementations. Easier to measure the impact of reusable components.

Complexity M

M = E - N + 2P E = the number of edges of the graph. (Edges would be the number of arrows in the graph) N = the number of nodes of the graph. (A code line that is not empty white space is considered a node!) P = the number of connected components. (Typically P is going to be 1)

Metric

Measure of the degree to which a system, component, or process possesses a given attribute.

Indirect Measurement

Measure one or more attributes to measure or infer some attribute. Examples: Pedometer and watch - number of steps taken in a given time interval is used to infer speed.

Indicator

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

(EIs) - Domain Value

Number of external inputs

(EQs) - Domain Value

Number of external inquiries

(EIFs) - Domain Value

Number of external interface files

(EOs) - Domain Value

Number of external outputs

(ILFs) - Domain Value

Number of internal logical files

Object-Oriented Metrics

Number of scenario scripts(use-cases) Number of support classes Average number of support classes per key class(analysis class) Number of subsystems Cohesion and coupling

Software Measurements

Size, Complexity, Understandability, Maintainability, Testability. Quality attributes are often not measured directly.

Function Point Metric(FP)

Used effectively as a means for measuring the functionality delivered by a system.

Direct Measurement

Used to directly measure some property or attribute. Examples: Thermometer, Pedometer - measures the number of steps taken.

Project Metrics

Used to minimize the development schedule by making the adjustments necessary to avoid delays and mitigate potential problems and risks. Used to assess product quality on an ongoing basis and, when necessary, modify the technical approach to improve quality.

How is Cyclomatic Complexity Computed?

Using the control flow graph of the program: The nodes of the graph correspond to indivisible groups of commands of a program, and A directed edge connects two nodes if the second command might be executed immediately after the first command.

Operands

Variables Strings Constants

Process Measurement

We measure the efficiency of a software process indirectly.


Related study sets

Chapter 33: Management of Patients With Nonmalignant Hematologic Disorders 2

View Set

CBF Quiz Questions: Nursing Management During the Postpartum Period

View Set

Chapter 7: Bank Collections, Trade Finance, and Letters of Credit

View Set

Nclex Review: Rheumatoid Arthritis

View Set