Goals

Many in the research software engineering (RSE) community have picked up their understanding of software engineering (SE) terminology, concepts, practices, and tools (which we call “SE fundamentals”) via informal means, and often not from software engineering researchers (SERs). We want to get a better handle on what RSEs know about and use from the SE community and where there might be gaps. Gaps may stem largely from lack of awareness, or it may be that RSEs have tried the fundamental and found it less useful in the context of research software. In the former case, there are opportunities for education and training as well as other outreach to increase awareness and adoption. In the latter case, there may be opportunities for the SER community to work with RSEs to understand why not, and if there might be adaptations that would make it more amenable to use in the research software (RS) community.

Approach

We’re developing a mapping between terminology used in the two communities. For each term, we’re trying to gauge the extent to which the RSE community is aware of these fundamentals of software engineering and uses them, along with the perceived potential for software engineering research to improve usage in RS.

To be systematic, we’re starting with the Software Engineering Body of Knowledge (SWEBOK) as the primary source of terms and their meanings from the SE community. Once we’ve covered the terms from SWEBOK, we’ll open it to other sources, though we’ll always prefer well-recognized sources that will help us be systematic.

Each SE fundamental has a page that lists the following:

  • The SE fundamental, and synonyms or adjacent concepts which can be grouped together for mapping purposes
    • The SWEBOK section number(s) in which the terms are found
    • A brief description of the SE fundamental
  • The equivalent RSE term(s), also including synonyms or adjacent concepts.
    • A brief description of the typical RSE practices associated with the term
  • An estimate of the level of awareness of the SE fundamental by RSEs, along with a source for the estimate
    • Values range from 0=effectively no awareness to 3=widespread awareness
  • An estimate of the level of usage of the SE fundamental by RSEs, along with a source for the estimate
    • Values range from 0=effectively no usage to 3=widespread usage
  • An estimate of the potential for SE research to improve the use of the fundamental in RS, along with a source for the estimate
    • Values range from 0=effectively no opportunity to 3=significant SE research would be beneficial
  • A brief description of the reasons or opportunities for SE research to facilitate improvements
  • Any references or links that may be useful
  • Date of the last update to the term mapping record (based on git commits), and if available, the date of the last review of the record by the curators of the website.
  • Additional notes as may be useful

The table below, based on the SWEBOK table of contents, will link you to the detail pages for the available SE fundamentals, or you can browse through the collection of terms page by page.

How you can contribute

We want this mapping to represent the collective experience of the SER and RSE communities. This page, and the page for each SE fundamental includes a comment section. Make comments there to suggest changes or discuss the term’s entry. Also, feel free to use GitHub discussions to discuss the overall approach or things that can be improved, or let of know of specific concerns via Github issues.

SWEBOK table of contents

Note that the SWEBOK contains a great deal more than just terminology. This table presents only those sections of the SWEBOK which are candidates for mapping. If no link is presented, we don’t yet have a page for the relevant term(s). If you’d like to help us complete the table, please reach out via Github issues.

During the development of this page, we’re displaying the whole SWEBOK table of contents, but marking sections that are not candidates for mapping in red and noting “n/a” in the Mapping column. Eventually, we will simply avoid displaying those entries. Also, we’re currently showing the SWEBOK page numbers, as a convenience. We may remove those in production.

SectionHeadingPageMapping
00.01 Foreword xvii n/a
00.02 Foreword to the 2004 Edition xix n/a
00.03 Editors xxi n/a
00.04 Coeditors xxi n/a
00.05 Contributing Editors xxi n/a
00.06 Change Control Board xxi n/a
00.07 Knowledge Area Editors xxiii n/a
00.08 Knowledge Area Editors of Previous SWEBOK Versions xxv n/a
00.09 Review Team xxvii n/a
00.10 Acknowledgements xxix n/a
00.11 Professional Activities Board, 2013 Membership xxix n/a
00.12 Motions Regarding the Approval of SWEBOK Guide V3.0 xxx n/a
00.13 Motions Regarding the Approval of SWEBOK Guide 2004 Version xxx n/a
00.14 Introduction to the Guide xxxi n/a
01 Software Requirements 1-1
01.01 Software Requirements Fundamentals 1-1
01.01.01 Definition of a Software Requirement 1-1
01.01.02 Product and Process Requirements 1-2
01.01.03 Functional and Nonfunctional Requirements 1-3
01.01.04 Emergent Properties 1-3
01.01.05 Quantifiable Requirements 1-3
01.01.06 System Requirements and Software Requirements 1-3
01.02 Requirements Process 1-3
01.02.01 Process Models 1-4
01.02.02 Process Actors 1-4
01.02.03 Process Support and Management 1-4
01.02.04 Process Quality and Improvement 1-4
01.03 Requirements Elicitation 1-5 mapping
01.03.01 Requirements Sources 1-5
01.03.02 Elicitation Techniques 1-6
01.04 Requirements Analysis 1-7 mapping
01.04.01 Requirements Classification 1-7
01.04.02 Conceptual Modeling 1-8
01.04.03 Architectural Design and Requirements Allocation 1-9
01.04.04 Requirements Negotiation 1-9
01.04.05 Formal Analysis 1-10
01.05 Requirements Specification 1-10 mapping
01.05.01 System Definition Document 1-10
01.05.02 System Requirements Specification 1-10
01.05.03 Software Requirements Specification 1-11
01.06 Requirements Validation 1-11 mapping
01.06.01 Requirements Reviews 1-11
01.06.02 Prototyping 1-12
01.06.03 Model Validation 1-12
01.06.04 Acceptance Tests 1-12
01.07 Practical Considerations 1-12
01.07.01 Iterative Nature of the Requirements Process 1-13
01.07.02 Change Management 1-13
01.07.03 Requirements Attributes 1-13
01.07.04 Requirements Tracing 1-14 mapping
01.07.05 Measuring Requirements 1-14
01.08 Software Requirements Tools 1-14 mapping
01.09 Matrix of Topics vs. Reference Material 1-15 n/a
02 Software Design 2-1
02.01 Software Design Fundamentals 2-2
02.01.01 General Design Concepts 2-2
02.01.02 Context of Software Design 2-2
02.01.03 Software Design Process 2-2
02.01.04 Software Design Principles 2-3
02.02 Key Issues in Software Design 2-3
02.02.01 Concurrency 2-4
02.02.02 Control and Handling of Events 2-4
02.02.03 Data Persistence 2-4
02.02.04 Distribution of Components 2-4
02.02.05 Error and Exception Handling and Fault Tolerance 2-4
02.02.06 Interaction and Presentation 2-4
02.02.07 Security 2-4
02.03 Software Structure and Architecture 2-4
02.03.01 Architectural Structures and Viewpoints 2-5
02.03.02 Architectural Styles 2-5
02.03.03 Design Patterns 2-5
02.03.04 Architecture Design Decisions 2-5
02.03.05 Families of Programs and Frameworks 2-5
02.04 User Interface Design 2-5
02.04.01 General User Interface Design Principles 2-6
02.04.02 User Interface Design Issues 2-6
02.04.03 The Design of User Interaction Modalities 2-6
02.04.04 The Design of Information Presentation 2-6
02.04.05 User Interface Design Process 2-7
02.04.06 Localization and Internationalization 2-7
02.04.07 Metaphors and Conceptual Models 2-7
02.05 Software Design Quality Analysis and Evaluation 2-7
02.05.01 Quality Attributes 2-7
02.05.02 Quality Analysis and Evaluation Techniques 2-8
02.05.03 Measures 2-8
02.06 Software Design Notations 2-8
02.06.01 Structural Descriptions (Static View) 2-8
02.06.02 Behavioral Descriptions (Dynamic View) 2-9
02.07 Software Design Strategies and Methods 2-10
02.07.01 General Strategies 2-10
02.07.02 Function-Oriented (Structured) Design 2-10
02.07.03 Object-Oriented Design 2-10
02.07.04 Data Structure-Centered Design 2-10
02.07.05 Component-Based Design (CBD) 2-10
02.07.06 Other Methods 2-10
02.08 Software Design Tools 2-11
02.09 Matrix of Topics vs. Reference Material 2-12 n/a
03 Software Construction 3-1
03.01 Software Construction Fundamentals 3-1
03.01.01 Minimizing Complexity 3-3
03.01.02 Anticipating Change 3-3
03.01.03 Constructing for Verification 3-3
03.01.04 Reuse 3-3
03.01.05 Standards in Construction 3-3
03.02 Managing Construction 3-4
03.02.01 Construction in Life Cycle Models 3-4
03.02.02 Construction Planning 3-4
03.02.03 Construction Measurement 3-4
03.03 Practical Considerations 3-5
03.03.01 Construction Design 3-5
03.03.02 Construction Languages 3-5
03.03.03 Coding 3-6
03.03.04 Construction Testing 3-6
03.03.05 Construction for Reuse 3-6
03.03.06 Construction with Reuse 3-7
03.03.07 Construction Quality 3-7
03.03.08 Integration 3-7
03.04 Construction Technologies 3-8
03.04.01 API Design and Use 3-8
03.04.02 Object-Oriented Runtime Issues 3-8
03.04.03 Parameterization and Generics 3-8
03.04.04 Assertions, Design by Contract, and Defensive Programming 3-8
03.04.05 Error Handling, Exception Handling, and Fault Tolerance 3-9
03.04.06 Executable Models 3-9
03.04.07 State-Based and Table-Driven Construction Techniques 3-9
03.04.08 Runtime Configuration and Internationalization 3-10
03.04.09 Grammar-Based Input Processing 3-10
03.04.10 Concurrency Primitives 3-10
03.04.11 Middleware 3-10
03.04.12 Construction Methods for Distributed Software 3-11
03.04.13 Constructing Heterogeneous Systems 3-11
03.04.14 Performance Analysis and Tuning 3-11
03.04.15 Platform Standards 3-11
03.04.16 Test-First Programming 3-11
03.05 Software Construction Tools 3-12
03.05.01 Development Environments 3-12
03.05.02 GUI Builders 3-12
03.05.03 Unit Testing Tools 3-12
03.05.04 Profiling, Performance Analysis, and Slicing Tools 3-12
03.06 Matrix of Topics vs. Reference Material 3-13 n/a
04 Software Testing 4-1
04.01 Software Testing Fundamentals 4-3
04.01.01 Testing-Related Terminology 4-3
04.01.02 Key Issues 4-3
04.01.03 Relationship of Testing to Other Activities 4-4
04.02 Test Levels 4-5
04.02.01 The Target of the Test 4-5
04.02.01.01 Unit testing ?? mapping
04.02.01.02 Integration testing ?? mapping
04.02.01.03 System testing ?? mapping
04.02.02 Objectives of Testing 4-5
04.02.02.01 Acceptance testing ?? mapping
04.02.02.02 Installation testing ?? mapping
04.02.02.03 Alpha and beta testing ?? mapping
04.02.02.05 Regression testing ?? mapping
04.02.02.06 Performance testing ?? mapping
04.02.02.07 Security testing ?? mapping
04.02.02.08 Stress testing ?? mapping
04.02.02.09 Back-to-back testing ?? mapping
04.02.02.10 Recovery testing ?? mapping
04.02.02.12 Configuration testing ?? mapping
04.02.02.13 Usability testing ?? mapping
04.03 Test Techniques 4-7
04.03.01 Based on the Software Engineer’s Intuition and Experience 4-8
04.03.02 Input Domain-Based Techniques 4-8
04.03.03 Code-Based Techniques 4-8
04.03.04 Fault-Based Techniques 4-9
04.03.05 Usage-Based Techniques 4-9
04.03.06 Model-Based Testing Techniques 4-10
04.03.07 Techniques Based on the Nature of the Application 4-10
04.03.08 Selecting and Combining Techniques 4-11
04.04 Test-Related Measures 4-11
04.04.01 Evaluation of the Program Under Test 4-11
04.04.02 Evaluation of the Tests Performed 4-12
04.05 Test Process 4-12
04.05.01 Practical Considerations 4-13
04.05.02 Test Activities 4-14
04.06 Software Testing Tools 4-15
04.06.01 Testing Tool Support 4-15
04.06.02 Categories of Tools 4-15
04.07 Matrix of Topics vs. Reference Material 4-17 n/a
05 Software Maintenance 5-1
05.01 Software Maintenance Fundamentals 5-1
05.01.01 Definitions and Terminology 5-1
05.01.02 Nature of Maintenance 5-2
05.01.03 Need for Maintenance 5-3
05.01.04 Majority of Maintenance Costs 5-3
05.01.05 Evolution of Software 5-3
05.01.06 Categories of Maintenance 5-3
05.02 Key Issues in Software Maintenance 5-4
05.02.01 Technical Issues 5-4
05.02.02 Management Issues 5-5
05.02.03 Maintenance Cost Estimation 5-6
05.02.04 Software Maintenance Measurement 5-7
05.03 Maintenance Process 5-7
05.03.01 Maintenance Processes 5-7
05.03.02 Maintenance Activities 5-8
05.04 Techniques for Maintenance 5-10
05.04.01 Program Comprehension 5-10
05.04.02 Reengineering 5-10
05.04.03 Reverse Engineering 5-10
05.04.04 Migration 5-10
05.04.05 Retirement 5-11
05.05 Software Maintenance Tools 5-11
05.06 Matrix of Topics vs. Reference Material 5-12 n/a
06 Software Configuration Management 6-1
06.01 Management of the SCM Process 6-2
06.01.01 Organizational Context for SCM 6-2
06.01.02 Constraints and Guidance for the SCM Process 6-3
06.01.03 Planning for SCM 6-3
06.01.04 SCM Plan 6-5
06.01.05 Surveillance of Software Configuration Management 6-5
06.02 Software Configuration Identification 6-6
06.02.01 Identifying Items to Be Controlled 6-6
06.02.02 Software Library 6-8
06.03 Software Configuration Control 6-8
06.03.01 Requesting, Evaluating, and Approving Software Changes 6-8
06.03.02 Implementing Software Changes 6-9
06.03.03 Deviations and Waivers 6-10
06.04 Software Configuration Status Accounting 6-10
06.04.01 Software Configuration Status Information 6-10
06.04.02 Software Configuration Status Reporting 6-10
06.05 Software Configuration Auditing 6-10
06.05.01 Software Functional Configuration Audit 6-11
06.05.02 Software Physical Configuration Audit 6-11
06.05.03 In-Process Audits of a Software Baseline 6-11
06.06 Software Release Management and Delivery 6-11
06.06.01 Software Building 6-11
06.06.02 Software Release Management 6-12
06.07 Software Configuration Management Tools 6-12
06.08 Matrix of Topics vs. Reference Material 6-13 n/a
07 Software Engineering Management 7-1
07.01 Initiation and Scope Definition 7-4
07.01.01 Determination and Negotiation of Requirements 7-4
07.01.02 Feasibility Analysis 7-4
07.01.03 Process for the Review and Revision of Requirements 7-5
07.02 Software Project Planning 7-5
07.02.01 Process Planning 7-5
07.02.02 Determine Deliverables 7-5
07.02.03 Effort, Schedule, and Cost Estimation 7-6
07.02.04 Resource Allocation 7-6
07.02.05 Risk Management 7-6
07.02.06 Quality Management 7-6
07.02.07 Plan Management 7-7
07.03 Software Project Enactment 7-7
07.03.01 Implementation of Plans 7-7
07.03.02 Software Acquisition and Supplier Contract Management 7-7
07.03.03 Implementation of Measurement Process 7-7
07.03.04 Monitor Process 7-7
07.03.05 Control Process 7-8
07.03.06 Reporting 7-8
07.04 Review and Evaluation 7-8
07.04.01 Determining Satisfaction of Requirements 7-8
07.04.02 Reviewing and Evaluating Performance 7-9
07.05 Closure 7-9
07.05.01 Determining Closure 7-9
07.05.02 Closure Activities 7-9
07.06 Software Engineering Measurement 7-9
07.06.01 Establish and Sustain Measurement Commitment 7-9
07.06.02 Plan the Measurement Process 7-10
07.06.03 Perform the Measurement Process 7-11
07.06.04 Evaluate Measurement 7-11
07.07 Software Engineering Management Tools 7-11
07.08 Matrix of Topics vs. Reference Material 7-13 n/a
08 Software Engineering Process 8-1
08.01 Software Process Definition 8-2
08.01.01 Software Process Management 8-3
08.01.02 Software Process Infrastructure 8-4
08.02 Software Life Cycles 8-4
08.02.01 Categories of Software Processes 8-5
08.02.02 Software Life Cycle Models 8-5
08.02.03 Software Process Adaptation 8-6
08.02.04 Practical Considerations 8-6
08.03 Software Process Assessment and Improvement 8-6
08.03.01 Software Process Assessment Models 8-7
08.03.02 Software Process Assessment Methods 8-7
08.03.03 Software Process Improvement Models 8-7
08.03.04 Continuous and Staged Software Process Ratings 8-8
08.04 Software Measurement 8-8
08.04.01 Software Process and Product Measurement 8-9
08.04.02 Quality of Measurement Results 8-10
08.04.03 Software Information Models 8-10
08.04.04 Software Process Measurement Techniques 8-11
08.05 Software Engineering Process Tools 8-12
08.06 Matrix of Topics vs. Reference Material 8-13 n/a
09 Software Engineering Models and Methods 9-1
09.01 Modeling 9-1
09.01.01 Modeling Principles 9-2
09.01.02 Properties and Expression of Models 9-3
09.01.03 Syntax, Semantics, and Pragmatics 9-3
09.01.04 Preconditions, Postconditions, and Invariants 9-4
09.02 Types of Models 9-4
09.02.01 Information Modeling 9-5
09.02.02 Behavioral Modeling 9-5
09.02.03 Structure Modeling 9-5
09.03 Analysis of Models 9-5
09.03.01 Analyzing for Completeness 9-5
09.03.02 Analyzing for Consistency 9-6
09.03.03 Analyzing for Correctness 9-6
09.03.04 Traceability 9-6
09.03.05 Interaction Analysis 9-6
09.04 Software Engineering Methods 9-7
09.04.01 Heuristic Methods 9-7
09.04.02 Formal Methods 9-7
09.04.03 Prototyping Methods 9-8
09.04.04 Agile Methods 9-9
09.05 Matrix of Topics vs. Reference Material 9-10 n/a
10 Software Quality 10-1
10.01 Software Quality Fundamentals 10-2
10.01.01 Software Engineering Culture and Ethics 10-2
10.01.02 Value and Costs of Quality 10-3
10.01.03 Models and Quality Characteristics 10-3
10.01.04 Software Quality Improvement 10-4
10.01.05 Software Safety 10-4
10.02 Software Quality Management Processes 10-5
10.02.01 Software Quality Assurance 10-5
10.02.02 Verification & Validation 10-6
10.02.03 Reviews and Audits 10-6
10.03 Practical Considerations 10-9
10.03.01 Software Quality Requirements 10-9
10.03.02 Defect Characterization 10-10
10.03.03 Software Quality Management Techniques 10-11
10.03.04 Software Quality Measurement 10-12
10.04 Software Quality Tools 10-12
10.05 Matrix of Topics vs. Reference Material 10-14 n/a
11 Software Engineering Professional Practice 11-1 n/a
11.01 Professionalism 11-2 n/a
11.01.01 Accreditation, Certification, and Licensing 11-3 n/a
11.01.02 Codes of Ethics and Professional Conduct 11-4 n/a
11.01.03 Nature and Role of Professional Societies 11-4 n/a
11.01.04 Nature and Role of Software Engineering Standards 11-4 n/a
11.01.05 Economic Impact of Software 11-5 n/a
11.01.06 Employment Contracts 11-5 n/a
11.01.07 Legal Issues 11-5 n/a
11.01.08 Documentation 11-7 n/a
11.01.09 Tradeoff Analysis 11-8 n/a
11.02 Group Dynamics and Psychology 11-9 n/a
11.02.01 Dynamics of Working in Teams/Groups 11-9 n/a
11.02.02 Individual Cognition 11-9 n/a
11.02.03 Dealing with Problem Complexity 11-10 n/a
11.02.04 Interacting with Stakeholders 11-10 n/a
11.02.05 Dealing with Uncertainty and Ambiguity 11-10 n/a
11.02.06 Dealing with Multicultural Environments 11-10 n/a
11.03 Communication Skills 11-11 n/a
11.03.01 Reading, Understanding, and Summarizing 11-11 n/a
11.03.02 Writing 11-11 n/a
11.03.03 Team and Group Communication 11-11 n/a
11.03.04 Presentation Skills 11-12 n/a
11.04 Matrix of Topics vs. Reference Material 11-13 n/a
12 Software Engineering Economics 12-1 n/a
12.01 Software Engineering Economics Fundamentals 12-3 n/a
12.01.01 Finance 12-3 n/a
12.01.02 Accounting 12-3 n/a
12.01.03 Controlling 12-3 n/a
12.01.04 Cash Flow 12-3 n/a
12.01.05 Decision-Making Process 12-4 n/a
12.01.06 Valuation 12-5 n/a
12.01.07 Inflation 12-6 n/a
12.01.08 Depreciation 12-6 n/a
12.01.09 Taxation 12-6 n/a
12.01.10 Time-Value of Money 12-6 n/a
12.01.11 Efficiency 12-6 n/a
12.01.12 Effectiveness 12-6 n/a
12.01.13 Productivity 12-6 n/a
12.02 Life Cycle Economics 12-7 n/a
12.02.01 Product 12-7 n/a
12.02.02 Project 12-7 n/a
12.02.03 Program 12-7 n/a
12.02.04 Portfolio 12-7 n/a
12.02.05 Product Life Cycle 12-7 n/a
12.02.06 Project Life Cycle 12-7 n/a
12.02.07 Proposals 12-8 n/a
12.02.08 Investment Decisions 12-8 n/a
12.02.09 Planning Horizon 12-8 n/a
12.02.10 Price and Pricing 12-8 n/a
12.02.11 Cost and Costing 12-9 n/a
12.02.12 Performance Measurement 12-9 n/a
12.02.13 Earned Value Management 12-9 n/a
12.02.14 Termination Decisions 12-9 n/a
12.02.15 Replacement and Retirement Decisions 12-10 n/a
12.03 Risk and Uncertainty 12-10 n/a
12.03.01 Goals, Estimates, and Plans 12-10 n/a
12.03.02 Estimation Techniques 12-11 n/a
12.03.03 Addressing Uncertainty 12-11 n/a
12.03.04 Prioritization 12-11 n/a
12.03.05 Decisions under Risk 12-11 n/a
12.03.06 Decisions under Uncertainty 12-12 n/a
12.04 Economic Analysis Methods 12-12 n/a
12.04.01 For-Profit Decision Analysis 12-12 n/a
12.04.02 Minimum Acceptable Rate of Return 12-13 n/a
12.04.03 Return on Investment 12-13 n/a
12.04.04 Return on Capital Employed 12-13 n/a
12.04.05 Cost-Benefit Analysis 12-13 n/a
12.04.06 Cost-Effectiveness Analysis 12-13 n/a
12.04.07 Break-Even Analysis 12-13 n/a
12.04.08 Business Case 12-13 n/a
12.04.09 Multiple Attribute Evaluation 12-14 n/a
12.04.10 Optimization Analysis 12-14 n/a
12.05 Practical Considerations 12-14 n/a
12.05.01 The “Good Enough” Principle 12-14 n/a
12.05.02 Friction-Free Economy 12-15 n/a
12.05.03 Ecosystems 12-15 n/a
12.05.04 Offshoring and Outsourcing 12-15 n/a
12.06 Matrix of Topics vs. Reference Material 12-16 n/a
13 Computing Foundations 13-1 n/a
13.01 Problem Solving Techniques 13-3 n/a
13.01.01 Definition of Problem Solving 13-3 n/a
13.01.02 Formulating the Real Problem 13-3 n/a
13.01.03 Analyze the Problem 13-3 n/a
13.01.04 Design a Solution Search Strategy 13-3 n/a
13.01.05 Problem Solving Using Programs 13-3 n/a
13.02 Abstraction 13-4 n/a
13.02.01 Levels of Abstraction 13-4 n/a
13.02.02 Encapsulation 13-4 n/a
13.02.03 Hierarchy 13-4 n/a
13.02.04 Alternate Abstractions 13-5 n/a
13.03 Programming Fundamentals 13-5 n/a
13.03.01 The Programming Process 13-5 n/a
13.03.02 Programming Paradigms 13-5 n/a
13.04 Programming Language Basics 13-6 n/a
13.04.01 Programming Language Overview 13-6 n/a
13.04.02 Syntax and Semantics of Programming Languages 13-6 n/a
13.04.03 Low-Level Programming Languages 13-7 n/a
13.04.04 High-Level Programming Languages 13-7 n/a
13.04.05 Declarative vs. Imperative Programming Languages 13-7 n/a
13.05 Debugging Tools and Techniques 13-8 n/a
13.05.01 Types of Errors 13-8 n/a
13.05.02 Debugging Techniques 13-8 n/a
13.05.03 Debugging Tools 13-8 n/a
13.06 Data Structure and Representation 13-9 n/a
13.06.01 Data Structure Overview 13-9 n/a
13.06.02 Types of Data Structure 13-9 n/a
13.06.03 Operations on Data Structures 13-9 n/a
13.07 Algorithms and Complexity 13-10 n/a
13.07.01 Overview of Algorithms 13-10 n/a
13.07.02 Attributes of Algorithms 13-10 n/a
13.07.03 Algorithmic Analysis 13-10 n/a
13.07.04 Algorithmic Design Strategies 13-11 n/a
13.07.05 Algorithmic Analysis Strategies 13-11 n/a
13.08 Basic Concept of a System 13-11 n/a
13.08.01 Emergent System Properties 13-11 n/a
13.08.02 Systems Engineering 13-12 n/a
13.08.03 Overview of a Computer System 13-12 n/a
13.09 Computer Organization 13-13 n/a
13.09.01 Computer Organization Overview 13-13 n/a
13.09.02 Digital Systems 13-13 n/a
13.09.03 Digital Logic 13-13 n/a
13.09.04 Computer Expression of Data 13-13 n/a
13.09.05 The Central Processing Unit (CPU) 13-14 n/a
13.09.06 Memory System Organization 13-14 n/a
13.09.07 Input and Output (I/O) 13-14 n/a
13.10 Compiler Basics 13-15 n/a
13.10.01 Compiler/Interpreter Overview 13-15 n/a
13.10.02 Interpretation and Compilation 13-15 n/a
13.10.03 The Compilation Process 13-15 n/a
13.11 Operating Systems Basics 13-16 n/a
13.11.01 Operating Systems Overview 13-16 n/a
13.11.02 Tasks of an Operating System 13-16 n/a
13.11.03 Operating System Abstractions 13-17 n/a
13.11.04 Operating Systems Classification 13-17 n/a
13.12 Database Basics and Data Management 13-17 n/a
13.12.01 Entity and Schema 13-18 n/a
13.12.02 Database Management Systems (DBMS) 13-18 n/a
13.12.03 Database Query Language 13-18 n/a
13.12.04 Tasks of DBMS Packages 13-18 n/a
13.12.05 Data Management 13-19 n/a
13.12.06 Data Mining 13-19 n/a
13.13 Network Communication Basics 13-19 n/a
13.13.01 Types of Network 13-19 n/a
13.13.02 Basic Network Components 13-19 n/a
13.13.03 Networking Protocols and Standards 13-20 n/a
13.13.04 The Internet 13-20 n/a
13.13.05 Internet of Things 13-20 n/a
13.13.06 Virtual Private Network (VPN) 13-21 n/a
13.14 Parallel and Distributed Computing 13-21 n/a
13.14.01 Parallel and Distributed Computing Overview 13-21 n/a
13.14.02 Difference between Parallel and Distributed Computing 13-21 n/a
13.14.03 Parallel and Distributed Computing Models 13-21 n/a
13.14.04 Main Issues in Distributed Computing 13-22 n/a
13.15 Basic User Human Factors 13-22 n/a
13.15.01 Input and Output 13-22 n/a
13.15.02 Error Messages 13-23 n/a
13.15.03 Software Robustness 13-23 n/a
13.16 Basic Developer Human Factors 13-23 n/a
13.16.01 Structure 13-24 n/a
13.16.02 Comments 13-24 n/a
13.17 Secure Software Development and Maintenance 13-24 n/a
13.17.01 Software Requirements Security 13-24 n/a
13.17.02 Software Design Security 13-25 n/a
13.17.03 Software Construction Security 13-25 n/a
13.17.04 Software Testing Security 13-25 n/a
13.17.05 Build Security into Software Engineering Process 13-25 n/a
13.17.06 Software Security Guidelines 13-25 n/a
13.18 Matrix of Topics vs. Reference Material 13-27 n/a
14 Mathematical Foundations 14-1 n/a
14.01 Set, Relations, Functions 14-1 n/a
14.01.01 Set Operations 14-2 n/a
14.01.02 Properties of Set 14-3 n/a
14.01.03 Relation and Function 14-4 n/a
14.02 Basic Logic 14-5 n/a
14.02.01 Propositional Logic 14-5 n/a
14.02.02 Predicate Logic 14-5 n/a
14.03 Proof Techniques 14-6 n/a
14.03.01 Methods of Proving Theorems 14-6 n/a
14.04 Basics of Counting 14-7 n/a
14.05 Graphs and Trees 14-8 n/a
14.05.01 Graphs 14-8 n/a
14.05.02 Trees 14-10 n/a
14.06 Discrete Probability 14-13 n/a
14.07 Finite State Machines 14-14 n/a
14.08 Grammars 14-15 n/a
14.08.01 Language Recognition 14-16 n/a
14.09 Numerical Precision, Accuracy, and Errors 14-17 n/a
14.10 Number Theory 14-18 n/a
14.10.01 Divisibility 14-18 n/a
14.10.02 Prime Number, GCD 14-19 n/a
14.11 Algebraic Structures 14-19 n/a
14.11.01 Group 14-19 n/a
14.11.02 Rings 14-20 n/a
14.12 Matrix of Topics vs. Reference Material 14-21 n/a
15 Engineering Foundations 15-1 n/a
15.01 Empirical Methods and Experimental Techniques 15-1 n/a
15.01.01 Designed Experiment 15-1 n/a
15.01.02 Observational Study 15-2 n/a
15.01.03 Retrospective Study 15-2 n/a
15.02 Statistical Analysis 15-2 n/a
15.02.01 Unit of Analysis (Sampling Units), Population, and Sample 15-2 n/a
15.02.02 Concepts of Correlation and Regression 15-5 n/a
15.03 Measurement 15-5 n/a
15.03.01 Levels (Scales) of Measurement 15-6 n/a
15.03.02 Direct and Derived Measures 15-7 n/a
15.03.03 Reliability and Validity 15-8 n/a
15.03.04 Assessing Reliability 15-8 n/a
15.04 Engineering Design 15-8 n/a
15.04.01 Engineering Design in Engineering Education 15-8 n/a
15.04.02 Design as a Problem Solving Activity 15-9 n/a
15.04.03 Steps Involved in Engineering Design 15-9 n/a
15.05 Modeling, Simulation, and Prototyping 15-10 n/a
15.05.01 Modeling 15-10 n/a
15.05.02 Simulation 15-11 n/a
15.05.03 Prototyping 15-11 n/a
15.06 Standards 15-12 n/a
15.07 Root Cause Analysis 15-12 n/a
15.07.01 Techniques for Conducting Root Cause Analysis 15-13 n/a
15.08 Matrix of Topics vs. Reference Material 15-14 n/a
A Knowledge Area Description Specifications A-1 n/a
B IEEE and ISO/IEC Standards Supporting the Software Engineering Body of Knowledge (SWEBOK) B-1 n/a
C Consolidated Reference List C-1 n/a

Comments