Class Activity – SOFTWARE METRICS
Why Software Metrics are important?
Software metrics are essential for managing risks, estimating costs, and ensuring
quality in projects. They assess software size, defects, methods, and processes to
improve efficiency and outcomes.
What are the two central attributes used in Software Metrics?
1.Measuring Size
2.Measuring Defect
What LOC measure could be used for?
1. Estimating Effort and Cost
2. Quality assessment
3. productivity assessment
Mention 4 problem with LOC measure:
NO standard Definition
Length of programs are measure rather than size
Fails to take account of redundancy and resuse
Is only available at the end of the development life-cycle
 Calculate the effort, the schedule, the productivity and the average staffing using
 COCOMO method:
       Assumption 1: our project fits the characteristics of Semi-Detached mode
       Assumption 2: The project will have 32,000 Delivered Source Instructions.
       Using the formulas, we can estimate:
       Effort = 3.0*(48.5 )           =146 man-months (PM)
       Schedule                =     2.5*(145.5 )^0.35       = 14.3 months
       Productivity            =         DSI / PM=32/146=0.21
                                      =        DSI/PM
       Average Staffing        =      PM /      months = 145.5/14.3= 10.1     FSP
       (Full-time equivalent Software Personnel = Number of People Working on the
Project at a given Time)
What are the software size attributes?
1. Lines of Code (LOC):
2. Function Points (FP):
3. Unadjusted Function points.
What are the four types of software complexity?
1. – Problem complexity
2. – Structural complexity
3. – Algorithmic complexity
4. – Cognitive complexity
 Calculate the program length, vocab, volume, difficulty and effort using Halstead
 measure for the following block of code:
       if (k < 2)
       {
         if (k > 3)
           x = x*k;
       }
       Program length =17
       Vocabulary=12
       Volume=1037
       Difficulty=7
       Effort-7259
Calculate the program complexity by using McCabe’s Cyclomatic:
number of edges= 9
number of nodes= 7
9-7=2
2+2 =4
V(p)=4
                 Calculate the unadjusted function point for the following software assuming they
                 have average complexity:
                 UFC=4A +5B+4C+10D+7R=58 FPs
                 Construct a GQM graph for the goal of “Evaluate Effectiveness of Programming
                 Tool “X””
          Goal
                                   Evaluate Effectiveness of Programming Tool
     Questions                 How easy is it to                               Are there fewer
                                                      •Does Tool “X”           bugs/errors when
                               learn and use          reduce the time
                               Tool “X”?                                       using Tool “X”?
                                                      taken to complete
                                                      tasks compared to
                                                      other tools?
Metrics              Time taken to learn           Average time to                Number of defects
                     the tool                      complete tasks using           or bugs per line of
                                                   Tool “X” vs. other tools.      code.
                     (hours/days).