Software Quality Assurance: Estimating Duration and Cost
Software Quality Assurance: Estimating Duration and Cost
Software Quality Assurance: Estimating Duration and Cost
COCOMO
[Constructive Cost Model] Developed by Barry Bohem Modeled Cost, Effort and Schedule
Organic The organic mode is typified by systems such as payroll, inventory, and scientific calculation. Other characterizations are that the project team is small, little innovation is required, constraints and deadlines are few, and the development environment is stable.
Semidetached
The semidetached mode is typified by utility systems such as compilers, database systems, and editors. Other characterizations are that the project team is medium-size, some innovation is required, constraints and deadlines are moderate, and the development environment is somewhat fluid. Embedded The embedded mode is typified by real-time systems such as those for air traffic control, ATMs, or weapon systems. Other characterizations are that the project team is large, a great deal of innovation is required, constraints and deadlines are tight, and the development environment consists of many complex interfaces, including those with hardware and with customers.
COCOMO Levels
Basic This level uses only size and mode to determine the effort and schedule. It is useful for fast, rough estimates of small to medium-size projects. Intermediate This level uses size, mode, and 15 additional variables to determine effort. The additional variables are called "cost drivers" and relate to product, personnel, computer, and project attributes that will result in more effort or less effort required for the software project. The product of the cost drivers is known as the environmental adjustment factor (EAF). Detailed This level builds upon intermediate COCOMO by introducing the additional capabilities of phasesensitive effort multipliers and a three-level product hierarchy. The intermediate level may be tailored to phase and product level to achieve the detailed level. An example of phase-sensitive effort multipliers would be consideration of memory constraints when attempting to estimate the coding or testing phases of a project. At the same time, though, memory size may not affect the effort or cost of the analysis phase. This will become more obvious after the effort multipliers (or cost drivers) are described. Phase-sensitive multipliers are generally reserved for use in mature organizations and require the use of an automated tool.
Basic COCOMO
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.
Basic COCOMO
Effort Estimation
KLOC is the only input variable. An exponential formula is used to calculate effort. COCOMO Basic Effort Formula Effort (E) = a x (Size)b Where a and b = constants derived from regression analysis (depends on the project) Size = thousands of lines of code (KLOC) E = effort expressed in staff-months
9
10
11
12
13
Example 2 (cont)
To determine how long it will take to complete the project, use the formula: TDEV = 2.5 x (E)0.35 TDEV = 2.5 x (267)0.35 TDEV = 2.5(7.07) TDEV = 17.67 months To obtain a rough estimate of how many developers will be needed, use the formula: S (average staff) = effortTDEV S (average staff) = 26717.67 S (average staff) = 15.11 To determine a rough estimate of the productivity rate, use the formula: P (productivity) = sizeeffort P (productivity) = 55,000267 P (productivity) = 206 LOC/staff-month
16
In addition to estimating development effort and schedule, it is often necessary to estimate how the effort is distributed among the primary life cycle activities. COCOMO takes a pretty simplistic view of the life cycle phases, considering only plans and requirements, product design, coding, and integration and test as the four development phases, and maintenance as the final life cycle phase.
17
19
Intermediate COCOMO
Intermediate COCOMO uses size and modes just like the basic model, plus 15 additional variables called cost drivers. The idea is that there are characteristics of a given project that drive the cost (effort) up or down.
20
21
Cost Drivers
The concept of the effort adjustment factor (EAF) is that it has the effect of increasing or decreasing the effort, and therefore cost, depending on a set of environmental factors. These environmental factors are also known as cost adjustment factors [Cis], or cost drivers. There are two steps in determining this multiplying factor:
Step 1. is to assign numerical values to the cost drivers. Step 2. is to multiply the cost drivers together to generate the effort adjustment factor, C. When multiplied together, the cost adjustment factors can affect project cost and schedule estimates by 10 times or more!
22
23
24
Requirements volatilitysome is expected, but too much can be a big problem; Development machine volatilityunstable OS, compilers, CASE tools, and so on; Security requirements Access to datasometimes very difficult; Impact of standards and imposed methods; Impact of physical surroundings.
25
26
27
28
29
Intermediate COCOMO Example 1 A 10 KLOC embedded-mode software product is to perform communications processing functions on a commercial microprocessor. The embedded mode formula gives nominal effort: En = 2.8(10)1.20 = 2.8(15.85) = 44 staffmonths
30
An evaluation of the project environment yields choices for cost driver multiplier values
31
32
33
Conclusion: In this example, upgrading of the personnel more than pays for itself in the form of overall project savings.
34