product metrics an overview. what are metrics? “ a quantitative measure of the degree to which a...

28
Product Metrics An overview

Upload: bryce-wilkinson

Post on 16-Jan-2016

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”

Product MetricsAn overview

Page 2: Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”

What are metrics?

“ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.” [IEE93]

• Attributes of metrics - Simple, persuasive, consistent, Independent and effective

Page 3: Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”

Software Measures

• Processes are collection of software related activities

• Products are any artifacts, deliverables or documents that result from a process activity.

• Within each measure we identify two types of attributes– Internal Attributes are those that can be measured in terms of

the entity itself.

– External Attributes are those that can be measured only with respect to how the product relates to its environment.

Page 4: Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”

Types of Metrics• Metrics for Analysis

• System Size• Functionality Delivered• Specification Quality

• Metrics for the Design• Architectural Metrics• Component Level• Interface Design

• Metrics for the Code• Halstead Metrics• Complexity Metrics• Length Metrics

• Metrics for Testing• Defect metrics

Page 5: Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”

Analysis Model Metrics

• Function – Based Metrics– Function point metric

• Variables• Formula • Questions

• Metrics for Specification Quality– Specificity– Completeness

Page 6: Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”

Design Model Metrics

• Architectural Design Metrics

• Object – Oriented Design Metrics

• Component – Level Design Metrics

• User Interface Design Metrics

Page 7: Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”

Architectural Metrics

• Focus on characteristics of the architecture with emphasis on the structure and effectiveness of modules or components within the architecture.– Structural Complexity

• S(i) = [fout(i)] ^2– Data complexity

• D(i) = v(i) / [fout(i) + 1]– System complexity

• C(i) = S(i) + D(i)Where fout is defined as the number of modules directlyinvoked by module i. v(i) = number of input and outputvariables in or out of i.

• Design Structure Quality Index

Page 8: Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”

Object Metrics• Size:

– Population, Volume, Length, Functionality

• Complexity• Completeness• Cohesion• Coupling - an indication of “connectedness” of

a module with others, global data and environment

• Volatility

Page 9: Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”

9

Object-Oriented

• System size – Number of function calls and objects.

• Class or method size– Size of classes and methods

• Coupling and inheritance– Interdependence of classes. Number and

complexity of relationships.

• Class or method internals– Complexity and level of documentation

Page 10: Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”

User Interface Metrics

• Layout• Absolute and relative position of entities• Frequency of use• “Cost of transition”

• Cohesion • Relative connection between on – screen to other on –

screen content

• Time • Time to achieve an specific action• Time to recover from error• Time to achieve a use case

Page 11: Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”

Source Code Metrics• Lines of code metric

– Lines of code used to develop a program– Set limits on coding lines

• McCabe’s cyclomatic metrics– Path control – Logical decision statements and operators

• Halstead Metrics– Depend on the following measures:

• Number of direct operators• Number of direct operands• Number of operator occurrences• Number of operand occurrences

– Predicts • Length• Volume• Time, effort• Number of errors

Page 12: Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”

Testing Metrics• Information for testing metrics can be gathered thru

various sources:– Function – based metrics– Cyclomatic complexity

• Halstead Metrics for testing

• Metrics for OO Testing– Metrics used in design provide an indication of design

quality– The metrics consider aspects of encapsulation and inheritance

Page 13: Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”

13

Web Projects

Since web projects can are more dynamic than most other types of projects it can be harder to measure them.

• Number of static/dynamic pages

• Number of internal page links

• Number of executable functions (scripts, applets, etc)

Page 14: Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”

Product Metrics Future

• Application Domain Complexity Research

• Automated Product Metric Tools– ESQUT (Evaluation of Software Quality from

User’s viewpoinT)– WEBMETRICS

• Mathematical Product Metrics

Page 15: Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”

15

What are process metrics?

Process metrics really encompasses both process and project metrics.– Process metrics are used to measure the

effectiveness of a development process over multiple projects

– Project metrics are used to evaluate accomplishment of a single development effort

Page 16: Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”

16

Process Metrics

Process Metrics are generally used at the project management level.– Strategic in nature– Main goal is process improvement– Metrics from individuals combined to

provide group/project metrics– Care must be taken to keep individual

metrics private

Page 17: Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”

17

Measurement Methods

Due to the variation in software, and the lack of standards, there are many types of metrics that can be used

• Size-Oriented

• Function-Oriented

• Object-Oriented

• Use-Case Oriented

Page 18: Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”

18

Size-Oriented

• Metrics are normalized based on the size of the software

• Focus on LOC (Lines of Code)– Errors Per KLOC (thousand lines of code)– Defects per KLOC– $ per LOC– Page of documentation per KLOC

Page 19: Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”

19

Function-Oriented

• Metrics are normalized based on program functionality

• Most commonly used metric is the FP (function point)– Errors per Function Point– Defects per FP– $ per FP– Pages of documentation per FP– FP per person-month

Page 20: Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”

20

Object-Oriented

• number of classes reused

• number of classes with defects

Page 21: Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”

21

Metrics Tools

• SynQuest• NEXTRA• AMI• SPQR/20• SOFT-ORG• SQUID M-Basehttp://irb.cs.uni-magdeburg.de/sw-eng/us/CAME/CAME.tlist.shtml

Page 22: Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”

22

Why use Metrics?

"If you can not measure it, you can not improve it.“ – Lord Kelvin

• Characterize - Increase Understanding

• Evaluate

• Predict - Managing Software

• Improve - Guiding Improvements

Page 23: Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”

23

Why use Metrics - Benefits

Although it can be hard to generate metrics from software, there are many benefits

• Manage complexity

• Process improvement

• Quality tracking

• Cost estimation

Page 24: Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”

24

Why use Metrics - Obstacles

"Not everything that can be counted counts, and not everything that counts can be counted.“ - Albert Einstein 

• Takes time and effort away from the project

• Simple project may not benefit

• Projects may vary substantially

• Indicators must be interpreted

Page 25: Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”

25

Why use Metrics – Bottom Line

Provides the best option to standardize the development process to ensure quality and reliability

Page 26: Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”

26

Establishing a Metrics Program

Software Productivity Center, Inc. suggests an 8 step approach:

1. Document the Software Development Process 2. State the Goals 3. Define Metrics Required to Reach Goals 4. Identify Data to Collect 5. Define Data Collection Procedures 6. Assemble a Metrics Toolset 7. Create a Metrics Database 8. Define the Feedback Mechanism

Page 27: Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”

27

Establishing a Metrics Program

Establishing a program takes planning and time to be effective.

• Need historical data from past projects to establish indicators

• Goals have to be well defined to be meaningful

• Those collecting measures need to be vested in the program

Page 28: Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”

CONCLUSIONS

• Problems in products in each phase can be detected and removed at an early stage by using metrics.

• Metrics provide a quantitative and predictive view of potential problems. Thus, they are a powerful tool for product development.

• Metrics are still in a young stage. Research is needed to set a ground for prediction of problems.