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;
- Software Requirements Knowledge Area
- Software Architecture Knowledge Area
- Software Design Knowledge Area
- Software Construction Knowledge Area
- Software Testing Knowledge Area
- Software Engineering Operations Knowledge Area
- Software Maintenance Knowledge Area
- Software Configuration Management Knowledge Area
- Software Engineering Management Knowledge Area
- Software Engineering Process Knowledge Area
- Software Engineering Models Knowledge Area
- Software Quality Knowledge Area
- Software Security Knowledge Area
- Software Engineering Professional Practice Knowledge Area
- Software Engineering Economics Knowledge Area
- Computing Foundations Knowledge Area
- Mathematical Foundations Knowledge Area
- Engineering Foundations Knowledge Area
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.
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
- Requirements definition and management REQM
- Real-time/embedded systems development RESD
- Methods and tools METL
- Functional testing TEST
- Non-functional testing NFTS
- Configuration management CFMG
- Safety engineering SFEN
Competencies in related disciplines
- Stakeholder relationship management RLMT
- Business situation analysis BUSA
- Feasibility assessment FEAS
- Product management PROD
- User research URCH
- User experience design HCEV
- Solution architecture ARCH
- User acceptance testing BPTS
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
- Business situation analysis BUSA
- Stakeholder relationship management RLMT
- Systems design DESN
- Solution architecture ARCH
- Knowledge management KNOW
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
- Systems design DESN
- Safety engineering SFEN
- User experience design HCEV
- Solution architecture ARCH
- Hardware design HWDE
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
- Programming/software development PROG
- Real-time/embedded systems development RESD
- Systems integration and build SINT
- Functional testing TEST
- Non-functional testing NFTS
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
- Functional testing TEST
- Non-functional testing NFTS
- Safety assessment SFAS
- Systems integration and build SINT
- Programming/software development PROG
- Real-time/embedded systems development RESD
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
- Change control CHMG
- Release management RELM
- Deployment DEPL
- Configuration management CFMG
- Systems integration and build SINT
- Functional testing TEST
- Non-functional testing NFTS
- Knowledge management KNOW
Competencies in related disciplines
- Incident management USUP
- Problem management PBMG
- Customer service support CSMG
- Supplier management SUPP
- Contract management ITCM
- Budgeting and forecasting BUDF
- Cost management COMG
- Resourcing RESC
- Stakeholder relationship management RLMT
- Service acceptance SEAC
- Infrastructure operations ITOP
- Availability management AVMT
- Capacity management CPMG
- Service level management SLMO
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
- Application support ASUP
- Programming/software development PROG
- Deployment DEPL
- Release management RELM
- Change control CHMG
- System software administration SYSP
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
- Configuration management CFMG
- Systems integration and build SINT
- Deployment DEPL
- Release management RELM
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
- Systems development management DLMG
- Project management PRMG
- Delivery management DEMG
- Technology service management ITMG
- Budgeting and forecasting BUDF
- Cost management COMG
- Stakeholder relationship management RLMT
- Measurement MEAS
- Performance management PEMT
- Resourcing RESC
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
- Systems development management DLMG
- Systems and software life cycle engineering SLEN
- Measurement MEAS
- Methods and tools METL
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
- Requirements definition and management REQM
- Software design SWDN
- Systems design DESN
- Methods and tools METL
Competencies in related disciplines
- User experience design HCEV
- Data modelling and design DTAN
- Business modelling BSMO
- Scientific modelling SCMO
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
- Information security SCTY
- Information assurance INAS
- Non-functional testing NFTS
- Vulnerability assessment VUAS
- Penetration testing PENT
Software Engineering Professional Practice Knowledge Area
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
- Professional development PDSV
- AI and data ethics AIDE
- Generic attributes such as
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
- Systems development management DLMG
- Investment appraisal INVA
- Benefits management BENM
- Financial analysis FIAN
- Budgeting and forecasting BUDF
- Cost management COMG
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 ].