×

Uh-oh, it looks like your Internet Explorer is out of date.

For a better shopping experience, please upgrade now.

Estimating Software Costs: Bringing Realism to Estimating / Edition 2
  • Alternative view 1 of Estimating Software Costs: Bringing Realism to Estimating / Edition 2
  • Alternative view 2 of Estimating Software Costs: Bringing Realism to Estimating / Edition 2
     

Estimating Software Costs: Bringing Realism to Estimating / Edition 2

by Capers Jones
 

See All Formats & Editions

ISBN-10: 0071483004

ISBN-13: 9780071483001

Pub. Date: 04/19/2007

Publisher: McGraw-Hill Professional Publishing

Deliver bug-free software projects on schedule and within budget

Get a clear, complete understanding of how to estimate software costs, schedules, and quality using the real-world information contained in this comprehensive volume. Find out how to choose the correct hardware and software tools, develop an appraisal strategy, deploy tests and prototypes, and

Overview

Deliver bug-free software projects on schedule and within budget

Get a clear, complete understanding of how to estimate software costs, schedules, and quality using the real-world information contained in this comprehensive volume. Find out how to choose the correct hardware and software tools, develop an appraisal strategy, deploy tests and prototypes, and produce accurate software cost estimates. Plus, you'll get full coverage of cutting-edge estimating approaches using Java, object-oriented methods, and reusable components.

  • Plan for and execute project-, phase-, and activity-level cost estimations
  • Estimate regression, component, integration, and stress tests
  • Compensate for inaccuracies in data collection, calculation, and analysis
  • Assess software deliverables and data complexity
  • Test design principles and operational characteristics using software prototyping
  • Handle configuration change, research, quality control, and documentation costs

"Capers Jones' work offers a unique contribution to the understanding of the economics of software production. It provides deep insights into why our advances in computing are not matched with corresponding improvements in the software that drives it. This book is absolutely required reading for an understanding of the limitations of our technological advances." —Paul A. Strassmann, former CIO of Xerox, the Department of Defense, and NASA

Product Details

ISBN-13:
9780071483001
Publisher:
McGraw-Hill Professional Publishing
Publication date:
04/19/2007
Edition description:
REV
Pages:
644
Product dimensions:
6.20(w) x 9.10(h) x 1.57(d)

Table of Contents


Foreword     xv
Preface     xix
Acknowledgments     xxv
Introduction to Software Cost Estimation
Introduction     3
How Software Cost-Estimating Tools Work     4
Cautions About Accidental Omissions from Estimates     15
Software Cost Estimating and Other Development Activities     17
References     20
The Origins of Software Cost Estimation     23
The Early History of Software Cost Estimation     24
The Expansion and Use of Functional Metrics for Software Cost Estimating     28
References     32
Six Forms of Software Cost Estimation     33
Overview of Manual Software-Estimating Methods     34
Overview of Automated Software-Estimating Methods     36
Comparison of Manual and Automated Estimates for Large Software Projects     48
References     49
Software Cost-Estimating Tools and Project Success and Failure Rates     53
Probabilities of Software Project Success or Failure     55
References     59
Sources of Error in Software Cost Estimation     61
Judging the Accuracy of Software Cost Estimates     65
Classes of Software Estimation Errors     68
References     86
Preliminary Estimation Methods
Manual Software-Estimating Methods     91
Rules of Thumb Based on Lines-of-Code Metrics     92
Rules of Thumb Based on Ratios and Percentages     95
Rules of Thumb Based on Function Point Metrics     99
Function Point Sizing Rules of Thumb     102
Rules of Thumb for Schedules, Resources, and Costs     117
Rules of Thumb Using Activity-Based Cost Analysis     121
Summary and Conclusions     127
References     128
Manual Estimating Methods Derived from Agile Projects and New Environments     131
Metrics Used for Rules of Thumb     135
Rules of Thumb for Manual Software Cost Estimates     140
Component-Based Development     143
Dynamic System Development Method (DSDM)     146
Enterprise Resource Planning (ERP) Deployment     148
Extreme Programming (XP)     152
International Outsourcing     155
Object-Oriented (OO) Development     159
Capability Maturity Model (CMM)     162
Software Methods with Only Partial Rules of Thumb     167
Cleanroom Development     167
Crystal Development Approach     168
Feature-Driven Development (FDD)     168
ISO 9000-9004 Quality Standards     169
Iterative or Incremental Development     169
Pattern-Based Software Development     171
Quality Function Deployment (QFD)     174
Rapid Application Development (RAD)     175
Scrum     176
Six-sigma for Software     177
Spiral Software Development     179
Unified Modeling Language (UML)     180
Use Cases for Software Requirements     181
Web-Based Applications     183
Summary and Conclusions     185
References     185
Automated Estimates from Minimal Data     189
Recording Administrative and Project Information     190
Preliminary Sizing of Key Deliverables     203
Producing a Preliminary Cost Estimate     219
Summary and Conclusions     224
References     226
Sizing Software Deliverables
Sizing Software Deliverables     229
General Sizing Logic for Key Deliverables     229
Sizing Methods Circa 2007     230
Pattern Matching from Historical Data     232
Using Historical Data to Predict Growth in Requirements     233
Mathematical or Statistical Attempts to Extrapolate Size from Partial Requirements     234
Arbitrary Rules of Thumb for Adding Contingency Factors     235
Freezing Requirements at Fixed Points in Time     236
Producing Formal Cost Estimates Only for Subsets of the Total Application     237
Volume of Function Point Data Available     245
Software Complexity Analysis     247
Software Sizing with Reusable Components     258
Overview of the Basic Forms of Software Sizing Metrics     260
Source Code Sizing     269
Sizing Object-Oriented Software Projects     275
Sizing Text-Based Paper Documents     277
Sizing Graphics and Illustrations     283
Sizing Bugs or Defects     286
Sizing Test Cases     293
The Event Horizon for Sizing Software Artifacts     295
What Is Known as a Result of Sizing Software Projects     297
Strengths and Weaknesses of Software Size Metrics     299
Summary and Conclusions     301
References     302
Cost-Estimating Adjustment Factors
Compensation and Work-Pattern Adjustments     307
Manual and Automated Methods of Adjustment     308
Exclusions from Normal Software Cost Estimates     310
Setting Up the Initial Conditions for a Cost Estimate     313
Variations in Burden Rates or Overhead Costs     316
Variations in Work Habits and Unpaid Overtime     318
References     324
Activity Pattern Adjustment Factors     325
Twenty Five Common Activities for Software Projects     326
References     332
Software Technology Adjustment Factors     335
Adjustment Factors and Macro-Estimation Tools     336
Factors That Influence Software Development Productivity     340
Factors That Influence Software Maintenance Productivity     343
Patterns of Positive and Negative Factors     345
Adjustment Factors and Micro-Estimating Tools     347
References     362
Activity-Based Software Cost Estimating
Estimating Software Requirements     367
Function Points and Software Requirements     374
Primary Topics for Software Requirements     381
Secondary Topics for Software Requirements     382
Positive and Negative Requirements Adjustment Factors     383
Requirements and End-User Software     386
Requirements and Agile Applications     386
Requirements and Management Information Systems (MIS) Projects      386
Requirements and Outsourced Projects     387
Requirements and Systems Software     387
Requirements and Commercial Software     388
Requirements and Military Software Projects     389
Requirements and Web-Based Applications     390
Evaluating Combinations of Requirements Factors     390
References     393
Estimating Software Prototypes     395
Disposable Prototypes     398
Time box Prototypes     398
Evolutionary Prototypes     400
Default Values for Estimating Disposable Prototypes     402
Positive and Negative Factors That Influence Software Prototypes     404
References     407
Estimating Software Specifications and Design     409
Positive Design Adjustment Factors     414
Negative Design Adjustment Factors     415
References     418
Estimating Design Inspections     421
Inspection Literature     421
Inspection Process     423
Value of Inspections     426
References     432
Estimating Programming or Coding     435
The Impact of Reusability on Programming     442
The Impact of Experience on Programming     444
The Impact of Bugs or Errors on Programming     444
The Impact of Unpaid Overtime on Programming     446
The Impact of Creeping Requirements on Programming     448
The Impact of Code Structure and Complexity on Programming     449
The Impact of Unplanned Interruptions on Programming     450
The Impact of Application Size on Programming     451
The Impact of Office Space and Ergonomics on Programming     452
The Impact of Tools on Programming     454
The Impact of Programming Languages on Programming     455
The Impact of Schedule Pressure on Programming     459
References     459
Estimating Code Inspections     461
Code Inspection Literature     461
Effectiveness of Code Inspections     462
Considerations for Estimating Code Inspections     466
References     470
Estimating Software Configuration Control and Change Management     471
The Literature on Change Management     473
Measuring Software Change     475
Changes in User Requirements     479
Changes in Specifications and Design     480
Changes Due to Bugs or Defect Reports     481
Summary and Conclusions     482
References     483
Estimating Software Testing     485
General Forms of Software Testing     491
Specialized Forms of Software Testing     495
Forms of Testing Involving Users or Clients     498
Number of Testing Stages     499
Testing Pattern Variations by Industry and Type of Software     501
Testing Pattern Variations by Size of Application     503
Testing Stages Noted in Lawsuits Alleging Poor Quality     504
Using Function Points to Estimate Test-Case Volumes     505
Using Function Points to Estimate the Numbers of Test Personnel     507
Testing and Defect-Removal Efficiency Levels     508
Using Function Points to Estimate Testing Effort and Costs     510
Testing by Developers or by Professional Test Personnel     512
Test Case Coverage     514
The Factors That Affect Testing Performance     514
References     515
Estimating User and Project Documentation     519
Estimating Tools and Software Documentation     521
Quantifying the Number and Sizes of Software Document Types     523
Software Documentation Tools on Lagging and Leading Projects     527
References      529
Estimating Software Project Management     531
The Roles of Software Project Management     535
Project Managers Who Are Also Technical Contributors     537
Project Management for Hybrid Projects Involving Hardware and Software     538
Project Management and External Schedule Pressures     538
Project Management Tools     539
Project Management on Large Systems with Many Managers     542
Time-Splitting, or Managing Several Projects Simultaneously     544
The Span of Control, or Number of Staff Members per Manager     545
Managing Multiple Occupation Groups     546
The Presence or Absence of Project Offices for Large Systems     548
Experience Levels of Software Project Managers     549
Quality-Control Methods Selected by Project Managers     550
Project Managers and Metrics     551
Summary of Project Management Findings     551
References     551
Maintenance and Enhancement Cost Estimating
Maintenance and Enhancement Estimating     557
Nominal Default Values for Maintenance and Enhancement Activities     562
Metrics and Measurement Problems with Small Maintenance Projects     566
Best and Worst Practices in Software Maintenance      567
Software Entropy and Total Cost of Ownership     570
Installing New Releases and Patches from Software Vendors     572
Major Enhancements     573
Minor Enhancements     574
Maintenance (Defect Repairs)     576
Warranty Repairs     581
Customer Support     581
Economics of Error-Prone Modules     582
Mandatory Changes     584
Complexity Analysis     585
Code Restructuring and Refactoring     586
Performance Optimization     588
Migration Across Platforms     588
Conversion to New Architectures     589
Reverse Engineering     589
Re-engineering     590
Dead Code Removal     590
Dormant Application Removal     591
Nationalization     591
Mass Update Projects     592
Retirement or Withdrawal of Applications     593
Field Service     594
Combinations and Concurrent Maintenance Operations     594
References     599
Software Cost-Estimating Research Issues     603
Metrics Conversion     604
Automatic Sizing from User Requirements      606
Activity-Based Costs for Agile, Object-Oriented, and Web Projects     608
Complexity Analysis of Software Applications     610
Value Analysis of Software Applications     611
Risk Analysis and Software Cost Estimates     613
Including Specialists in Software Cost Estimates     615
Reuse Analysis and Software Cost Estimates     617
Process Improvement Estimation     622
Methodology Analysis and Software Cost Estimating     625
Summary and Conclusions About Software Cost-Estimating Research     629
Index     631

Customer Reviews

Average Review:

Post to your social network

     

Most Helpful Customer Reviews

See all customer reviews