Software Measurement
In software measurement, software is measured to find its efficiency and accuracy. The functionality of a software is totally dependent on the measurement process, if a software gives correct output in the software measurement process, then it can be sure that software will give meaningful and valuable information within a defined time.
Measurement in the physical world can be categorised into two ways.
Direct measures of software engineering process
- it includes cost and effort applied It also includes
(0 Lines of Code (LOC) produced
(ii) Execution speed (iii) Memory size
(iv) Defects reported over some period of time
indirect measures of the product
- It includes
(i) Functionality
(ii) Quality
(iii) Complexity u(iv) Efficiency
(v) Reliability and maintainability etc.
Software Metrics (Direct Measure)
Software metrics can be defined as the continuous application of measurement based techniques to the software development process and its products to supply meaningful and timely management information together with the use of those techniques to improve that process and its products.
Categories of Software Metrices
There are three main categories of software metrics which are given below
Product metrics
These metrics describe the characteristics of the product such as size, complexity, design features, performance, efficiency, reliability etc.
Project metrics
These metrics describe the project characteristics and execution. Example of project metrices are
- Number of software developers.
- Staffing pattern over the life cycle of the software.
- Cost and schedule.
Process metrics
These metrics describe the effectiveness and quality of the process that produce the software product. Examples of process metrices are
- Effort required in the process. • Time to produce the product.
- Maturity of the process. Number of defects found during testing.
- Effectiveness of defect removal during developments.
Some Common Software Metrics
LOC (Lines of Code) It specifies size of a software. LOC can also be used to given a more precise characterisation to the, common motions of small, large or very large projects e.g.,
Size Small Medium Large Very large
LOC <2k 2k-8k 8k-32k > 32 k
Person months (Man-months) It specifies the effort needed or spent on a Project.
Normalized Metrics
If measures are normalized, it is possible to create software metrics that enable comparison to broader organisational averages.
Size Oriented Metrics
These metrics are derived by normalizing quality and/or productive, measures by considering the size of software that has been produced.
Productivity = LOC/Person month ; Quality = Defects/LOC ; Cost = Price/WC
Function Oriented Metrics
These metrics use a measure of the functionality delivered by the application as a normalization value. Functionality is measured indirectly
using other direct measures.
Function Point (FP) Metrics
This metric can easily be used to estimate the size of a software product directly form the problem specification. The conceptual idea underlying the function point metric is that the size of a software product is directly dependent on the number of different functions and features it supports. Function point is computed in two steps
(i) The first step is to compute the Unadjusted Function Point (UFP).
UFP = (Number of inputs) * 4 + (Number of output) * 5 + (Number of inquiries) * 4 + (Number of files) * 10 + (Number of interfaces) * 10
Once the UFP is computed the Technical Complexity Factor (TCF) is computed next. The TFP refines the UFP measure by considering 14 other factors such as high transaction rates, throughput and response time requiremnts etc. Each of these 14 factors time assigned a value from 0 (not present or no influence) to 6 (strong influence). The resulting numbers are summed, yielding the total degree of influence.
TCF = (0.65 + 001 *D1) as D1 can vary from 0 to 70, the TCF can vary from 0.65 to 1.35. Finally, FP = UFP * TCF
Key Words Related to Normalized Matrices
- Number of inputs Each data item by user is counted.
- Number of outputs A set of related data items is counted as one output. The output
considered refer to reports printed, screen outputs, error messages produced etc. - Number of inquiries Number of distinct interactive queries which can be made by the
users These inquiries are user commands which require specific action by the system.
.
- Number of files Each logical file is counted. A logical file means group of logically
related data. Thus, logical files can be data structures or physical files.
_ ___________________________ _ _ _ ____________
Indirect Measures –
Indirect measures focus on software reliability and software quality
Software Reliability
It is defined as the ability of. a system or component to perform its required function under stated conditions for a specified period of time. Before the deployment of software products, testing verification and validation are deployment of software products, testing verification are necessary steps which can ensure better software reliability in the product.
Software Quality
One objective of software engineering is to produce good quality maintainable software in time and within budget. if a product is meeting its requirements, we may say, it is a good quality product.
Key Points
- Software reliability is the probability of failure free software operation for a specified period of time in a specified environment.
- When we deal with software quality, a list of attributes (reliability, usability, maintainability and adaptability) is required to be defined that are appropriate for software. –
Project Estimation Techniques
The estimation of various project parameters is a basic project planning activity, The important project parameter that are estimated include project size, effort required to develop the software; project duration and cost.
There are three broad categories of estimation techniuques
Empirical Estimation Techniques
These techniques are based on making an educated guess of the project parameters.
Heuristic Techniques
This technique assumes that the relationships among the different project parameters can be modelled using suitable mathematical expression, Analytical Estimation Techniques
This technique derive the required result starting with certain basic assumptions regarding the project. Thus, unlike emperical and heuristic approach, this approach do have a scientific basis. Example of analytical technique is Halstead’s software science.
Halstead Software Science
Halstead used a set of primitive measures, which can be derived once the design phase is completed and the code is generated.
There measures are as follows
n1 = Number of distinct operators in a program
n2 = Number of distinct operands in a program
N1 = Total number of operators
N2 = Total number of operands
Program length (N) can be calculated by using below equation N = n1 log2 n1 + n2 log2 n2
Program volume (V) can be calculated by using equation given below, volume of information’s unit is in bits
V = N log2 (n1 + n2)
Volume ration (L) must be less than 1 and can be calculated as
L=2/n1 *n2 /N2
Program difficulty level (D)= (n1/2) * (N2 /n2 )
Effort (E)=D*V