COCOMO Overview | Source Line of Code (SLOC) | The Scale Drivers

Basic COCOMO | Intermediate COCOMO | Detailed COCOMO | COCOMO II

Incremental COCOMO | Function Points | Using Costar

Home | Training | Other Links | FAQ

Ada COCOMO

COCOMO has continued to evolve and improve since its introduction. Costar supports the traditional COCOMO model, and the most recent models.

The document TRW IOC Ada COCOMO: Definition and Refinements (Barry Boehm & Walker Royce, 1987, 1988) defines the "Ada COCOMO" model.

Each model consists of cost drivers, equations, phase distribution tables, etc., and is stored in a file as a Costar model (with extension "mdl"). You can modify any of the Costar models to match your development environment.  Costar 7.0 has 13 built-in models.

The two cost drivers, SECU (Classified Security Application) and RUSE (Required Reusability) have been added to the Ada COCOMO model.

The model named "ADA_87" assumes that the Ada programming language is being used. Use of Ada makes it easier to develop highly reliable systems and to manage complex applications, so the cost drivers RELY and CPLX have new definitions.

The APM_88 model is based upon a different "process model" called the Ada Process Model. Among the assumptions are:

The APM_88 model incorporates changes to the equations, several cost drivers, and a variety of other tables.

This table summarized the different COCOMO models you can use in Costar. Remember that you can use our tools to create your own versions of the COCOMO models and tables, calibrated to your development environment.

ModelAda Language?EquationsDescription
COCOMO_85NoTraditionalSoftware Engineering Economics + TURN VL, TOOL XH
COCOMO_87NoTraditionalNew VMVH, VMVT, SECU, RUSE, SCED
ADA_87YesTraditionalNew RELY, CPLX, LEXP
APM_88YesAda ProcessNew MODP, ACAP, PCAP, sigma, tables...

Incremental COCOMO

Incremental Development COCOMO was defined at the same time as Ada COCOMO. Incremental COCOMO is a modern alternative to the traditional Waterfall model of the software development process.

Incremental Development COCOMO lets you model a variety of development processes. Instead of modeling your software development as if it were a single effort devoted to inventing a single product, Incremental Development COCOMO lets you model development as a series of concurrent software projects, each yielding an intermediate product.

This strategy reduces your risk, and permits you to deliver an initial product to your customer earlier.

We've extended and generalized the definition so that Costar performs the calculations for increments with multiple components.

You can use Costar's worksheets to define which development phases are included in each increment, and how each increment is synchronized with the other increments. You can add delays between phases or between increments to match your schedule.

You can assign any component to any increment.

Incremental Development can be used with any COCOMO model, whether it's Ada COCOMO, or standard COCOMO. It can be used with Organic, Semidetached, or Embedded projects.

Function Points

The Function Point methodology was developed by Allan Albrecht at IBM.

The Function Point methodology is based on the premise that the size of a software project can be estimated early, during the requirements analysis, based upon the inputs and outputs of the system. Five classes of items are counted:

  1. External Inputs
  2. External Outputs
  3. Logical Internal Files
  4. External Interface Files
  5. External Inquiries

Based upon counts for each of these items, and the weighting factors and adjustment factors that Albrecht proposes, you can calculate a Total Function Point count.

Costar converts the Function Point count into an equivalent number of SLOC, and uses that in the COCOMO equations to make its estimates.

Using Costar

Most of your interactions with Costar will involve creating and modifying components. You'll define subcomponents, assign cost driver values, estimate the size of each component, etc.

One component is always distinguished as "the current component". The name of the current component, the cost drivers you've assigned to it, and other data describing the current component are shown in the main Costar window.

A given component may be made up of any number of subcomponents. When you create a new subcomponent, it becomes a subcomponent of the current component. It inherits values for each of its attributes from its parent component. The following attributes are inherited:

Costar makes it easy to perform "what-if" analyses, and to compare different project plans. You may develop a new estimate based upon an older one, and then use Costar to compare the two.

A Costar estimate consists of:

One estimate is always distinguished as "the current estimate". All of the Costar commands operate on the current estimate.

When there is only a single component in an estimate, the SLOC value for the component is identical to the total SLOC value for the estimate. But when a component has subcomponents, the SLOC value is derived from the SLOC values of its subcomponents.

Costar lets you specify SLOC values in three different ways:

  1. You can explicitly enter a SLOC value such as 3,000.
  2. You can use the Reuse Tab to calculate the SLOC.
  3. You can use the Function Point Tab to calculate the SLOC.

Home | Top of Page | FAQ

Copyright © 1986-2005 Softstar Systems All rights reserved.

Revised: January 25, 2005