Write short notes on COCOMO model.
- COCOMO (Constructive Cost Estimation Model) was proposed by Boehm (1981). According to the Boehm any software development project can be classified into one of the following three categories based on the development complexity: organic, semidetached, and embedded.
- Organic: A development project can be considered of organic type, if the project deals with developing a well understood application program, the size of the development team is small, and the team members are experienced in developing similar types of projects.
- Semidetached: A development project can be considered of semidetached type, if the development consists of a mixture of experienced and inexperienced staff.
- Embedded: A development project is considered to be of embedded type, if the software being developed is strongly coupled to complex hardware.
- According to Boehm, software cost estimation should be done through three stages: Basic COCOMO, Intermediate COCOMO, and Complete COCOMO.
- According to Boehm, software cost estimation should be done through three stages:
Basic COCOMO Model
- The basic COCOMO model gives an approximate estimate of the project parameters
- The basic COCOMO estimation model is given by the following expressions
- Effort = a1 × (KLOC)a2 PM
- Tdev = b1 × (Effort)b2 Months
- KLOC is the estimated size of the software product expressed in Kilo Lines of Code,
- a1, a2, b1, b2 are constants for each category of software products,
- Tdev is the estimated time to develop the software, expressed in months,
- Effort is the total effort required to develop the software product, expressed in person months (PMs).
- The effort estimation is expressed in units of person-months (PM)
- It is the area under the person-month plot as shown in fig
- Effort and the duration estimations obtained using the COCOMO model are called as nominal effort estimate and nominal duration estimate
- The term nominal implies that
- if anyone tries to complete the project in a time shorter than the estimated duration, then the cost will increase drastically
- But, if anyone completes the project over a longer period of time than the estimated, then there is almost no decrease in the estimated cost value
Intermediate COCOMO model
- The basic COCOMO model assumes that effort and development time are functions of the product size alone
- However, a host of other project parameters besides the product size affect the effort required to develop the product as well as the development time
- Therefore, in order to obtain an accurate estimation of the effort and project duration, the effect of all relevant parameters must be taken into account
- The intermediate COCOMO model recognizes this fact and refines the initial estimate obtained using the basic COCOMO expressions by using a set of 15 cost drivers (multipliers) based on various attributes of software development
- The cost drivers can be classified as being attributes of the following items
- Product: The characteristics of the product that are considered include the inherent complexity of the product, reliability requirements of the product, etc.
- Computer: Characteristics of the computer that are considered include the execution speed required, storage space required etc.
- Personnel: The attributes of development personnel that are considered include the experience level of personnel, programming capability, analysis capability, etc.
- Development Environment: Development environment attributes capture the development facilities available to the developers. An important parameter that is considered is the sophistication of the automation (CASE) tools used for software development
Complete COCOMO model
- A major shortcoming of both the basic and intermediate COCOMO models is that they consider a software product as a single homogeneous entity
- Most large systems are made up several smaller sub-systems
- These sub-systems may have widely different characteristics
- E.g., some sub-systems may be considered as organic type, some semidetached, and some embedded
- Also for some subsystems the reliability requirements may be high, for some the development team might have no previous experience of similar development etc.
- The complete COCOMO model considers these differences in characteristics of the subsystems and estimates the effort and development time as the sum of the estimates for the individual subsystems
- The cost of each subsystem is estimated separately
- This approach reduces the margin of error in the final estimate