Professional Documents
Culture Documents
PROBLEM STATEMENT:
Basic COCOMO
• Organic projects - "small" teams with "good" experience working with "less
than rigid" requirements
• Semi-detached projects - "medium" teams with mixed experience working
with a mix of rigid and less than rigid requirements
• Embedded projects - developed within a set of "tight" constraints
(hardware, software, operational, ......)
Software project ab bb cb db
Organic 2.4 1.05 2.5 0.38
Semi-detached 3.0 1.12 2.5 0.35
Embedded 3.6 1.20 2.5 0.32
Basic COCOMO is good for quick estimate of software costs. However it does
not account for differences in hardware constraints, personnel quality and
experience, use of modern tools and techniques, and so on.
Intermediate COCOMOs
• Product attributes
o Required software reliability
o Size of application database
o Complexity of the product
• Hardware attributes
o Run-time performance constraints
o Memory constraints
o Volatility of the virtual machine environment
o Required turnabout time
• Personnel attributes
o Analyst capability
o Software engineering capability
o Applications experience
o Virtual machine experience
o Programming language experience
• Project attributes
o Use of software tools
o Application of software engineering methods
o Required development schedule
Software project ai bi
Organic 3.2 1.05
Semi-detached 3.0 1.12
Embedded 2.8 1.20
PROGRAM CODE:.
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>
main()
{
int i,ch;
double kloc,iee,eaf,aee,dt,pi;
//double approx_aee,approx_dt,approx_pi;
//double fraction,integer;
struct cost_drivers
{
char a[30];
double r[6];
};
struct cost_drivers drivers[] =
{
{"RELY",.75,.88,1,1.15,1.4,0},
{"DATA",0,.94,1,1.08,1.16,0},
{"CPLX",.7,.85,1,1.15,1.3,1.65},
{"TIME",0,0,1,1.11,1.30,1.66},
{"STOR",0,0,1,1.06,1.21,1.56},
{"VITR",0,.87,1,1.15,1.3,0},
{"TURN",0,.87,1,1.07,1.15,0},
{"ACAP",1.46,1.19,1,.86,.71,0},
{"AEXP",1.29,1.13,1,.91,.82,0},
{"PCAP",1.42,1.17,1,.86,.7,0},
{"VEXP",1.21,1.1,1,.9,0,0},
{"LEXP",1.14,1.07,1,.95,0,0},
{"MODP",1.24,1.1,1,.91,.82,0},
{"TOOL",1.24,1.1,1,.91,.83,0},
{"SCHED",1.23,1.08,1,1.04,1.1,0}
};
printf("ENTER THE NO. OF LINES OF SOURCE CODE (in kloc) : ");
scanf("%lf",&kloc);
iee = 3.2 * (pow(kloc,1.05));
sprintf("\nENTER THE RATING OF EACH COST DRIVERS : \n\n");
eaf = 1;
for (i=0;i<15;i++)
{
while(1)
{
printf("%s", drivers[i].a);
if (drivers[i].r[0] != 0)
printf("\t1.VERY LOW");
if (drivers[i].r[1] != 0)
printf("\t2.LOW");
if (drivers[i].r[2] != 0)
printf("\t3.NOMINAL");
if (drivers[i].r[3] != 0)
printf("\t4.HIGH");
if (drivers[i].r[4] != 0)
printf("\t5.VERY HIGH");
if (drivers[i].rating[5] != 0)
printf(" 6.EXTRA HIGH");
OUTPUT:
EFFORT : 74.341526
TIME : 12.830632
PERSONS : 5.794066
DISCUSSIONS:
Hence effort_adjustment_factor = 1
4. This code could have been further improved to include estimates of effort
required for different phases. In COCOMO, effort for a phase is a defined
percentage of the overall effort.