Software Measurement and Estimation: A Practical Approach
暫譯: 軟體測量與估算:實用方法

Linda M. Laird, M. Carol Brennan

  • 出版商: IEEE
  • 出版日期: 2006-06-01
  • 售價: $1,050
  • 貴賓價: 9.8$1,029
  • 語言: 英文
  • 頁數: 280
  • 裝訂: Hardcover
  • ISBN: 0471676225
  • ISBN-13: 9780471676225
  • 已絕版

買這商品的人也買了...

商品描述

Description

An effective, quantitative approach for estimating and managing software projects

How many people do I need? When will the quality be good enough for commercial sale? Can this really be done in two weeks? Rather than relying on instinct, the authors of Software Measurement and Estimation offer a new, tested approach that includes the quantitative tools, data, and knowledge needed to make sound estimations.

The text begins with the foundations of measurement, identifies the appropriate metrics, and then focuses on techniques and tools for estimating the effort needed to reach a given level of quality and performance for a software project. All the factors that impact estimations are thoroughly examined, giving you the tools needed to regularly adjust and improve your estimations to complete a project on time, within budget, and at an expected level of quality.

This text includes several features that have proven to be successful in making the material accessible and easy to master:

  • Simple, straightforward style and logical presentation and organization enables you to build a solid foundation of theory and techniques to tackle complex estimations
  • Examples, provided throughout the text, illustrate how to use theory to solve real-world problems
  • Projects, included in each chapter, enable you to apply your newfound knowledge and skills
  • Techniques for effective communication of quantitative data help you convey your findings and recommendations to peers and management

Software Measurement and Estimation: A Practical Approach allows practicing software engineers and managers to better estimate, manage, and effectively communicate the plans and progress of their software projects. With its classroom-tested features, this is an excellent textbook for advanced undergraduate-level and graduate students in computer science and software engineering.

Table of Contents

Acknowledgments.

1. Introduction.

1.1 Objective.

1.2 Approach.

1.3 Motivation.

1.4 Summary.

References.

Chapter 1 Side Bar.

2. What to Measure.

2.1 Method 1: The Goal Question Metrics Approach.

2.2 Extension to GQM: Metrics Mechanism is Important.

2.3 Method 2: Decision Maker Model.

2.4 Method 3: Standards Driven Metrics.

2.5 What to Measure is a Function of Time.

2.6 Summary.

References.

Exercises.

Project.

3. Fundamentals of Measurement.

3.1 Initial Measurement Exercise.

3.2 The Challenge of Measurement.

3.3 Measurement Models.

3.3.1 Text Models.

3.3.2 Diagrammatic Models.

3.3.3 Algorithmic Models.

3.3.4 Model Examples:   Response Time.

3.3.5 The Pantometric Paradigm - How to Measure Anything.

3.4 Meta-Model for Metrics.

3.5 The Power of Measurement.

3.6 Measurement Theory.

3.6.1 Introduction to Measurement Theory.

3.6.2 Measurement Scales.

3.6.3 Measures of Central Tendency and Variability.

3.6.3.1 Measures of Central Tendency.

3.6.3.2 Measures of Variability.

3.6.4 Validity and Reliability of Measurement.

3.6.5 Measurement Error.

3.7 Accuracy versus Precision and the Limits of Software Measurement.

3.7.1 Summary.

3.7.2 Problems.

3.7.3 Project.

References.

4. Measuring the Size of Software.

4.1 Physical Measurements of Software.

4.1.1 Measuring Lines of Code.

4.1.1.1 Code Counting Checklists.

4.1.2 Language Productivity Factor.

4.1.3 Counting Reused and Refactored Code.

4.1.4 Counting Non-Procedural Code Length.

4.1.5 Measuring the Length of Specifications and Design.

4.2 Measuring Functionality.

4.2.1 Function Points.

4.2.1.1 Counting Function Points.

4.2.2 Function Point Counting Exercise.

4.2.3 Converting Function Points to Physical Size.

4.2.4 Converting Function Points to Effort.

4.2.5 Other Function Point Engineering Rules.

4.2.6 Function Point Pros and Cons.

4.3 Feature Points.

4.4 Size Summary.

4.5 Size Exercises.

4.6 Theater Tickets Project.

References.

5. Measuring Complexity.

5.1 Structural Complexity.

5.1.1 Size as a Complexity Measure.

5.1.1.1 System Size and Complexity.

5.1.1.2 Module Size and Complexity.

5.1.2 Cyclomatic Complexity.

5.1.3 Halstead's Metrics.

5.1.4 Information Flow Metrics.

5.1.5 System Complexity.

5.1.5.1 Maintainability Index.

5.1.5.2 The Agresti-Card System Complexity Metric.

5.1.6 Object-Oriented Design Metrics.

5.1.7 Structural Complexity Summary.

5.2 Conceptual Complexity.

5.3 Computational Complexity.

5.4 Complexity Metrics Summary.

5.5 Complexity Exercises.

5.6 Projects.

References.

6. Estimating Effort.

6.1 Effort Estimation - Where are we?.

6.2 Software Estimation Methodologies and Models.

6.2.1 Expert Estimation.

6.2.1.1 Work and Activity Decomposition.

6.2.1.2 System Decomposition.

6.2.1.3 The Delphi Methods.

6.2.2 Using Benchmark Size Data.

6.2.2.1 Lines of Code Benchmark Data.

6.2.2.2 Function Point Benchmark Data.

6.2.3 Estimation by Analogy.

6.2.3.1 Traditional Analogy Approach.

6.2.3.2 Analogy Summary.

6.2.4 Proxy Point Estimation Methods.

6.2.4.1 Meta-Model for Effort Estimation.

6.2.4.2 Function Points.

6.2.4.2.1 COSMIC Function Points.

6.2.4.3 Object Points.

6.2.4.4 Use Case Sizing Methodologies.

6.2.4.4.1 Use Case Points Methodology.

6.2.4.4.2 Example: Use Case Point Methodology Example:   Home Security System.

6.2.4.4.3   Use Case Point Methodology Effectiveness.

6.2.5 Custom Models.

6.2.6 Algorithmic Models.

6.2.6.1 Manual Models.

6.2.6.2 Estimating Project Duration.

6.2.6.3 Tool Based Models.

6.3 Combining Estimates.

6.4 Estimating Issues.

6.4.1 Targets vs. Estimates.

6.4.2 The Limitations of Estimation - Why?.

6.4.3 Estimate Uncertainties.

6.5 Estimating Early and Often.

6.6 Estimation Summary.

6.7 Estimation Problems.

6.8 Estimation Project - Theater Tickets.

References.

7. In Praise of Defects:   Defects and Defect Metrics.

7.1 Why study and measure defects?.

7.2 Faults vs. failures.

7.3 Defect Dynamics and Behaviors.

7.3.1 Defect Arrival Rates.

7.3.2 Defects vs. Effort.

7.3.3 Defects vs. Staffing.

7.3.4 Defect Arrival Rates vs. Code Production Rate.

7.3.5 Defect Density vs. Module Complexity.

7.3.6 Defect Density vs. System Size.

7.4 Defect Projection Techniques and Models.

7.4.1 Dynamic Defect Models.

7.4.1.1 Rayleigh Models.

7.4.1.2 Exponential and S-Curves Arrival Distribution Models.

7.4.1.3 Empirical Data and Recommendations for Dynamic Models.

7.4.2 Static Defect Models.

7.4.2.1 Defect Insertion and Removal Model.

7.4.2.2 Defect Removal Efficiency - A Key Metric.

7.4.2.3 Static Defect Model Tools.

7.5 Additional Defect Benchmark Data.

7.5.1 Defect Data By Application Domain.

7.5.2 Cumulative Defect Removal Efficiency (DRE) Benchmark.

7.5.3 SEI Levels and Defect Relationships.

7.5.4 Latent Defects.

7.5.5 Other Defects   Benchmarks and a Few Recommendations+.

7.6 Cost Effectiveness of Defect Removal by Phase.

7.7 Defining and Using Simple Defect Metrics: An example.

7.8 Some Paradoxical Patterns for Customer Reported Defects.

7.9 Defect Summary.

7.10 Problems.

7.11 Projects.

7.12 Answers to the initial questions.

References.

8. Software Reliability Measurement and Prediction.

8.1 Why study and measure software reliability?.

8.2 What is reliability?.

8.3 Faults and failures.

8.4 Failure Severity Classes.

8.5 Failure Intensity.

8.6 The Cost of Reliability.

8.7 Software Reliability Theory.

8.7.1 Uniform and Random Distributions.

8.7.2 The probability of failure during a time interval.

8.7.3 F(t) - The Probability of Failure by time t.

8.7.4 R(t) - The Reliability Function.

8.7.5 Reliability Theory Summarized.

8.8 Reliability Models.

8.8.1 Types of Models.

8.8.2 Predicting Number of Defects Remaining.

8.8.3 Reliability Growth Models.

8.8.4 Model Summary.

8.9 Failure Arrival Rates.

8.9.1 Predicting Failure Arrival Rates Using Historical Data.

8.9.2 Engineering Rules for MTTF.

8.9.3 Musa's Algorithm.

8.9.4 Operational Profile Testing.

8.9.5 Predicting Reliability Summary.

8.10 But when do I ship?.

8.11 System Configurations: Probability and Reliability.

8.12 Answers to Initial Question.

8.13 Reliability Summary.

8.14 Reliability Exercises.

8.15 Reliability Project.

References.

9. Response Time and Availability.

9.1 Response Time Measurements.

9.2 Availability.

9.2.1 Availability Factors.

9.2.2 Outage Scope.

9.2.3 Complexities in Measuring Availability.

9.2.4 Software Rejuvenation.

9.2.4.1 Software Aging.

9.2.4.2 Classification of Faults.

9.2.4.3 Software Rejuvenation Techniques.

9.2.4.4 Impact of Rejuvenation on Availability.

9.3 Summary.

9.4 Problems.

9.5 Project.

References.

10. Measuring Progress.

10.1 Project Milestones.

10.2 Code Integration.

10.3 Testing Progress.

10.4 Defects Discovery and Closure.

10.4.1 Defect Discovery.

10.4.2 Defect Closure.

10.5 Process Effectiveness.

10.6 Summary.

References.

Problems.

11. Outsourcing.

11.1 The "O" Word.

11.2 Defining Outsourcing.

11.3 Risks Management and Outsourcing.

11.4 Metrics and the Contract.

11.5 Summary.

References.

Exercises.

Problems.

Chapter 11 Sidebar.

12. Financial Measures for the Software Engineer.

12.1 It's All About the Green.

12.2 Financial Concepts.

12.3 Building the Business Case.

12.3.1 Understanding Costs.

12.3.1.1 Salaries.

12.3.1.2 Overhead Costs.

12.3.1.3 Risk Costs.

12.3.1.3.1 Identifying Risk.

12.3.1.3.2 Assessing Risks.

12.3.1.3.3 Planning for Risk.

12.3.1.3.4 Monitoring Risk.

12.3.1.4 Capital versus Expense.

12.3.2 Understanding Benefits.

12.3.3 Business Case Metrics.

12.3.3.1 Return on Investment.

12.3.3.2 Pay-Back Period.

12.3.3.3 Cost/Benefit Ratio.

12.3.3.4 Profit & Loss Statement.

12.3.3.5 Cash Flow.

12.3.3.6 Expected Value.

12.4 Living the Business Case.

12.5 Summary.

References.

Problems.

Projects.

13. Benchmarking.

13.1 What is Benchmarking.

13.2 Why Benchmark.

13.3 What to Benchmark.

13.4 Identifying and Obtaining a Benchmark.

13.5 Collecting Actual Data.

13.6 Taking Action.

13.7 Current Benchmarks.

13.8 Summary.

References.

Problems.

Projects.

14. Presenting Metrics Effectively to Management.

14.1 Decide on the Metrics.

14.2 Draw the Picture.

14.3 Create a Dashboard.

14.4 Drilling for Information.

14.5 Example for the Big Cheese.

14.6 Evolving Metrics.

14.7 Summary.

References.

Problems.

Project.

Index.

商品描述(中文翻譯)

**描述**

一種有效的、定量的方法來估算和管理軟體專案

我需要多少人?何時品質才足夠商業銷售?這真的能在兩週內完成嗎?與其依賴直覺,《軟體測量與估算》的作者提供了一種新的、經過測試的方法,這種方法包括進行合理估算所需的定量工具、數據和知識。

本書從測量的基礎開始,確定適當的指標,然後專注於估算達到特定品質和性能水平所需的努力的技術和工具。所有影響估算的因素都被徹底檢視,為您提供定期調整和改善估算所需的工具,以便按時、在預算內並達到預期的品質水平完成專案。

本書包含幾個已被證明能使材料易於理解和掌握的特點:
- 簡單、直接的風格和邏輯的呈現與組織,使您能夠建立堅實的理論和技術基礎,以應對複雜的估算
- 文中提供的範例說明如何使用理論來解決現實世界中的問題
- 每章中包含的專案使您能夠應用新學到的知識和技能
- 有效傳達定量數據的技術幫助您向同事和管理層傳達您的發現和建議

《軟體測量與估算:實用方法》使實踐中的軟體工程師和管理者能夠更好地估算、管理並有效地傳達其軟體專案的計劃和進展。憑藉其經過課堂測試的特點,這是一本適合計算機科學和軟體工程高年級本科生及研究生的優秀教科書。

**目錄**

致謝。

1. 介紹。
1.1 目標。
1.2 方法。
1.3 動機。
1.4 總結。
參考文獻。
第1章側邊欄。

2. 測量什麼。
2.1 方法1:目標問題指標方法。
2.2 GQM的擴展:指標機制的重要性。
2.3 方法2:決策者模型。
2.4 方法3:標準驅動指標。
2.5 測量什麼是時間的函數。
2.6 總結。
參考文獻。
練習。
專案。

3. 測量的基本原則。
3.1 初始測量練習。
3.2 測量的挑戰。
3.3 測量模型。
3.3.1 文本模型。
3.3.2 圖示模型。
3.3.3 算法模型。
3.3.4 模型範例:響應時間。
3.3.5 泛測量範式 - 如何測量任何事物。
3.4 指標的元模型。
3.5 測量的力量。
3.6 測量理論。
3.6.1 測量理論簡介。
3.6.2 測量尺度。
3.6.3 中心趨勢和變異性的測量。
3.6.3.1 中心趨勢的測量。
3.6.3.2 變異性的測量。
3.6.4 測量的有效性和可靠性。
3.6.5 測量誤差。
3.7 準確性與精確性及軟體測量的限制。
3.7.1 總結。
3.7.2 問題。
3.7.3 專案。
參考文獻。

4. 測量軟體的大小。
4.1 軟體的物理測量。
4.1.1 測量代碼行數。
4.1.1.1 代碼計數檢查表。
4.1.2 語言生產力因子。
4.1.3 計算重用和重構代碼。
4.1.4 計算非程序性代碼的長度。
4.1.5 測量規範和設計的長度。
4.2 測量功能性。
4.2.1 功能點。
4.2.1.1 計算功能點。
4.2.2 功能點計數練習。
4.2.3 將功能點轉換為物理大小。
4.2.4 將功能點轉換為努力。
4.2.5 其他功能點工程規則。
4.2.6 功能點的優缺點。
4.3 特徵點。
4.4 大小總結。
4.5 大小練習。
4.6 電影院票專案。
參考文獻。

5. 測量複雜性。
5.1 結構複雜性。
5.1.1 將大小作為複雜性測量。
5.1.1.1 系統大小與複雜性。
5.1.1.2 模組大小與複雜性。
5.1.2 循環複雜性。
5.1.3 Halstead指標。
5.1.4 信息流指標。
5.1.5 系統複雜性。
5.1.5.1 可維護性指數。
5.1.5.2 Agresti-Card系統複雜性指標。
5.1.6 面向對象設計指標。
5.1.7 結構複雜性總結。
5.2 概念複雜性。
5.3 計算複雜性。
5.4 複雜性指標總結。
5.5 複雜性練習。
5.6 專案。
參考文獻。

6. 估算努力。
6.1 努力估算 - 我們在哪裡?。
6.2 軟體估算方法論和模型。
6.2.1 專家估算。
6.2.1.1 工作和活動分解。
6.2.1.2 系統分解。
6.2.1.3 德爾菲法。
6.2.2 使用基準大小數據。
6.2.2.1 代碼行數基準數據。
6.2.2.2 功能點基準數據。
6.2.3 類比估算。
6.2.3.1 傳統類比方法。
6.2.3.2 類比總結。
6.2.4 代理點估算方法。
6.2.4.1 努力估算的元模型。
6.2.4.2 功能點。
6.2.4.2.1 COSMIC功能點。
6.2.4.3 物件點。
6.2.4.4 用例大小方法。
6.2.4.4.1 用例點方法論。
6.2.4.4.2 範例:用例點方法論範例:家庭安全系統。
6.2.4.4.3 用例點方法論的有效性。
6.2.5 自訂模型。
6.2.6 算法模型。
6.2.6.1 手動模型。
6.2.6.2 估算專案持續時間。
6.2.6.3 基於工具的模型。
6.3 結合估算。
6.4 估算問題。
6.4.1 目標與估算。
6.4.2 估算的限制 - 為什麼?。
6.4.3 估算不確定性。
6.5 早期和經常估算。
6.6 估算總結。
6.7 估算問題。
6.8 估算專案 - 電影院票。
參考文獻。

7. 讚美缺陷:缺陷與缺陷指標。
7.1 為什麼要研究和測量缺陷?。