viii SWEBOK®Guide V3.0 Chapter 4:Software Testing 4-1 1.Software Testing Fundamentals 4-3 1.1.Testing-Related Terminology 43 1.2.Key Issues 4-3 1.3.Relationship of Testing to Other Activities 44 2.Test Levels 4-5 2.1.The Target of the Test 45 2.2.Objectives of Testing 45 3.Test Techniques 47 3.I.Based on the Software Engineer's Intuition and Experience 4-8 3.2.Input Domain-Based Techniques 4-8 3.3.Code-Based Techniques 4-8 3.4.Fault-Based Techniques 4-9 3.5.Usage-Based Techniques 49 3.6.Model-Based Testing Techniques 4-10 3.7.Techniques Based on the Nature of the Application 4-10 3.8.Selecting and Combining Techniques 4-11 4.Test-Related Measures 4-11 4.1.Evaluation of the Program Under Test 4-11 4.2.Evaluation of the Tests Performed 4-12 5.Test Process 4-12 5.1.Practical Considerations 4-13 5.2.Test Activities 4-14 6.Software Testing Tools 4-15 6.1.Testing Tool Support 4-15 6.2.Categories of Tools 4-15 Matrix of Topics vs.Reference Material 4-17 Chapter 5:Software Maintenance 5-1 1.Software Maintenance Fundamentals 5-1 1.1.Definitions and Terminology 5-1 1.2.Nature of Maintenance 5-2 1.3.Need for Maintenance 5-3 1.4.Majority of Maintenance Costs 5-3 1.5.Evolution of Software 5-3 1.6.Categories of Maintenance 5-3 2.Key Issues in Software Maintenance 5-4 2.1.Technical Issues 5-4 2.2.Management Issues 5-5 2.3.Maintenance Cost Estimation 5-6 2.4.Software Maintenance Measurement 5-7 3.Maintenance Process 5-7 3.1.Maintenance Processes 5-7 3.2.Maintenance Activities 5-8 4.Techniques for Maintenance 5-10 4.1.Program Comprehension 5-10 4.2.Reengineering 5-10 4.3.Reverse Engineering 5-10 4.4.Migration 5-10 4.5.Retirement 5-11
viii SWEBOK® Guide V3.0 Chapter 4: Software Testing 4-1 1. Software Testing Fundamentals 4-3 1.1. Testing-Related Terminology 4-3 1.2. Key Issues 4-3 1.3. Relationship of Testing to Other Activities 4-4 2. Test Levels 4-5 2.1. The Target of the Test 4-5 2.2. Objectives of Testing 4-5 3. Test Techniques 4-7 3.1. Based on the Software Engineer’s Intuition and Experience 4-8 3.2. Input Domain-Based Techniques 4-8 3.3. Code-Based Techniques 4-8 3.4. Fault-Based Techniques 4-9 3.5. Usage-Based Techniques 4-9 3.6. Model-Based Testing Techniques 4-10 3.7. Techniques Based on the Nature of the Application 4-10 3.8. Selecting and Combining Techniques 4-11 4. Test-Related Measures 4-11 4.1. Evaluation of the Program Under Test 4-11 4.2. Evaluation of the Tests Performed 4-12 5. Test Process 4-12 5.1. Practical Considerations 4-13 5.2. Test Activities 4-14 6. Software Testing Tools 4-15 6.1. Testing Tool Support 4-15 6.2. Categories of Tools 4-15 Matrix of Topics vs. Reference Material 4-17 Chapter 5: Software Maintenance 5-1 1. Software Maintenance Fundamentals 5-1 1.1. Definitions and Terminology 5-1 1.2. Nature of Maintenance 5-2 1.3. Need for Maintenance 5-3 1.4. Majority of Maintenance Costs 5-3 1.5. Evolution of Software 5-3 1.6. Categories of Maintenance 5-3 2. Key Issues in Software Maintenance 5-4 2.1. Technical Issues 5-4 2.2. Management Issues 5-5 2.3. Maintenance Cost Estimation 5-6 2.4. Software Maintenance Measurement 5-7 3. Maintenance Process 5-7 3.1. Maintenance Processes 5-7 3.2. Maintenance Activities 5-8 4. Techniques for Maintenance 5-10 4.1. Program Comprehension 5-10 4.2. Reengineering 5-10 4.3. Reverse Engineering 5-10 4.4. Migration 5-10 4.5. Retirement 5-11
Table of Contents ix 5.Software Maintenance Tools 5-11 Matrix of Topics vs.Reference Material 5-12 Chapter 6:Software Configuration Management 6-1 1.Management of the SCM Process 6-2 1.1.Organizational Context for SCM 6-2 1.2.Constraints and Guidance for the SCM Process 6-3 1.3.Planning for SCM 6-3 1.4.SCM Plan 6-5 1.5.Surveillance of Software Configuration Management 6-5 2.Software Configuration Identification 6-6 2.1.Identifying Items to Be Controlled 6-6 2.2.Software Library 6-8 3.Software Configuration Control 6-8 3.1.Requesting,Evaluating,and Approving Software Changes 6-8 3.2.Implementing Software Changes 6-9 3.3.Deviations and Waivers 6-10 4.Software Configuration Status Accounting 6-10 4.1.Software Configuration Status Information 6-10 4.2.Software Configuration Status Reporting 6-10 5.Software Configuration Auditing 6-10 5.1.Software Functional Configuration Audit 6-11 5.2.Software Physical Configuration Audit 6-11 5.3.In-Process Audits of a Software Baseline 6-11 6.Software Release Management and Delivery 6-11 6.1.Software Building 6-11 6.2.Software Release Management 6-12 7.Software Configuration Management Tools 6-12 Matrix of Topics vs.Reference Material 6-13 Chapter 7:Software Engineering Management 7-1 1.Initiation and Scope Definition 7-4 1.1.Determination and Negotiation of Requirements 7-4 1.2.Feasibility Analysis 7-4 1.3.Process for the Review and Revision of Requirements 7-5 2.Software Project Planning 2.1.Process Planning 2.2.Determine Deliverables 2.3.Effort,Schedule,and Cost Estimation 2.4.Resource Allocation 2.5.Risk Management 2.6.Quality Management 2.7.Plan Management 3.Software Project Enactment 3.1.Implementation of Plans 7-7 3.2.Software Acquisition and Supplier Contract Management 7-7 3.3.Implementation of Measurement Process 3.4.Monitor Process 3.5.Control Process 7-8 3.6.Reporting 7-8
Table of Contents ix 5. Software Maintenance Tools 5-11 Matrix of Topics vs. Reference Material 5-12 Chapter 6: Software Configuration Management 6-1 1. Management of the SCM Process 6-2 1.1. Organizational Context for SCM 6-2 1.2. Constraints and Guidance for the SCM Process 6-3 1.3. Planning for SCM 6-3 1.4. SCM Plan 6-5 1.5. Surveillance of Software Configuration Management 6-5 2. Software Configuration Identification 6-6 2.1. Identifying Items to Be Controlled 6-6 2.2. Software Library 6-8 3. Software Configuration Control 6-8 3.1. Requesting, Evaluating, and Approving Software Changes 6-8 3.2. Implementing Software Changes 6-9 3.3. Deviations and Waivers 6-10 4. Software Configuration Status Accounting 6-10 4.1. Software Configuration Status Information 6-10 4.2. Software Configuration Status Reporting 6-10 5. Software Configuration Auditing 6-10 5.1. Software Functional Configuration Audit 6-11 5.2. Software Physical Configuration Audit 6-11 5.3. In-Process Audits of a Software Baseline 6-11 6. Software Release Management and Delivery 6-11 6.1. Software Building 6-11 6.2. Software Release Management 6-12 7. Software Configuration Management Tools 6-12 Matrix of Topics vs. Reference Material 6-13 Chapter 7: Software Engineering Management 7-1 1. Initiation and Scope Definition 7-4 1.1. Determination and Negotiation of Requirements 7-4 1.2. Feasibility Analysis 7-4 1.3. Process for the Review and Revision of Requirements 7-5 2. Software Project Planning 7-5 2.1. Process Planning 7-5 2.2. Determine Deliverables 7-5 2.3. Effort, Schedule, and Cost Estimation 7-6 2.4. Resource Allocation 7-6 2.5. Risk Management 7-6 2.6. Quality Management 7-6 2.7. Plan Management 7-7 3. Software Project Enactment 7-7 3.1. Implementation of Plans 7-7 3.2. Software Acquisition and Supplier Contract Management 7-7 3.3. Implementation of Measurement Process 7-7 3.4. Monitor Process 7-7 3.5. Control Process 7-8 3.6. Reporting 7-8
x SWEBOK®Guide V3.0 4.Review and Evaluation 7-8 4.1.Determining Satisfaction of Requirements 7-8 4.2.Reviewing and Evaluating Performance 7-9 5.Closure 7-9 5.1.Determining Closure 7-9 5.2.Closure Activities 7-9 6.Software Engineering Measurement 7-9 6.1.Establish and Sustain Measurement Commitment 7-9 6.2.Plan the Measurement Process 7-10 6.3.Perform the Measurement Process 7-11 6.4.Evaluate Measurement 7-11 7.Software Engineering Management Tools 7-11 Matrix of Topics vs.Reference Material 7-13 Chapter 8:Software Engineering Process 8-1 1.Software Process Definition 8-2 1.1.Software Process Management 8-3 1.2.Software Process Infrastructure 84 2.Software Life Cycles 8-4 2.1.Categories of Software Processes 8-5 2.2.Software Life Cycle Models 8-5 2.3.Software Process Adaptation 8-6 2.4.Practical Considerations 8-6 3.Software Process Assessment and Improvement 8-6 3.1.Software Process Assessment Models 8-7 3.2.Software Process Assessment Methods 8-7 3.3.Software Process Improvement Models 8-7 3.4.Continuous and Staged Software Process Ratings 8-8 4.Software Measurement 8-8 4.1.Software Process and Product Measurement 8-9 4.2.Ouality of Measurement Results 8-10 4.3.Software Information Models 8-10 4.4.Software Process Measurement Techniques 8-11 5.Software Engineering Process Tools 8-12 Matrix of Topics vs.Reference Material 8-13 Chapter 9:Software Engineering Models and Methods 9-1 1.Modeling 9-1 1.1.Modeling Principles 9-2 1.2.Properties and Expression of Models 9-3 1.3.Syntax,Semantics,and Pragmatics 9-3 1.4.Preconditions,Postconditions,and Invariants 9-4 2.Types of Models 9-4 2.1.Information Modeling 9-5 2.2.Behavioral Modeling 9-5 2.3.Structure Modeling 95 3.Analysis of Models 9-5 3.1.Analyzing for Completeness 9-5 3.2.Analyzing for Consistency 9-6
x SWEBOK® Guide V3.0 4. Review and Evaluation 7-8 4.1. Determining Satisfaction of Requirements 7-8 4.2. Reviewing and Evaluating Performance 7-9 5. Closure 7-9 5.1. Determining Closure 7-9 5.2. Closure Activities 7-9 6. Software Engineering Measurement 7-9 6.1. Establish and Sustain Measurement Commitment 7-9 6.2. Plan the Measurement Process 7-10 6.3. Perform the Measurement Process 7-11 6.4. Evaluate Measurement 7-11 7. Software Engineering Management Tools 7-11 Matrix of Topics vs. Reference Material 7-13 Chapter 8: Software Engineering Process 8-1 1. Software Process Definition 8-2 1.1. Software Process Management 8-3 1.2. Software Process Infrastructure 8-4 2. Software Life Cycles 8-4 2.1. Categories of Software Processes 8-5 2.2. Software Life Cycle Models 8-5 2.3. Software Process Adaptation 8-6 2.4. Practical Considerations 8-6 3. Software Process Assessment and Improvement 8-6 3.1. Software Process Assessment Models 8-7 3.2. Software Process Assessment Methods 8-7 3.3. Software Process Improvement Models 8-7 3.4. Continuous and Staged Software Process Ratings 8-8 4. Software Measurement 8-8 4.1. Software Process and Product Measurement 8-9 4.2. Quality of Measurement Results 8-10 4.3. Software Information Models 8-10 4.4. Software Process Measurement Techniques 8-11 5. Software Engineering Process Tools 8-12 Matrix of Topics vs. Reference Material 8-13 Chapter 9: Software Engineering Models and Methods 9-1 1. Modeling 9-1 1.1. Modeling Principles 9-2 1.2. Properties and Expression of Models 9-3 1.3. Syntax, Semantics, and Pragmatics 9-3 1.4. Preconditions, Postconditions, and Invariants 9-4 2. Types of Models 9-4 2.1. Information Modeling 9-5 2.2. Behavioral Modeling 9-5 2.3. Structure Modeling 9-5 3. Analysis of Models 9-5 3.1. Analyzing for Completeness 9-5 3.2. Analyzing for Consistency 9-6
Table of Contents xi 3.3.Analyzing for Correctness 9-6 3.4.Traceability 9-6 3.5.Interaction Analysis 9-6 4.Software Engineering Methods 9-7 4.1.Heuristic Methods 9-7 4.2.Formal Methods 9-7 4.3.Prototyping Methods 9-8 4.4.Agile Methods 9-9 Matrix of Topics vs.Reference Material 9-10 Chapter 10:Software Quality 10-1 1.Software Quality Fundamentals 10-2 1.1.Software Engineering Culture and Ethics 10-2 1.2.Value and Costs of Ouality 10-3 1.3.Models and Quality Characteristics 10-3 1.4.Software Ouality Improvement 10-4 1.5.Software Safety 10-4 2.Software Quality Management Processes 10-5 2.1.Software Ouality Assurance 10-5 2.2.Verification Validation 10-6 2.3.Reviews and Audits 10-6 3.Practical Considerations 10-9 3.1.Software Ouality Requirements 10-9 3.2.Defect Characterization 10-10 3.3.Software Ouality Management Techniques 10-11 3.4.Software Ouality Measurement 10-12 4.Software Quality Tools 10-12 Matrix of Topics vs.Reference Material 10-14 Chapter 11:Software Engineering Professional Practice 11-1 1.Professionalism 11-2 1.1.Accreditation,Certification,and Licensing 11-3 1.2.Codes of Ethics and Professional Conduct 11-4 1.3.Nature and Role of Professional Societies 11-4 1.4.Nature and Role of Software Engineering Standards 11-4 1.5.Economic Impact of Software 11-5 1.6.Employment Contracts 11-5 1.7.Legal Issues 11-5 1.8.Documentation 11-7 1.9.Tradeoff Analysis 11-8 2.Group Dynamics and Psychology 11-9 2.1.Dynamics of Working in Teams/Groups 11-9 2.2.Individual Cognition 11-9 2.3.Dealing with Problem Complexity 11-10 2.4.Interacting with Stakeholders 11-10 2.5.Dealing with Uncertainty and Ambiguity 11-10 2.6.Dealing with Multicultural Environments 11-10 3.Communication Skills 11-11 3.1.Reading,Understanding,and Summarizing 11-11
Table of Contents xi 3.3. Analyzing for Correctness 9-6 3.4. Traceability 9-6 3.5. Interaction Analysis 9-6 4. Software Engineering Methods 9-7 4.1. Heuristic Methods 9-7 4.2. Formal Methods 9-7 4.3. Prototyping Methods 9-8 4.4. Agile Methods 9-9 Matrix of Topics vs. Reference Material 9-10 Chapter 10: Software Quality 10-1 1. Software Quality Fundamentals 10-2 1.1. Software Engineering Culture and Ethics 10-2 1.2. Value and Costs of Quality 10-3 1.3. Models and Quality Characteristics 10-3 1.4. Software Quality Improvement 10-4 1.5. Software Safety 10-4 2. Software Quality Management Processes 10-5 2.1. Software Quality Assurance 10-5 2.2. Verification & Validation 10-6 2.3. Reviews and Audits 10-6 3. Practical Considerations 10-9 3.1. Software Quality Requirements 10-9 3.2. Defect Characterization 10-10 3.3. Software Quality Management Techniques 10-11 3.4. Software Quality Measurement 10-12 4. Software Quality Tools 10-12 Matrix of Topics vs. Reference Material 10-14 Chapter 11: Software Engineering Professional Practice 11-1 1. Professionalism 11-2 1.1. Accreditation, Certification, and Licensing 11-3 1.2. Codes of Ethics and Professional Conduct 11-4 1.3. Nature and Role of Professional Societies 11-4 1.4. Nature and Role of Software Engineering Standards 11-4 1.5. Economic Impact of Software 11-5 1.6. Employment Contracts 11-5 1.7. Legal Issues 11-5 1.8. Documentation 11-7 1.9. Tradeoff Analysis 11-8 2. Group Dynamics and Psychology 11-9 2.1. Dynamics of Working in Teams/Groups 11-9 2.2. Individual Cognition 11-9 2.3. Dealing with Problem Complexity 11-10 2.4. Interacting with Stakeholders 11-10 2.5. Dealing with Uncertainty and Ambiguity 11-10 2.6. Dealing with Multicultural Environments 11-10 3. Communication Skills 11-11 3.1. Reading, Understanding, and Summarizing 11-11
xii SWEBOK®Guide V3.0 3.2.Writing 11-11 3.3.Team and Group Communication 1-11 3.4.Presentation Skills 11-12 Matrix of Topics vs.Reference Material 11-13 Chapter 12:Software Engineering Economics 12-1 1.Software Engineering Economics Fundamentals 12-3 1.1.Finance 12-3 1.2.Accounting 12-3 1.3.Controlling 12-3 1.4.Cash Flow 12-3 1.5.Decision-Making Process 12-4 1.6.Valuation 12-5 1.7.Inflation 12-6 1.8.Depreciation 12-6 1.9.Taxation 12-6 1.10.Time-Value of Money 12-6 1.11.Efficiency 12-6 1.12.Effectiveness 12-6 1.13.Productivity 12-6 2.Life Cycle Economics 12-7 2.1.Product 12-7 2.2.Project 12-7 2.3.Program 12-7 2.4.Portfolio 12-7 2.5.Product Life Cycle 12-7 2.6.Project Life Cycle 12-7 2.7.Proposals 12-8 2.8.Investment Decisions 12-8 2.9.Planning Horizon 12-8 2.10.Price and Pricing 12-8 2.11.Cost and Costing 12-9 2.12.Performance Measurement 12-9 2.13.Earned Value Management 12-9 2.14.Termination Decisions 12-9 2.15.Replacement and Retirement Decisions 12-10 3.Risk and Uncertainty 12-10 3.1.Goals,Estimates,and Plans 12-10 3.2.Estimation Technigues 12-11 3.3.Addressing Uncertainty 12-11 3.4.Prioritization 12-11 3.5.Decisions under Risk 12-11 3.6.Decisions under Uncertainty 12-12 4.Economic Analysis Methods 12-12 4.1.For-Profit Decision Analysis 12-12 4.2.Minimum Acceptable Rate of Return 12-13 4.3.Return on Investment 12-13 4.4.Return on Capital Employed 12-13 4.5.Cost-Benefit Analysis 12-13
xii SWEBOK® Guide V3.0 3.2. Writing 11-11 3.3. Team and Group Communication 11-11 3.4. Presentation Skills 11-12 Matrix of Topics vs. Reference Material 11-13 Chapter 12: Software Engineering Economics 12-1 1. Software Engineering Economics Fundamentals 12-3 1.1. Finance 12-3 1.2. Accounting 12-3 1.3. Controlling 12-3 1.4. Cash Flow 12-3 1.5. Decision-Making Process 12-4 1.6. Valuation 12-5 1.7. Inflation 12-6 1.8. Depreciation 12-6 1.9. Taxation 12-6 1.10. Time-Value of Money 12-6 1.11. Efficiency 12-6 1.12. Effectiveness 12-6 1.13. Productivity 12-6 2. Life Cycle Economics 12-7 2.1. Product 12-7 2.2. Project 12-7 2.3. Program 12-7 2.4. Portfolio 12-7 2.5. Product Life Cycle 12-7 2.6. Project Life Cycle 12-7 2.7. Proposals 12-8 2.8. Investment Decisions 12-8 2.9. Planning Horizon 12-8 2.10. Price and Pricing 12-8 2.11. Cost and Costing 12-9 2.12. Performance Measurement 12-9 2.13. Earned Value Management 12-9 2.14. Termination Decisions 12-9 2.15. Replacement and Retirement Decisions 12-10 3. Risk and Uncertainty 12-10 3.1. Goals, Estimates, and Plans 12-10 3.2. Estimation Techniques 12-11 3.3. Addressing Uncertainty 12-11 3.4. Prioritization 12-11 3.5. Decisions under Risk 12-11 3.6. Decisions under Uncertainty 12-12 4. Economic Analysis Methods 12-12 4.1. For-Profit Decision Analysis 12-12 4.2. Minimum Acceptable Rate of Return 12-13 4.3. Return on Investment 12-13 4.4. Return on Capital Employed 12-13 4.5. Cost-Benefit Analysis 12-13