The global skills and competency framework for the digital world

SFIA v9 AND SWEBOK v4 - The guide to the software engineering body of knowledge

This Software Engineering competency model is based on the SWEBOK v4 and SFIA v9 (published October 2024). Presented here is a route map into software engineering competencies via the Knowledge Areas of the SWEBOK.

Contributors: Volunteers from the IEEE-CS Professional & Educational Activities Board (PEAB) Engineering Disciplines Committee., SFIA 7 Software Engineering Working Group.


Rights: Selected extracts from Guide to the Software Engineering Body of Knowledge, Version 4.0, IEEE Computer Society, 2024; 

 
The Guide to the Software Engineering Body of Knowledge (SWEBOK) from the IEEE-CS is the industry standard source for the knowledge needed by software engineering professionals. The IEEE-CS Professional & Educational Activities Board sponsored a collaborative project to develop a competency model for Software Engineers based on SFIA.


  1. Software Requirements Knowledge Area
  2. Software Architecture Knowledge Area
  3. Software Design Knowledge Area
  4. Software Construction Knowledge Area
  5. Software Testing Knowledge Area
  6. Software Engineering Operations Knowledge Area
  7. Software Maintenance Knowledge Area
  8. Software Configuration Management Knowledge Area
  9. Software Engineering Management Knowledge Area
  10. Software Engineering Process Knowledge Area
  11. Software Engineering Models Knowledge Area
  12. Software Quality Knowledge Area
  13. Software Security Knowledge Area
  14. Software Engineering Professional Practice Knowledge Area
  15. Software Engineering Economics Knowledge Area
  16. Computing Foundations Knowledge Area
  17. Mathematical Foundations Knowledge Area
  18. Engineering Foundations Knowledge Area
1.Overview of the SWEBOK KAS
Click on image to see full size.

Each of the knowledge areas in the SWEBOK were analysed to determine the related Software Engineering (SWE) competencies. These competencies are grouped into 

  • Core software engineering competencies
  • Competencies in related disciplines

Core software engineering (SWE) competencies

These are the competencies typically needed by software engineering practitioners.

Note that not all of the competencies listed are required by all software engineers

  • The set of competencies required depends on the nature of the employing organisation, team structures, and the specific roles and responsibilities of the software engineers they employ.
Competencies in related disciplines

These are the competencies which are related to other functions and roles which typically support or interact with software engineering functions and team.

  • Some software engineering functions will find it helpful to refer to and/or use some of these competencies.
  • This is particularly relevant in enterprise IT organisations which employ software engineers

Software Requirements Knowledge Area

Scope:

The Software Requirements Knowledge Area focuses on the dual perspectives of requirements: as expressions of needs and constraints that contribute to solving real-world problems through software, and as the activities necessary to develop and maintain these requirements throughout a software product's service life. 

[Summarised from the introduction to this knowledge area in SWEBOK v4 ].

Core software engineering competencies

Competencies in related disciplines

Software Architecture Knowledge Area

Scope:

The Software Architecture Knowledge Area examines the discipline of software architecture from multiple perspectives, focusing on the fundamental concepts, representation methods, processes, and evaluation techniques that guide the structural organization of software systems to address stakeholder concerns and facilitate system understanding, construction, and evolution. 

[Summarised from the introduction to this knowledge area in SWEBOK v4 ].

Core software engineering competencies

Competencies in related disciplines

Software Design Knowledge Area

Scope:

The Software Design Knowledge Area focuses on the process of transforming software requirements into a blueprint for construction, encompassing fundamental design concepts, processes, quality attributes, and representation methods that guide the refinement of software from high-level architectural components down to detailed internal structures. [Summarised from the introduction to this Knowledge Area in SWEBOK v4 ].

Core software engineering competencies

Competencies in related disciplines

Software Construction Knowledge Area

Scope:

The Software Construction Knowledge Area encompasses the detailed creation and maintenance of working software through coding, verification, unit testing, integration testing, and debugging. It focuses on the fundamental principles and practices involved in transforming design specifications into executable software, while addressing issues of complexity, change management, verification, reuse, and standards compliance. 

[Summarised from the introduction to this Knowledge Area in SWEBOK v4 ].

Core software engineering competencies

Software Testing Knowledge Area

Scope:

The Software Testing Knowledge Area encompasses the dynamic validation of software systems, focusing on verifying that a system under test exhibits expected behaviors when executed with a finite set of carefully selected test cases from the potentially infinite execution domain. It covers test case design, selection criteria, verification techniques, test levels, and the processes required to effectively detect faults while working within practical resource constraints. 

[Summarised from the introduction to this Knowledge Area in SWEBOK v4 ].

Core software engineering competencies

Competencies in related disciplines

Software Engineering Operations Knowledge Area


The Software Engineering Operations Knowledge Area encompasses the activities and processes required to deploy, operate, and support software systems while preserving their integrity and stability. It focuses on the evolving practices of software deployment, configuration, monitoring, and incident management, particularly in the context of modern approaches like DevOps, Infrastructure as Code (IaC), and continuous delivery where traditional boundaries between development and operations have blurred. 

[Summarised from the introduction to this knowledge area in SWEBOK v4 ].

Core software engineering competencies

Competencies in related disciplines

Competencies in related disciplines

    Software Maintenance Knowledge Area

    Scope:

    The Software Maintenance Knowledge Area encompasses the activities required to provide cost-effective support for software throughout its operational life. It focuses on the processes, techniques, and practices involved in modifying existing software while preserving its integrity, addressing both pre-delivery activities like planning for maintainability and post-delivery activities including software modification, enhancement, and adaptation to changing requirements and environments. 

    [Summarised from the introduction to this knowledge area in SWEBOK v4 ].

    Core software engineering competencies

    Software Configuration Management Knowledge Area

    Scope:

    The Software Configuration Management Knowledge Area encompasses the processes and techniques for identifying, controlling, tracking, and auditing changes to software artifacts throughout the development lifecycle. It focuses on maintaining the integrity and traceability of software configuration items, managing version control, facilitating controlled change implementation, and ensuring that software products accurately reflect their intended requirements and specifications. 

    [Summarised from the introduction to this knowledge area in SWEBOK v4 ].

    Core software engineering competencies

    Software Engineering Management Knowledge Area

    Scope:

    The Software Engineering Management Knowledge Area encompasses the planning, coordination, measurement, monitoring, control, and reporting of software engineering projects. It focuses on the application of management activities to ensure software products and services are delivered efficiently and effectively, balancing technical considerations with project constraints while addressing the unique challenges presented by software's intangible and malleable nature. 

    [Summarised from the introduction to this knowledge area in SWEBOK v4 ].

    Software engineering management competencies

    Competencies in related disciplines

    Software Engineering Process Knowledge Area

    Scope:

    The Software Engineering Process Knowledge Area focuses on the definition, implementation, assessment, measurement, and improvement of the processes used to develop and maintain software systems. It examines software life cycle models, process frameworks, and methodologies that guide how software engineering activities are organized, conducted, and managed throughout a software product's evolution from conception through retirement.

    [Summarised from the introduction to this knowledge area in SWEBOK v4 ].

    Core software engineering competencies

    Competencies in related disciplines

    Software Engineering Models Knowledge Area

    Scope:

    The Software Engineering Models and Methods Knowledge Area focuses on techniques that impose structure on software engineering activities to make them systematic and repeatable. It addresses both modeling approaches that provide notations and procedures for representing software systems, and methodological frameworks that define organized processes for developing software across multiple lifecycle phases.

     [Summarised from the introduction to this knowledge area in SWEBOK v4 ].

    Core software engineering competencies

    Competencies in related disciplines

    Software Quality Knowledge Area

    Scope:

    The Software Quality Knowledge Area encompasses the concepts, practices, tools, and techniques for defining, assessing, achieving, and improving the quality of software products. It focuses on both product quality (the degree to which software meets established requirements and satisfies stakeholder needs) and process quality (the effectiveness of the practices used to develop and maintain software), with emphasis on conformance to requirements, fitness for purpose, and the absence of defects. [Summarised from the introduction to this knowledge area in SWEBOK v4 ].

    Core software engineering competencies

    Software Security Knowledge Area

    The Software Security Knowledge Area addresses the practices, approaches, and tools necessary for developing, maintaining, and operating secure software systems. It focuses on integrating security considerations throughout the software development lifecycle, rather than treating security as an afterthought. The knowledge area encompasses security fundamentals, management practices, engineering processes, specific techniques for implementing secure systems, and tools for identifying and mitigating security vulnerabilities. 

    [Summarised from the introduction to this knowledge area in SWEBOK v4 ].

    Core software engineering competencies

    Competencies in related disciplines

    Software Engineering Professional Practice Knowledge Area

    Scope:

    The Software Engineering Professional Practice Knowledge Area encompasses the knowledge, skills, and attitudes that software engineers must possess to practice software engineering in a professional, responsible, and ethical manner. It focuses on professionalism, including codes of ethics, standards, certification, and licensing; group dynamics and psychology necessary for effective teamwork; and communication skills essential for interacting with stakeholders, team members and the broader professional community.

    [Summarised from the introduction to this knowledge area in SWEBOK v4 ].

    Competencies in related disciplines

    Software Engineering Economics Knowledge Area

    Scope:

    The Software Engineering Economics Knowledge Area encompasses the principles of applied microeconomics in software engineering, providing a framework for making value-based decisions. It helps software engineers evaluate technical proposals by balancing economic viability with organizational goals, considering both financial metrics and intangible assets across the entire software product lifecycle. 

    [Summarised from the introduction to this knowledge area in SWEBOK v4 ].

    Core software engineering competencies

    Competencies in related disciplines

    The 3 Foundations Knowledge Areas

    The foundations KAs serve a specific role in the SWEBOK Guide. As stated in the introduction to SWEBOK v4, these areas "distill the relevant theory of computer science and engineering into the three foundation KAs, while the remaining KAs catalog the practice and engineering economics of software engineering."

    The key difference is that while the 15 software engineering KAs describe specific domain practices, the 3 foundation KAs describe the fundamental cognitive tools, reasoning approaches, and conceptual frameworks that underpin those practices.

    How can we relate this to the work-based tasks, activities and responsibilities described in SFIA?

    One way is to compare software engineering practitioners

    With Foundational Knowledge:

    • Holistic understanding of technological principles
    • Robust and flexible problem-solving approach
    • Ability to understand, explain, and modify methods
    • Innovative solution design across domains
    • Strategic thinking and systemic perspective
    • Proactive in identifying and addressing challenges
    • Deeper mentoring and guidance capabilities

    Without Foundational Knowledge:

    • Narrowly focused on specific tasks and practices
    • Limited problem-solving capabilities
    • Dependent on existing patterns and templates
    • Struggles with complex or novel challenges
    • Difficulty explaining underlying rationales
    • Reactive approach to technical challenges
    • Constrained innovation and adaptation

    The foundational Knowledge Areas (Computing, Mathematical, and Engineering Foundations) helps develop a technical practitioner from a task-executor to a comprehensive problem-solver, enabling:

    • Deeper understanding
    • Broader perspective
    • More sophisticated reasoning
    • Innovative thinking
    • Strategic approach to challenges

    This progression enables software engineers to move from simply performing tasks to truly understanding, shaping, and advancing systems/software solutions.

    Computing Foundations Knowledge Area

    The Computing Foundations Knowledge Area provides essential computer science concepts that software engineers must understand to effectively architect, design, construct, deploy, and maintain high-quality software systems. It covers a comprehensive range of topics including computer architecture, data structures, programming fundamentals, operating systems, databases, computer networks, and emerging technologies like artificial intelligence and machine learning. 

    [Summarised from the introduction to this knowledge area in SWEBOK v4 ].

    Generic attributes such as

    Mathematical Foundations Knowledge Area

    The Mathematical Foundations Knowledge Area provides software engineers with essential logical and mathematical reasoning skills, focusing on formal systems that enable precise reasoning, logical proof techniques, and abstract mathematical concepts. It equips software engineers with the ability to understand and translate complex logical reasoning into rigorous software design and implementation.

     [Summarised from the introduction to this knowledge area in SWEBOK v4 ].

    Generic attributes such as

    Engineering Foundations Knowledge Area

    The Engineering Foundations Knowledge Area explores the fundamental principles and methodologies common to engineering disciplines, providing software engineers with a systematic approach to problem-solving, design, abstraction, and empirical analysis. It emphasizes the importance of understanding complex engineering processes, design techniques, and analytical methods that are essential for developing effective software solutions. 

    [Summarised from the introduction to this knowledge area in SWEBOK v4 ].

    Generic attributes such as