Friday, August 7, 2009

Software Metrics


Although general set of standards has been agreed upon, the appropriate metrics to test how well software meets those standards are still poorly defined. Publications by IEEE, have presented numerous potential metrics that can be used to test each attribute. Different metrics may give different rank ordering of the same attribute, making comparisons across products difficult and uncertain.

List of Metrics available

Fault Density

Software purity level

Defect density

Estimated number of faults remaining (by seeding)

Cumulative failure profile

Requirements compliance

Fault days number

Test coverage

Functional or modular test coverage

Data or information flow complexity

Cause and effect graphing

Reliability growth function

Requirements traceability

Residual fault count

Defect indices

Failure analysis elapsed time

Error distribution (s)

Testing sufficiently

Software maturity index

Mean time to failure

Person-hours per major defect detected

Failure rate

Number of conflicting requirements

Software documentation and source listing

Software science measures

Software release readiness

Graph-theoretic complexity


Cyclomatic Complexity

Test accuracy

Minimal unit test case determination

System performance reliability

Run reliability

Independent process reliability

Design structure

Combined hardware and software (system) availability

Mean time to discover the next K-faults


What makes good Metrics?

This is a very interesting question. Many people say that anything we do should be quantitative. Yes, that's absolutely correct. Working in a project, there should be certain measurement criteria for measuring the skills and productivity of every individual in the team. Metrics play an important role in giving a good analysis. Every organization should make a list of metrics applicable in the organization and each employee should be aware of it.

Now let us look at few attributes, which make up good metrics:

  • The metric should be simple and computable so that its easy and straight forward.

  • The metric should be measuring the correct attribute.

  • The metric results should be reproducible.

  • The metric should be consistent in units or dimensions.

  • The metric should be independent of programming language.

  • The metric should provide good and meaningful analysis.

what can be measured with Metrics?

Metrics can measure anything which is quantifiable, like:

  • Effort, time and expenditure in each stage of the project.

  • Number of functionalities implemented.

  • Number of errors reported.

  • Types of errors reported.

  • Project schedules.

  • Benchmark important milestones in the project.

No comments:

Post a Comment