Software Engineering Body of Knowledge
# Software Engineering Body of Knowledge

The Software Engineering Body of Knowledge (SWEBOK (/ˈswiːˌbɒk/ SWEE-bok)) is an international standard ISO/IEC TR 19759:2005 specifying a guide to the generally accepted software engineering body of knowledge.

The Guide to the Software Engineering Body of Knowledge (SWEBOK Guide) has been created through cooperation among several professional bodies and members of industry and is published by the IEEE Computer Society (IEEE). The standard can be accessed freely from the IEEE Computer Society. In late 2013, SWEBOK V3 was approved for publication and released. In 2016, the IEEE Computer Society kicked off the SWEBoK Evolution effort to develop future iterations of the body of knowledge.

## SWEBOK Version 3

The published version of SWEBOK V3 has the following 15 knowledge areas (KAs) within the field of software engineering:

* Software requirements
* Software design
* Software construction
* Software testing
* Software maintenance
* Software configuration management
* Software engineering management
* Software engineering process
* Software engineering models and methods
* Software quality
* Software engineering professional practice
* Software engineering economics
* Computing foundations
* Mathematical foundations
* Engineering foundations

It also recognized, but did not define, these related disciplines:

* Computer engineering
* Systems engineering
* Project management
* Quality management
* General management
* Computer science
* Mathematics

## 2004 edition of the SWEBOK

The 2004 edition of the SWEBOK guide defined ten knowledge areas (KAs) within the field of software engineering:

* Software requirements
* Software design
* Software construction
* Software testing
* Software maintenance
* Software configuration management
* Software engineering management (engineering management)
* Software engineering process
* Software engineering tools and methods
* Software quality

The SWEBOK also defines disciplines related to software engineering:

* Computer engineering
* Computer science
* Management
* Mathematics
* Project management
* Quality management
* Software ergonomics (cognitive ergonomics)
* Systems engineering

## Similar efforts

A similar effort to define a body of knowledge for software engineering is the "Computing Curriculum Software Engineering (CCSE)," officially named Software Engineering 2004 (SE2004). The curriculum largely overlaps with the 2004 SWEBOK V2 because the SWEBOK has been used as one of its sources; however, it is more directed towards academia. Whereas the SWEBOK Guide defines the software engineering knowledge that practitioners should have after four years of practice, SE2004 defines the knowledge that an undergraduate software engineering student should possess upon graduation (including knowledge of mathematics, general engineering principles, and other related areas). SWEBOK V3 aims to address these intersections.

