Software Measurement
The measurement of Software can be classified into Two Categories :
- Direct Measure
- Indirect Measure
- Direct Measure
Measures cost and effort applied, line of code produced, execution speed and defects.
- Indirect Measure
Measures functionality, quality, reliability, efficiency, maintainability, complexity.
Let us discuss the metrics based on these approaches :
Size Oriented Metrics
This kind of measure is normally based on lines of code of the project.
Function Oriented Metrics
This kind of measure is based on functionality of the application.
Attributes of Effective Software Metrics
The effective software metrics should have following attributes :
- Simple and Computable
The derivation of metric should be easy to computer and should not be a time consuming activity.
- Empirically and intuitively persuasive
It should be immediate and can be derived based on observation.
- Consistent and Objectives
The metric should produce unambiguous results. Anybody should get the same result by using these metrics when same set of information is used.
- Consistent in its use of units and dimensions
The mathematical unites and dimensions used for the metric should be consistent. And there should not be intermixing of units.
- Programming language independent
The metric should be based on analysis mode, design model and program structure. It should be independent of programming languages, syntax or semantic of any programming language.
- Metric should be effective mechanism for high quality feedback
The metric should provide a way to produce high quality software product.
Object Oriented Metrics
Lorenz and Kidd have proposed set of metrics for object oriented projects :
- Number of scenario scripts
The number scenarios can be typically obtained by designing the use cases for the system. It basically represents the user interaction with the applications. The total number of scenario is dependent upon size of application and number of test cases.
- Number of Key Classes
In any object oriented design classes are the logical entitles of the system. Hence total number of key classes ultimately represent the amount of effort required to develop software.
- Number of Support Classes
The support classes are logical entities required to support the key classes. Thus total number of support classes represent amount of software reusability and total amount of reusability
- Average number of support class per key class
There are more number of support class per key class for the applications with GUI than applications without GUI. Knowing this aver age number makes the design more simplified.
- Number of Subsystems
Subsystem means aggregation of classes. To schedule the project systematically it is necessary to identify all the subsystem of the system being developed.
No comments:
Post a Comment