COCOMOST is a computer program for use in estimating software development costs. The goal in the development of COCOMOST was to increase estimation accuracy in three ways: (1) develop a set of sensitivity software tools that return not only estimates of costs but also the estimation error; (2) using the sensitivity software tools, precisely define the quantities of data needed to adequately tune cost estimation models; and (3) build a repository of software-cost-estimation information that NASA managers can retrieve to improve the estimates of costs of developing software for their project (see figure).

Example Model Output

COCOMOST implements a methodology, called "2cee," in which a unique combination of well-known pre-existing data-mining and software-development-effort- estimation techniques are used to increase the accuracy of estimates. COCOMOST utilizes multiple models to analyze historical data pertaining to software-development projects and performs an exhaustive data-mining search over the space of model parameters to improve the performances of effort-estimation models. Thus, it is possible to both calibrate and generate estimates at the same time. COCOMOST is written in the C language for execution in the UNIX operating system.

This program was written by Tim Menzies and Dan Baker of West Virginia University and Jairus Hihn and Karen Lum of Caltech for NASA's Jet Propulsion Laboratory.

This software is available for commercial licensing. Please contact Karina Edmonds of the California Institute of Technology at (626) 395-2322. Refer to NPO-44858.



This Brief includes a Technical Support Package (TSP).
Document cover
Estimating Software-Development Costs With Greater Accuracy

(reference NPO-44858) is currently available for download from the TSP library.

Don't have an account?



Overview

The document is a Technical Support Package for estimating software-development costs with greater accuracy, identified as NPO-44858, and is associated with NASA Tech Briefs. It is part of the Commercial Technology Program of the National Aeronautics and Space Administration (NASA) and aims to disseminate results from aerospace-related developments that have broader technological, scientific, or commercial applications.

The document outlines the current state of software development practices, referred to as "Olde World," and emphasizes the need for improvement in these practices. It presents a comprehensive list of best practices derived from an extensive literature review, highlighting the importance of adopting state-of-the-art methodologies to enhance cost estimation accuracy.

Key components of the document include an introduction and background on the topic, a bibliography for further reading, and a summary of recommendations based on related work in best practices. It discusses the limitations of current practices and introduces advanced methodologies such as 2cee and COCOMOST, which aim to push the boundaries of cost estimation in software development.

The document also addresses the necessity for fixing the "Olde World" practices, suggesting that the integration of innovative approaches is crucial for improving the accuracy and reliability of cost estimations. It outlines the next steps in this evolution, including the introduction of MC-COCOMO, which is likely a refined model for cost estimation.

Additionally, the document includes a notice regarding the liability and endorsement of the information provided, clarifying that the United States Government does not assume liability for the use of the information contained within. It also provides contact information for further assistance, specifically from the Innovative Technology Assets Management at JPL.

Overall, this Technical Support Package serves as a resource for professionals in the field of software development, particularly those involved in aerospace projects, by offering insights into best practices and advanced methodologies for more accurate cost estimation. It encourages the adoption of innovative practices to enhance the efficiency and effectiveness of software development processes.