GUIDANCE
The Pricing Handbook / Appendix 19B

19. Software Pricing


19B. SOFTWARE COST ESTIMATION TERMINOLOGY

 

Actual Cost of Work Performed (ACWP): The actual direct costs incurred on a project at any given time.

Algorithmic Models (also known as parametric models): produce a cost estimate using one or more mathematical algorithms using a number of variables considered to be the major cost drivers. These models estimate effort or cost based primarily on the hardware/software size, and other productivity factors known as cost driver attributes.

Analogy: A method of estimating developed on the basis of similarities between two or more programs, systems, items etc.

Analogy (or Comparative) Models: Models that use a method of estimating that compares a proposed project with one or more similar and completed projects where costs and schedules are known. Then, extrapolating from the actual costs of completed projects, the model(s) estimates the cost of a proposed project.

Annual Change Traffic (ACT): The fraction of a software product's source instructions which undergoes change during a year, either through addition or modification. The ACT is the quantity used to determine the product size for software maintenance effort estimation.

Baseline: An established, fixed version of the project plan against which actual implementation of the project is measured.

Bottoms-Up (Engineering Estimate or Grass Roots) Models: A method of estimation that estimates each component of the project separately, and the results are combined ("rolled up") to produce an estimate of the entire project.

Budgeted Cost of Work Performed (BCWP) (Earned Value): The total value of work performed at any given time.

Budgeted Cost of Work Scheduled (BCWS) (Budgeted Cost To-Date): The total budgeted cost for work scheduled to be completed at any given time.

Calibration: A technique used to allow application of a general cost model to a specific set of data. This is accomplished by calculating adjustment factor(s) to compensate for differences between the referenced historical costs and the costs predicted by the cost model using default values.

Computer-Aided Software Engineering (CASE): Identifies a sector of the computer software industry concerned with producing software development environments and tools. The main components of a CASE product are individual tools that aid the software developer or project manager during one or more phases of software development (or maintenance). Other features are a common user interface; interoperability of tools; and a repository or encyclopedia to provide a common tool base and central project database. CASE may also provide for code generation.

Computer Software Component (CSC): Since CSCIs may contain over 100,000 lines of code, they are further partitioned into computer software components (CSCs) and computer software units (CSUs).

Computer Software Configuration Item (CSCI): An aggregation of computer software that satisfies an end-use function and is designated for configuration management. A CSCI may be broken down into CSCs and/or CSUs.

Computer Software Unit (CSU): The lowest level in a breakdown of a software product.

COnstructive COst MOdel (COCOMO): A software cost estimation model developed by Barry Boehm and is described in his book, Software Engineering Economics.

Cost Analysis: The review and evaluation of the separate cost elements and proposed profit of (a) an offeror’s or contractor’s cost or pricing data and (b) the judgmental factors applied in projecting from the data to the estimated costs in order to form an opinion on the degree to which the proposed costs represent what the cost of the contract should be, assuming reasonable economy and efficiency.

Cost Driver Attributes: Productivity factors in the software product development process that include software product attributes, computer attributes, personnel attributes, and project attributes.

Cost Drivers: The controllable system design or planning characteristics that have a predominant effect on the system's costs. Those few items, using Pareto's law, that have the most significant cost impact.

Cost Estimating Relationship: An algorithm relating the cost of an element to physical or functional characteristics of that cost element or a separate cost element; or relating the cost of one cost element to the cost of another element.

Cost Estimating Relationships (CER): A mathematical expression that describes, for predicative purposes, the cost of an item or activity as a function of one or more independent variables.

Cost Model: An estimating tool consisting of one or more cost estimating relationships, estimating methodologies, or estimating techniques used to predict the cost of a system or one of its lower level elements.

Cost or Pricing Data: All facts that, at the time of the price agreement, the seller and buyer would reasonably expect to affect price negotiations. Cost or pricing data requires certification. Cost or pricing data are factual, not judgmental data, and are therefore verifiable. While these data do not indicate the accuracy of the prospective contractor’s judgment about estimated future costs or projections, they do include the data utilized to form the basis for that judgment. Cost or pricing data are more than historical accounting data; they are all the facts that can be reasonably expected to contribute to the soundness of estimates of future costs and to the validity of determinations of costs already incurred.

Cost/Schedule Control System Criteria (C/SCSC): A set of criteria specified by the Federal Government for reporting project schedule and financial information.

Delivered Source Instructions (DSI): The number of source lines of code developed by the project. The number of DSIs is the primary input to many software cost estimating tools. The term delivered is generally meant to exclude non-delivered support software such as test drivers. The term source instructions includes all program instructions created by project personnel and processed into machine code by some combination of preprocessors, compilers, and assemblers. It excludes comments and unmodified utility software. It includes job control language, format statements, and data declarations.

Delphi Technique: A group forecasting technique, generally used for future events such as technological developments, that uses estimates from experts and feedback summaries of these estimates for additional estimates by these experts until a reasonable consensus occurs. It has been used in various software cost-estimating activities, including estimation of factors influencing software costs.

Detail Estimating: Grass Roots, Bottoms-Up: The logical buildup of estimated hours and material by use of blue-prints, production planning tickets, or other data whereby each operation is assigned a time value.

DoD-STD-2167A/498: A US Department of Defense standard that specifies the overall process for the development and documentation of mission-critical software systems. DoD-STD-2167A/498 has direct connections to five other standards that are not software specific. These five standards are as follows:

  • MIL-STD-1521: Technical Reviews and Audit for Systems, Equipment, and Computer Software
  • MIL-STD-480: Configuration Control: Engineering Changes, Deviations, and Waivers
  • MIL-STD-481: Configuration Control: Engineering Changes, Deviations, and Waivers (Short Form)
  • MIL-STD-490: Specification Practices
  • MIL-STD-499: Engineering Management

MIL-STD-480 and 481 have been superseded by MIL-STD-973. MIL-STD-973 consolidates several earlier standards for configuration management and resolves inconsistencies and ambiguities that existed between them. When DoD-STD-2167A/498 is applied to contract, appropriate tailoring instructions should be included to indicate that the contract is to comply with the more recent MIL-STD-973.

Domain: A specific phase or area of the software life cycle in which a developer works. Domains define developers and users areas of responsibility and the scope of possible relationships between products. The work can be organized by domains such as Software Engineering Environments, Documentation, Project Management etc.

Evolutionary Acquisition (EA) Model: The EA Model is pretty similar in content to the Waterfall Model except it encourages prototyping. The underlying factor in EA is to field a well-defined core capability quickly in response to a validated requirement, while using a phased upgrade program to eventually enhance the system to provide the full system capability. This process is also referred to as evolutionary prototyping.

Expert Judgment Models: use a method of software estimation that is based on consultation with one or more experts that have experience with similar projects. An expert-consensus mechanism such as the Delphi technique may be used to produce the estimate.

Fair Price (See Also Reasonable Price): From the perspective of a buyer, a fair price is a price that is in line with (or below) the fair market value of the contract deliverable (to the extent that fair market value can be approximated through price analysis). "Fair market value" is the price you should expect to pay, given the prices of bona fide sales between informed buyers and informed sellers under like market conditions in competitive markets for deliverables of like type, quality, and quantity. When data on probable performance costs are available, a separate test of "fairness" is whether the proposed price is in line with (or below) the total allowable cost of providing the contract deliverable. This cost would be the cost incurred by a well managed, responsible firm using reasonably efficient and economical methods of performance, plus a reasonable profit. From the perspective of a seller, a fair price is a price that is realistic in terms of the seller's ability to satisfy the terms and conditions of the contract.

Fourth Generation Language (4GL): Fourth generation languages are programming languages closer to human languages than typical high level programming languages. Most 4GLs are used to access databases. For example a typical 4GL command is "FIND ALL RECORDS WHERE NAME IS "SMITH"."

Function Points: Function Points are those pieces of code that perform some specific activity related to inputs, inquiries, outputs, master files, and external system interfaces.

Historical Data: A term used to describe a set of data reflecting actual cost or past experience of a product or process.

Incremental Development: The incremental development approach is a top down implementation of distinct functional elements of the product. The development of each increment is accomplished as a separate waterfall type of development. The incremental development methodology differs from the evolutionary approach in that under the incremental strategy the end product is well-defined.

Knowledge Base: The repository of knowledge in a computer system or organization. The collection of data, rules, and processes that are used to control a system, especially one using artificial intelligence or expert system methods.

Life Cycle: The stages and process through which hardware or software passes during its development and operational use. The useful life of a system. Its length depends on the nature and volatility of the business, as well as the software development tools used to generate the databases and applications.

Management Information Systems: A computer-based system of processing and organizing information that provides different levels of management within an organization with accurate and timely information needed for supervising activities, tracking progress, making decisions, and isolating and solving problems.

Metric: Quantitative analysis values calculated according to a precise definition and used to establish comparative aspects of development progress, quality assessment or choice of options.

New Line of Code: A source line of code that will be developed completely, i.e., designed, coded and tested.

Paradigm: A model, example, or pattern. A generally accepted way of thinking.

Parametric Cost Model: A mathematical representation of parametric cost estimating relationships that provides a logical and predictable correlation between the physical or functional characteristics of a system, and the resultant cost of the system. A parametric cost model is an estimating system comprising cost estimating relationships (CERs) and other parametric estimating functions, e.g., cost quantity relationships, inflation factors, staff skills, schedules etc. Parametric cost models yield product or service costs at designated levels and may provide departmentalized breakdown of generic cost elements. A parametric cost model provides a logical and repeatable relationship between input variables and resultant costs.

Platform: Hardware or software architecture of a particular model or family of computers. The term sometimes refers to the hardware and its operating system.

Price Analysis: The process of examining and evaluating a proposed price without evaluating its separate cost elements and proposed profit.

Procedures: Manual procedures are human tasks. Machine procedures are lists of routines or programs to be executed, such as described by the Job Control Language (JCL) in a mini or mainframe, or the batch processing language in a personal computer.

Process: The sequence of activities (in software development) described in terms of the user roles, user tasks, rules, events, work products, resource use, and the relationships between them. It may include the specific design methodology, language, documentation standards etc.

Rapid Prototyping: The creation of a working model of a software module to demonstrate the feasibility of the function. The prototype is later refined for inclusion in a final product.

Rayleigh Distribution: A curve that yields a good approximation to the actual labor curves on software projects.

Real-Time: 1) Immediate response. The term may refer to fast transaction processing systems in business; however, it is normally used to refer to process control applications. For example, in avionics and space flight, real-time computers must respond instantly to signals sent to them. 2) Any electronic operation that is performed in the same time frame as its real-world counterpart. For example, it takes a fast computer to simulate complex, solid models moving on screen at the same rate they move in the real world. Real-time video transmission produces a live broadcast.

Reasonable Price (See Also Fair Price): A price that a prudent and competent buyer would be willing to pay for the contract deliverable, given adequate data on (1) market conditions, (2) alternatives for meeting the requirement, (3) the evaluated price of each alternative, and (4) non-price evaluation factors (in "best value" competitions).

Re-engineering: Process of restructuring and redesigning an operational (or coded) hardware or software system or process in order to make it meet certain style, structure, or performance standards.

Reusability: Ability to use all or the greater part of the same programming code or system design in another application.

Reuse: Software development technique that allows the design and construction of reusable modules, objects, or units, that are stored in a library or database for future use in new applications. Reuse can be applied to any methodology in the construction phase, but is most effective when object oriented design methodologies are used.

Security: The protection from accidental or malicious access, use, modification, destruction, or disclosure. There are two aspects to security, confidentiality and integrity.

Software Development Life Cycle: The stages and process through which software passes during its development. This includes requirements definition, analysis, design, coding, testing, and maintenance.

Software Development Life Cycle Methodology: Application of methods, rules, and postulates to the software development process to establish completeness criteria, assure an efficient process, and develop a high quality product.

Software Engineering Institute (SEI): SEI is a federally funded research and development center established in 1984 by the DoD with a broad charter to address the transition of software engineering technology. The SEI is an integral component of Carnegie Mellon University and is sponsored by the Office of the Under Secretary of Defense for Acquisition and Technology. SEI developed the Software Acquisition Capability Maturity Model (CMM) and the Checklist and Criteria for Evaluating the Cost and Schedule Estimating Capabilities of Software Organizations.

Software Method (or Software Methodology): Focuses on how to navigate through each phase of the software process model (determining data, control, or uses hierarchies; partitioning functions; and allocating requirements) and how to represent phase products (structure charts; stimulus-response threads; and state transition diagrams).

Software Tool: Program that aids in the development of other software programs. It may assist the programmer in the design, code, compile, link, edit, or debug phases.

Source Lines of Code (SLOC): All executable source code statements including deliverable Job Control Language (JCL) Statements, Data declarations, Data Typing statements, Equivalence statements, and Input/Output format statements. SLOC does not include any statement that upon its removal, the program will still compile, e.g., comments, blank lines, and non-delivered programmer debug statements.

Space Systems Cost Analysis Group: The SSCAG is an organization co-chaired by the cost directorates of the Air Force Space and Missile Systems Center (SMC) and NASA at Johnson Space Center. The Software Subgroup of the SSCAG, under a multi-year task, developed the Software Methodology Handbook and a software database of over 2600 records used to calibrate five software estimating models (PRICE-S, SEER-SEM, SLIM, SASET AND REVIC).

Spiral Development: The spiral model encompasses features of the phased life cycle as well as the prototype life cycle. However, unlike those life cycles, the spiral model uses risk analysis as one of its elements. It also uses the waterfall model for each step so as to avoid any risks.

Top-Down Models: Use a method of estimation that estimates the overall cost and effort of the proposed project derived from global properties of the project. The total cost and schedule is partitioned into components for planning purposes.

Update: To update an estimate or CER means to utilize the most recent data to make it current, accurate and complete.

Validation: In terms of a cost model, a process used to determine whether the model selected for a particular estimate is a reliable predictor of costs for the type of system being estimated.

Waterfall Model: An eight-phase process used in developing software for most Department of Defense (DoD) weapon systems, as described in DoD-Standard 2167A. This process, when done sequentially, is based on the waterfall model of software development, as described by Barry Boehm. Each phase requires the delivery of particular documentation products.

Work Breakdown Structure: A work breakdown structure is a product-oriented family tree, composed of hardware, software, services, data and facilities which results from system engineering efforts during the development and production of a defense material item, and which completely defines the program. A work breakdown structure displays and defines the product(s) to be developed or produced and relates the elements of work to be accomplished to each other and to the end product. MIL-HDBK 881 is the modern guide for developing a WBS. (See Appendix 19C contains a sample WBS.)

Workstation: High-performance, single user microcomputer or minicomputer that has been specialized for graphics, CAD, CAE, or scientific application.