SWEBOK V3.0
Год издания: 2016
Автор: Bourque P., Richard E. (Dick) Fairley
Жанр или тематика: Международный стандарт
Издательство: Самиздат
Язык: Английский
Формат: PDF
Качество: Перепечатанные страницы
Интерактивное оглавление: Да
Количество страниц: 335
Описание: In the Guide to the Software Engineering Body of Knowledge (SWEBOK Guide), the IEEE Computer Society establishes a baseline for the body of knowledge for the field of software engineering, and the work supports the Society’s responsibility to promote the advancement of both theory and practice in this field. It should be noted that the Guide does not purport to define the body of knowledge but rather to serve as a compendium and guide to the knowledge that has been developing and evolving over the past four decades. Now in Version 3.0, the Guide’s 15 knowledge areas summarize generally accepted topics and list references for detailed information.
The editors for Version 3.0 of the SWEBOK Guide are Pierre Bourque (École de technologie supérieure (ÉTS), Université du Québec) and Richard E. (Dick) Fairley (Software and Systems Engineering Associates (S2EA)).
Оглавление
Foreword xvii
Foreword to the 2004 Edition xix
Editors xxi
Coeditors xxi
Contributing Editors xxi
Change Control Board xxi
Knowledge Area Editors xxiii
Knowledge Area Editors of Previous SWEBOK Versions xxv
Review Team xxvii
Acknowledgements xxix
Professional Activities Board, 2013 Membership xxix
Motions Regarding the Approval of SWEBOK Guide V3.0 xxx
Motions Regarding the Approval of SWEBOK Guide 2004 Version xxx
Introduction to the Guide xxxi
Chapter 1: Software Requirements 1-1
1. Software Requirements Fundamentals 1-1
1.1. Definition of a Software Requirement 1-1
1.2. Product and Process Requirements 1-2
1.3. Functional and Nonfunctional Requirements 1-3
1.4. Emergent Properties 1-3
1.5. Quantifiable Requirements 1-3
1.6. System Requirements and Software Requirements 1-3
2. Requirements Process 1-3
2.1. Process Models 1-4
2.2. Process Actors 1-4
2.3. Process Support and Management 1-4
2.4. Process Quality and Improvement 1-4
3. Requirements Elicitation 1-5
3.1. Requirements Sources 1-5
3.2. Elicitation Techniques 1-6
4. Requirements Analysis 1-7
4.1. Requirements Classification 1-7
4.2. Conceptual Modeling 1-8
4.3. Architectural Design and Requirements Allocation 1-9
4.4. Requirements Negotiation 1-9
4.5. Formal Analysis 1-10
5. Requirements Specification 1-10
5.1. System Definition Document 1-10
5.2. System Requirements Specification 1-10
5.3. Software Requirements Specification 1-11
6. Requirements Validation 1-11
6.1. Requirements Reviews 1-11
6.2. Prototyping 1-12
6.3. Model Validation 1-12
6.4. Acceptance Tests 1-12
7. Practical Considerations 1-12
7.1. Iterative Nature of the Requirements Process 1-13
7.2. Change Management 1-13
7.3. Requirements Attributes 1-13
7.4. Requirements Tracing 1-14
7.5. Measuring Requirements 1-14
8. Software Requirements Tools 1-14
Matrix of Topics vs. Reference Material 1-15
Chapter 2: Software Design 2-1
1. Software Design Fundamentals 2-2
1.1. General Design Concepts 2-2
1.2. Context of Software Design 2-2
1.3. Software Design Process 2-2
1.4. Software Design Principles 2-3
2. Key Issues in Software Design 2-3
2.1. Concurrency 2-4
2.2. Control and Handling of Events 2-4
2.3. Data Persistence 2-4
2.4. Distribution of Components 2-4
2.5. Error and Exception Handling and Fault Tolerance 2-4
2.6. Interaction and Presentation 2-4
2.7. Security 2-4
3. Software Structure and Architecture 2-4
3.1. Architectural Structures and Viewpoints 2-5
3.2. Architectural Styles 2-5
3.3. Design Patterns 2-5
3.4. Architecture Design Decisions 2-5
3.5. Families of Programs and Frameworks 2-5
4. User Interface Design 2-5
4.1. General User Interface Design Principles 2-6
4.2. User Interface Design Issues 2-6
4.3. The Design of User Interaction Modalities 2-6
4.4. The Design of Information Presentation 2-6
4.5. User Interface Design Process 2-7
4.6. Localization and Internationalization 2-7
4.7. Metaphors and Conceptual Models 2-7
5. Software Design Quality Analysis and Evaluation 2-7
5.1. Quality Attributes 2-7
5.2. Quality Analysis and Evaluation Techniques 2-8
5.3. Measures 2-8
6. Software Design Notations 2-8
6.1. Structural Descriptions (Static View) 2-8
6.2. Behavioral Descriptions (Dynamic View) 2-9
7. Software Design Strategies and Methods 2-10
7.1. General Strategies 2-10
7.2. Function-Oriented (Structured) Design 2-10
7.3. Object-Oriented Design 2-10
6.3. Model Validation 1-12
6.4. Acceptance Tests 1-12
7. Practical Considerations 1-12
7.1. Iterative Nature of the Requirements Process 1-13
7.2. Change Management 1-13
7.3. Requirements Attributes 1-13
7.4. Requirements Tracing 1-14
7.5. Measuring Requirements 1-14
8. Software Requirements Tools 1-14
Matrix of Topics vs. Reference Material 1-15
Chapter 2: Software Design 2-1
1. Software Design Fundamentals 2-2
1.1. General Design Concepts 2-2
1.2. Context of Software Design 2-2
1.3. Software Design Process 2-2
1.4. Software Design Principles 2-3
2. Key Issues in Software Design 2-3
2.1. Concurrency 2-4
2.2. Control and Handling of Events 2-4
2.3. Data Persistence 2-4
2.4. Distribution of Components 2-4
2.5. Error and Exception Handling and Fault Tolerance 2-4
2.6. Interaction and Presentation 2-4
2.7. Security 2-4
3. Software Structure and Architecture 2-4
3.1. Architectural Structures and Viewpoints 2-5
3.2. Architectural Styles 2-5
3.3. Design Patterns 2-5
3.4. Architecture Design Decisions 2-5
3.5. Families of Programs and Frameworks 2-5
4. User Interface Design 2-5
4.1. General User Interface Design Principles 2-6
4.2. User Interface Design Issues 2-6
4.3. The Design of User Interaction Modalities 2-6
4.4. The Design of Information Presentation 2-6
4.5. User Interface Design Process 2-7
4.6. Localization and Internationalization 2-7
4.7. Metaphors and Conceptual Models 2-7
5. Software Design Quality Analysis and Evaluation 2-7
5.1. Quality Attributes 2-7
5.2. Quality Analysis and Evaluation Techniques 2-8
5.3. Measures 2-8
6. Software Design Notations 2-8
6.1. Structural Descriptions (Static View) 2-8
6.2. Behavioral Descriptions (Dynamic View) 2-9
7. Software Design Strategies and Methods 2-10
7.1. General Strategies 2-10
7.2. Function-Oriented (Structured) Design 2-10
7.3. Object-Oriented Design 2-10
6.3. Model Validation 1-12
6.4. Acceptance Tests 1-12
7. Practical Considerations 1-12
7.1. Iterative Nature of the Requirements Process 1-13
7.2. Change Management 1-13
7.3. Requirements Attributes 1-13
7.4. Requirements Tracing 1-14
7.5. Measuring Requirements 1-14
8. Software Requirements Tools 1-14
Matrix of Topics vs. Reference Material 1-15
Chapter 2: Software Design 2-1
1. Software Design Fundamentals 2-2
1.1. General Design Concepts 2-2
1.2. Context of Software Design 2-2
1.3. Software Design Process 2-2
1.4. Software Design Principles 2-3
2. Key Issues in Software Design 2-3
2.1. Concurrency 2-4
2.2. Control and Handling of Events 2-4
2.3. Data Persistence 2-4
2.4. Distribution of Components 2-4
2.5. Error and Exception Handling and Fault Tolerance 2-4
2.6. Interaction and Presentation 2-4
2.7. Security 2-4
3. Software Structure and Architecture 2-4
3.1. Architectural Structures and Viewpoints 2-5
3.2. Architectural Styles 2-5
3.3. Design Patterns 2-5
3.4. Architecture Design Decisions 2-5
3.5. Families of Programs and Frameworks 2-5
4. User Interface Design 2-5
4.1. General User Interface Design Principles 2-6
4.2. User Interface Design Issues 2-6
4.3. The Design of User Interaction Modalities 2-6
4.4. The Design of Information Presentation 2-6
4.5. User Interface Design Process 2-7
4.6. Localization and Internationalization 2-7
4.7. Metaphors and Conceptual Models 2-7
5. Software Design Quality Analysis and Evaluation 2-7
5.1. Quality Attributes 2-7
5.2. Quality Analysis and Evaluation Techniques 2-8
5.3. Measures 2-8
6. Software Design Notations 2-8
6.1. Structural Descriptions (Static View) 2-8
6.2. Behavioral Descriptions (Dynamic View) 2-9
7. Software Design Strategies and Methods 2-10
7.1. General Strategies 2-10
7.2. Function-Oriented (Structured) Design 2-10
7.3. Object-Oriented Design 2-10
6.3. Model Validation 1-12
6.4. Acceptance Tests 1-12
7. Practical Considerations 1-12
7.1. Iterative Nature of the Requirements Process 1-13
7.2. Change Management 1-13
7.3. Requirements Attributes 1-13
7.4. Requirements Tracing 1-14
7.5. Measuring Requirements 1-14
8. Software Requirements Tools 1-14
Matrix of Topics vs. Reference Material 1-15
Chapter 2: Software Design 2-1
1. Software Design Fundamentals 2-2
1.1. General Design Concepts 2-2
1.2. Context of Software Design 2-2
1.3. Software Design Process 2-2
1.4. Software Design Principles 2-3
2. Key Issues in Software Design 2-3
2.1. Concurrency 2-4
2.2. Control and Handling of Events 2-4
2.3. Data Persistence 2-4
2.4. Distribution of Components 2-4
2.5. Error and Exception Handling and Fault Tolerance 2-4
2.6. Interaction and Presentation 2-4
2.7. Security 2-4
3. Software Structure and Architecture 2-4
3.1. Architectural Structures and Viewpoints 2-5
3.2. Architectural Styles 2-5
3.3. Design Patterns 2-5
3.4. Architecture Design Decisions 2-5
3.5. Families of Programs and Frameworks 2-5
4. User Interface Design 2-5
4.1. General User Interface Design Principles 2-6
4.2. User Interface Design Issues 2-6
4.3. The Design of User Interaction Modalities 2-6
4.4. The Design of Information Presentation 2-6
4.5. User Interface Design Process 2-7
4.6. Localization and Internationalization 2-7
4.7. Metaphors and Conceptual Models 2-7
5. Software Design Quality Analysis and Evaluation 2-7
5.1. Quality Attributes 2-7
5.2. Quality Analysis and Evaluation Techniques 2-8
5.3. Measures 2-8
6. Software Design Notations 2-8
6.1. Structural Descriptions (Static View) 2-8
6.2. Behavioral Descriptions (Dynamic View) 2-9
7. Software Design Strategies and Methods 2-10
7.1. General Strategies 2-10
7.2. Function-Oriented (Structured) Design 2-10
7.3. Object-Oriented Design 2-10
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
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
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
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
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
4.6. Cost-Effectiveness Analysis 12-13
4.7. Break-Even Analysis 12-13
4.8. Business Case 12-13
4.9. Multiple Attribute Evaluation 12-14
4.10. Optimization Analysis 12-14
5. Practical Considerations 12-14
5.1. The “Good Enough” Principle 12-14
5.2. Friction-Free Economy 12-15
5.3. Ecosystems 12-15
5.4. Offshoring and Outsourcing 12-15
Matrix of Topics vs. Reference Material 12-16
Chapter 13: Computing Foundations 13-1
1. Problem Solving Techniques 13-3
1.1. Definition of Problem Solving 13-3
1.2. Formulating the Real Problem 13-3
1.3. Analyze the Problem 13-3
1.4. Design a Solution Search Strategy 13-3
1.5. Problem Solving Using Programs 13-3
2. Abstraction 13-4
2.1. Levels of Abstraction 13-4
2.2. Encapsulation 13-4
2.3. Hierarchy 13-4
2.4. Alternate Abstractions 13-5
3. Programming Fundamentals 13-5
3.1. The Programming Process 13-5
3.2. Programming Paradigms 13-5
4. Programming Language Basics 13-6
4.1. Programming Language Overview 13-6
4.2. Syntax and Semantics of Programming Languages 13-6
4.3. Low-Level Programming Languages 13-7
4.4. High-Level Programming Languages 13-7
4.5. Declarative vs. Imperative Programming Languages 13-7
5. Debugging Tools and Techniques 13-8
5.1. Types of Errors 13-8
5.2. Debugging Techniques 13-8
5.3. Debugging Tools 13-8
6. Data Structure and Representation 13-9
6.1. Data Structure Overview 13-9
6.2. Types of Data Structure 13-9
6.3. Operations on Data Structures 13-9
7. Algorithms and Complexity 13-10
7.1. Overview of Algorithms 13-10
7.2. Attributes of Algorithms 13-10
7.3. Algorithmic Analysis 13-10
7.4. Algorithmic Design Strategies 13-11
7.5. Algorithmic Analysis Strategies 13-11
8. Basic Concept of a System 13-11
8.1. Emergent System Properties 13-11
4.6. Cost-Effectiveness Analysis 12-13
4.7. Break-Even Analysis 12-13
4.8. Business Case 12-13
4.9. Multiple Attribute Evaluation 12-14
4.10. Optimization Analysis 12-14
5. Practical Considerations 12-14
5.1. The “Good Enough” Principle 12-14
5.2. Friction-Free Economy 12-15
5.3. Ecosystems 12-15
5.4. Offshoring and Outsourcing 12-15
Matrix of Topics vs. Reference Material 12-16
Chapter 13: Computing Foundations 13-1
1. Problem Solving Techniques 13-3
1.1. Definition of Problem Solving 13-3
1.2. Formulating the Real Problem 13-3
1.3. Analyze the Problem 13-3
1.4. Design a Solution Search Strategy 13-3
1.5. Problem Solving Using Programs 13-3
2. Abstraction 13-4
2.1. Levels of Abstraction 13-4
2.2. Encapsulation 13-4
2.3. Hierarchy 13-4
2.4. Alternate Abstractions 13-5
3. Programming Fundamentals 13-5
3.1. The Programming Process 13-5
3.2. Programming Paradigms 13-5
4. Programming Language Basics 13-6
4.1. Programming Language Overview 13-6
4.2. Syntax and Semantics of Programming Languages 13-6
4.3. Low-Level Programming Languages 13-7
4.4. High-Level Programming Languages 13-7
4.5. Declarative vs. Imperative Programming Languages 13-7
5. Debugging Tools and Techniques 13-8
5.1. Types of Errors 13-8
5.2. Debugging Techniques 13-8
5.3. Debugging Tools 13-8
6. Data Structure and Representation 13-9
6.1. Data Structure Overview 13-9
6.2. Types of Data Structure 13-9
6.3. Operations on Data Structures 13-9
7. Algorithms and Complexity 13-10
7.1. Overview of Algorithms 13-10
7.2. Attributes of Algorithms 13-10
7.3. Algorithmic Analysis 13-10
7.4. Algorithmic Design Strategies 13-11
7.5. Algorithmic Analysis Strategies 13-11
8. Basic Concept of a System 13-11
8.1. Emergent System Properties 13-11
4.6. Cost-Effectiveness Analysis 12-13
4.7. Break-Even Analysis 12-13
4.8. Business Case 12-13
4.9. Multiple Attribute Evaluation 12-14
4.10. Optimization Analysis 12-14
5. Practical Considerations 12-14
5.1. The “Good Enough” Principle 12-14
5.2. Friction-Free Economy 12-15
5.3. Ecosystems 12-15
5.4. Offshoring and Outsourcing 12-15
Matrix of Topics vs. Reference Material 12-16
Chapter 13: Computing Foundations 13-1
1. Problem Solving Techniques 13-3
1.1. Definition of Problem Solving 13-3
1.2. Formulating the Real Problem 13-3
1.3. Analyze the Problem 13-3
1.4. Design a Solution Search Strategy 13-3
1.5. Problem Solving Using Programs 13-3
2. Abstraction 13-4
2.1. Levels of Abstraction 13-4
2.2. Encapsulation 13-4
2.3. Hierarchy 13-4
2.4. Alternate Abstractions 13-5
3. Programming Fundamentals 13-5
3.1. The Programming Process 13-5
3.2. Programming Paradigms 13-5
4. Programming Language Basics 13-6
4.1. Programming Language Overview 13-6
4.2. Syntax and Semantics of Programming Languages 13-6
4.3. Low-Level Programming Languages 13-7
4.4. High-Level Programming Languages 13-7
4.5. Declarative vs. Imperative Programming Languages 13-7
5. Debugging Tools and Techniques 13-8
5.1. Types of Errors 13-8
5.2. Debugging Techniques 13-8
5.3. Debugging Tools 13-8
6. Data Structure and Representation 13-9
6.1. Data Structure Overview 13-9
6.2. Types of Data Structure 13-9
6.3. Operations on Data Structures 13-9
7. Algorithms and Complexity 13-10
7.1. Overview of Algorithms 13-10
7.2. Attributes of Algorithms 13-10
7.3. Algorithmic Analysis 13-10
7.4. Algorithmic Design Strategies 13-11
7.5. Algorithmic Analysis Strategies 13-11
8. Basic Concept of a System 13-11
8.1. Emergent System Properties 13-11
5.3. Prototyping 15-11
6. Standards 15-12
7. Root Cause Analysis 15-12
7.1. Techniques for Conducting Root Cause Analysis 15-13
Matrix of Topics vs. Reference Material 15-14
Appendix A: Knowledge Area Description Specifications A-1
Appendix B: IEEE and ISO/IEC Standards Supporting the Software Engineering
Body of Knowledge (SWEBOK) B-1
Appendix C: Consolidated Reference List C-1