Mapping of Terms Between Software Engineering Research (SER) and Research Software Engineering (RSE)
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.
Section | Heading | Page | Mapping |
---|---|---|---|
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