Click submit to view solution

Considering your immense expertise in software development, The Absolute Beginners Inc. has recently allotted you a mega project. The goal of the project is to create a database of all Hindi films released since 2000. The software would allow one to generate a list of top ten hit films, top ten flop films, best comedy films, and so on. Using your prior experience you have decided the approximate sizes of each module of the software as follows:

  • Data entry (0.9 KDSI)
  • Data update (0.7 KDSI)
  • Query (0.9 KDSI)
  • Report generation and display (2 KDSI)

Also take into consideration the following cost drivers with their ratings:

  • Storage constraints (Low)
  • Experience in developing similar software (High)
  • Programming capabilities of the developers (High)
  • Application of software engineering methods (High)
  • Use of software tools (High)

(All other cost drivers have nominal rating).

Now answer the following:
  • Applying intermediate COCOMO estimate the minimum size of the team you would require to develop this system
  • Assuming that your client would pay Rs. 50,000 per month of development, how much would be the likely billing?
Learning Objectives:
  1. Identify type of a project as per COCOMO
  2. Prepare an estimate of required effort and cost

Limitations: Values presented here are arbitrary and doesn't relate to real life

Note: The above example has been adapted from COCOMO (Constructive Cost Model), Seminar on Software Cost Estimation WS 2002 / 2003, presented by Nancy Merlo – Schett.

Project Type a b c
2.4 1.05 0.38
Project size (in KDSI)
Effort (in PM)
Tdev (in month)
Effort Adjustment Factor (EAF)
Effort|corrected (in PM)
Tdev|corrected (in month)
# of developers
Cost Drivers Ratings
Very Low Low Nominal High Very High Extra High
Product Attributes
Required Software Reliability 0.75 0.88 1.00 1.15 1.40
Size of Application Database 0.94 1.00 1.08 1.16
Complexity of the Product 0.70 0.85 1.00 1.15 1.30 1.65
Hardware Attributes
Run-time Performance Constraints 1.00 1.11 1.30 1.66
Memory Constraints 1.00 1.06 1.21 1.56
Volatility of the virtual Machine Environment 0.87 1.00 1.15 1.30
Required Turnabout Time 0.85 1.00 1.07 1.15
Personnel Attributes
Analyst Capability 1.46 1.19 1.00 0.86 0.71
Applications Experience 1.29 1.13 1.00 0.91 0.82
Software Engineer Capability 1.42 1.17 1.00 0.86 0.70
Virtual Machine Experience 1.21 1.10 1.00 0.90
Programming Language Experience 1.14 1.07 1.00 0.95
Project Attributes
Application of Software Engineering Methods 1.24 1.10 1.00 0.91 0.82
Use of Software Tools 1.24 1.10 1.00 0.91 0.82
Required Development Schedule 1.23 1.10 1.00 1.04 1.10

int
main(int argc, char **argv)
{
   int x = 10;
   int y = 20;
   int sum;

   sum = x + y;

   printf(Sum of %d and %d is: %d\n", x, y, sum);

   return 0;
}

Note: In cases where you've to enter multiple values (for example, listing the operators from a code snippet), please separate them with a comma

Operators




Operands




The Absolute Beginners Inc. is again at your door! This time their demand is, however, simple. They have a C program, which computes the area of a circle (code shown below). They want it to be rewritten in Java.

int
main(int argc, char **argv)
{
   int radius = 12.34;
   printf("Area of the circle with radius %f is: %f\n", radius, area(radius));
   return 0;
}

float
area(float r) {
   return 22 * r * r / 7;
}

Using Halstead's metrics estimate the effort required to recreate this program.

Learning Objectives:
  • Determining estimated effort using Halstead's metrics
Parameters Value
Total # of operators
Total # of operands
Total # of unique operators
Total # of unique operands
Program length
Program vocabulary
Volume
Difficulty
Effort
Time to implement (in seconds)
solution 1

Applications experience (high): 0.91
Programming language experience (high): 0.95
Application of software engineering methods (high): 0.91
Use of software tools (high): 0.91
Other cost drivers have nominal values (= 1). So, EAF = 0.91 * 0.95 * 0.91 * 0.91 = 0.70

The Operators are The operands are
  • int
  • main
  • char
  • *
  • ()
  • {}
  • =
  • ;
  • +
  • printf
  • ,
  • return
  • argc
  • argv
  • x
  • 10
  • y
  • 20
  • sum
  • "Sum of %d amd %d is: %d \n"
  • 0
solution 3
The Operators are The operands are
  • int
  • main
  • ()
  • int
  • ,
  • char
  • *
  • {}
  • int
  • =
  • ;
  • printf
  • ()
  • ,
  • ,
  • ()
  • area
  • ;
  • return
  • ;
  • float
  • area
  • ()
  • float
  • {}
  • return
  • *
  • *
  • /
  • ;
  • argc
  • argv
  • radius
  • 12.34
  • "Area of the circle with radius %f is: %f\n"
  • radius
  • radius
  • 0
  • r
  • 22
  • r
  • r
  • 7