• No results found

2.1. Models for Software Projects

2.1.2. Software Cost Estimation Models

Estimating the cost of software projects is the process of establishing the amount of effort required to complete the software project. Researchers have proposed various cost estimation models for software projects [KR03][AL08][JK09][SO09][BO81][MG07].

Among all the software cost-estimation models, the Constructive Cost Model (COCOMO) gained widespread acceptance and is widely used for estimating the cost of software projects. COCOMO was first introduced by Boehm [BO81] to estimate the man- month effort required to complete a software project. COCOMO is a regression-based model and was deduced from a study of 63 software projects of different sizes and using different programming languages. COCOMO is a collection of three base models, namely: Basic, Intermediate and Advanced. The Basic model is applied early in the project lifecycle, the Intermediate model is applied after software requirements are specified, and the Advanced model is applied after the software design is frozen. COCOMO produces an estimate of software effort in man-months, which translates into the estimated cost of a software project. The derived regression equation for COCOMO is as follows:

(2.1)

where

i

s the effort in man-months, represents the software size in kilo lines of logical source code (KLOC), is the effort adjustment factor which is the product of fifteen software cost drivers, and and are the derived regression constants dependent upon the software development model as shown in Table 2.1.

Boehm defines three software development modes as [BO81]:

1. Organic mode: small software projects being developed by small software development teams using informal software development processes and requirements.

2. Semi-detached mode: software projects in which multiple software development teams work following well defined processes and requirements.

Chapter -2 Literature Review 30 3. Embedded mode: software development projects that strictly follow well-defined

software development processes and requirements.

The value for the basic model is 1, while for the intermediate model, is a product of fifteen cost drivers grouped into four categories: Product, Computer, Personnel and Project as shown in Table 2.2.

Table 2.1: Regression Constant for Software three Project Modes [BO81]

Mode Basic Intermediate Organic 2.4 1.05 3.2 1.05 Semi-detached 3.0 1.12 3.0 1.12 Embedded 3.6 1.20 2.8 1.20

Table 2.2: COCOMO Cost Drivers [BO81]

Category Cost Driver

Ratings Very

Low

Low Nominal High Very High Ultra High Product 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 - Product Complexity 0.70 0.85 1.00 1.15 1.30 1.65 Computer Execution Time Constraints - - 1.00 1.11 1.30 1.66 Storage Constraint - - 1.00 1.06 1.21 1.56 Virtual Machine Volatility - 0.87 1.00 1.15 1.30 - Computer Turnaround Time - 0.87 1.00 1.07 1.15 - Personnel Analyst Capability 1.46 1.19 1.00 0.86 0.71 - Applications Experience 1.29 1.13 1.00 0.91 0.82 - Capability of Software Engineer 1.42 1.17 1.00 0.86 0.70 - Virtual Machine Experience 1.21 1.10 1.00 0.90 - - Language Experience 1.14 1.07 1.00 0.95 - - Project Software Engineering Practices 1.24 1.10 1.00 0.91 0.83 - Software Tools 1.24 1.10 1.00 0.91 0.82 - Development Schedule 1.23 1.08 1.00 1.04 1.10 -

Chapter -2 Literature Review 31 The Advanced model applies the Intermediate model to four predefined phases of the software project called: Product Design, Detailed Design, Code and Unit Test and Integration

and Test phases.

COCOMO-II [BO00] [BO10] is the latest version of COCOMO, which was developed to address the needs of a rapidly changing software development industry, and it estimates the effort and schedule for a variety of different software development practices. COCOMO-II is a collection of three tailorable models, which are used during different development stages of the lifecycle of a software project. These stages are defined as the Application Composition, Early Design and Post Architecture models. The

Application Composition model defines software prototyping; additionally, it focuses on

the system and software interaction, performance and other high-risk areas. The effort for these activities is best estimated with the Application Composition model of COCOMO- II. The next stage in the software project is handled with the Early Design model, which focuses on issues more advanced than the prototyping. For example, the model proposes different alternatives of the software and system. The Post Architecture model deals with the actual software development. By this stage, a project development lifecycle has been developed, and risks inherited in software projects are understood and established.

The base COCOMO-II is the same as the COCOMO defined in equation 2.1, except that is a constant set to , and is the scaling factor estiametd as follows:

(2.2) Where are the 5 weighted parameters selected from Table 2.3. COCOMO-II treats the software size, , as the kilo lines of delivered source code (KDOC) that represents the logical source code; so, if-else is considered as a single line, as opposed to several lines.

Table 2.3: Scale parameters ( ) for COCOMO-II [BO00]

Very

Low Low Nominal High High Very Extra High Precedentedness PREC 4.05 3.24 2.43 1.62 0.81 0 Development Flexibility FLEX 6.07 4.86 3.64 2.43 1.21 0 Architecture / Risk

Resolution RESL 4.22 3.38 2.53 1.69 0.84 0 Team Cohesion TEAM 4.94 3.95 2.97 1.98 0.99 0 Process Maturity PMAT 4.54 3.64 2.73 1.82 0.91 0

Chapter -2 Literature Review 32 The description of COCOMO-II cost drivers are given in Table 2.4. COCOMO-II uses different sets of cost drivers for Early Design and Post Architecture models. The Post

Architecture Model uses all 17 cost drivers, listed in Table 2.5. The Early Design model

only uses 7 cost drivers, as shown in Table 2.6.

Table 2.4: COCOMO-II Cost factor Symbols and Descriptions [BO00]

Symbol Description

RELY Required Software Reliability DATA Database Size

CPLX Product Complexity RUSE Required Reusability

DOCU Documentation to match lifecycle needs TIME Execution Time Constraint

STOR Main Storage Constraint PVOL Platform Volatility ACAP Analyst Capability PCAP Programmer Capability PCON Personnel continuity AEXP Applications Experience PEXP Platform Experience

LTEX Language and Tool Experience TOOL Use of Software Tools

SITE Multi-site operations

SCED Required Development Schedule

Researchers have modeled the size parameter, , of COCOMO (equation 2.1) as a random parameter and have used probabilistic models to represent the size of the software projects. For example, Fairley [FA95] modeled the software project size, , with a positively skewed Gamma distribution [MO07]. Since the minimum size of software projects is bounded with zero, and the maximum size of software projects is unbounded, positively skewed Gamma distributions are suitable to model the software size because of the presence of the heavy tail right side of the positively skewed Gamma distribution, which extends to unbounded values.

Chapter -2 Literature Review 33 Table 2.5: COCOMO-II Cost Drivers [BO00]

Cost

Drivers Very Low Low Nominal High High Very Extra High RELY 0.75 0.88 1 1.15 1.15 DATA 0.93 1 1.09 1.19 CPLX 0.75 0.88 1 1.15 1.3 1.66 RUSE 0.91 1 1.14 1.29 1.49 DOCU 0.89 0.95 1 1.06 1.13 TIME 1 1.11 1.31 1.67 STOR 1 1.06 1.21 1.57 PVOL 0.87 1 1.15 1.3 ACAP 1.5 1.22 1 0.83 0.67 PCAP 1.37 1.16 1 0.87 0.74 PCON 1.24 1.1 1 0.92 0.84 AEXP 1.22 1.1 1 0.89 0.81 PEXP 1.25 1.12 1 0.88 0.81 LTEX 1.22 1.1 1 0.91 0.84 TOOL 1.24 1.12 1 0.86 0.72 SITE 1.25 1.1 1 0.92 0.84 0.78 SCED 1.29 1.1 1 1 1

Table 2.6: Cost Driver of Early Design Model [BO00]

Cost Drivers Counter parts in Post- Architecture Model RCPX RELY,DATA,CPLX,DOCU RUSE RUSE PDIF TIME,STOR,PVOL PERS ACAP,PCAP,PCON PREX AEXP,PEXP,LTEX FCIL TOOL,SITE SCED SCED