1 of 23

2 of 23

  • COCOMO (COnstructive COst MOdel) proposed by Boehm.
  • Divides software product developments into 3 categories:
    • Organic
    • Semidetached
    • Embedded

3 of 23

  • Roughly correspond to:
    • application, utility and system programs respectively.
      • Data processing and scientific programs are considered to be application programs.
      • Compilers, linkers, editors, etc., are utility programs.
      • Operating systems and real-time system programs, etc. are system programs.

4 of 23

  • Organic:
    • Relatively small groups
      • working to develop well-understood applications.
  • Semidetached:
    • Project team consists of a mixture of experienced and inexperienced staff.
  • Embedded:
    • The software is strongly coupled to complex hardware, or real-time systems.

5 of 23

  • For each of the three product categories:
    • From size estimation (in KLOC), Boehm provides equations to predict:
      • project duration in months
      • effort in person-months
  • Boehm obtained these equations:
    • examined historical data collected from a large number of actual projects.

6 of 23

  • Software cost estimation is done through three stages:
    • Basic COCOMO,
    • Intermediate COCOMO,
    • Complete COCOMO.

7 of 23

  • Gives only an approximate estimation:
    • Effort = a1 (KLOC)a2
    • Tdev = b1 (Effort)b2
      • KLOC is the estimated kilo lines of source code,
      • a1,a2,b1,b2 are constants for different categories of software products,
      • Tdev is the estimated time to develop the software in months,
      • Effort estimation is obtained in terms of person months (PMs).

8 of 23

  • Organic :
    • Effort = 2.4 (KLOC)1.05 PM
  • Semi-detached:
    • Effort = 3.0(KLOC)1.12 PM
  • Embedded:
    • Effort = 3.6 (KLOC)1.20PM

9 of 23

  • Organic:
    • Tdev = 2.5 (Effort)0.38 Months
  • Semi-detached:
    • Tdev = 2.5 (Effort)0.35 Months
  • Embedded:
    • Tdev = 2.5 (Effort)0.32 Months

10 of 23

  • Effort is somewhat super-linear in problem size.

Effort

Size

Embedded

Semidetached

Organic

11 of 23

  • Development time
    • sublinear function of product size.
  • When product size increases two times,
    • development time does not double.
  • Time taken:
    • almost same for all the three product categories.

Size

Dev. Time

Embedded

Semidetached

Organic

60K

18 Months

14 Months

30K

12 of 23

  • Development time does not increase linearly with product size:
    • For larger products more parallel activities can be identified:
      • can be carried out simultaneously by a number of engineers.

13 of 23

  • Development time is roughly the same for all the three categories of products:
    • For example, a 60 KLOC program can be developed in approximately 18 months
      • regardless of whether it is of organic, semi-detached, or embedded type.
    • There is more scope for parallel activities for system and application programs,
      • than utility programs.

14 of 23

  • The size of an organic software product has been estimated to be 32,000 lines of source code.

  • Effort = 2.4*(32)1.05 = 91 PM
  • Nominal development time = 2.5*(91)0.38 = 14 months

15 of 23

  • Basic COCOMO model assumes
    • effort and development time depend on product size alone.
  • However, several parameters affect effort and development time:
      • Reliability requirements
      • Availability of CASE tools and modern facilities to the developers
      • Size of data to be handled

16 of 23

  • For accurate estimation,
    • the effect of all relevant parameters must be considered:
    • Intermediate COCOMO model recognizes this fact:
      • refines the initial estimate obtained by the basic COCOMO by using a set of 15 cost drivers (multipliers).

17 of 23

  • If modern programming practices are used,
    • initial estimates are scaled downwards.
  • If there are stringent reliability requirements on the product :
    • initial estimate is scaled upwards.

18 of 23

  • Rate different parameters on a scale of one to three:
    • Depending on these ratings,
      • multiply cost driver values with the estimate obtained using the basic COCOMO.

19 of 23

  • Cost driver classes:
    • Product: Inherent complexity of the product, reliability requirements of the product, etc.
    • Computer: Execution time, storage requirements, etc.
    • Personnel: Experience of personnel, etc.
    • Development Environment: Sophistication of the tools used for software development.

20 of 23

  • Both models:
    • consider a software product as a single homogeneous entity:
    • However, most large systems are made up of several smaller sub-systems.
      • Some sub-systems may be considered as organic type, some may be considered embedded, etc.
      • for some the reliability requirements may be high, and so on.

21 of 23

  • Cost of each sub-system is estimated separately.
  • Costs of the sub-systems are added to obtain total cost.
  • Reduces the margin of error in the final estimate.

22 of 23

  • A Management Information System (MIS) for an organization having offices at several places across the country:
    • Database part (semi-detached)
    • Graphical User Interface (GUI) part (organic)
    • Communication part (embedded)
  • Costs of the components are estimated separately:
    • summed up to give the overall cost of the system.

23 of 23

Provided By : Ally