Software Engineering Institute Carnegie Mellon

Software Engineering Body of Knowledge Version 1.0, A

4 A Software Engineering Body of Knowledge

The following sections provide descriptions of each of the knowledge categories, and the corresponding knowledge areas and knowledge units of which they are composed. This body of knowledge has varying levels of decomposition and exposition, depending upon the current state of knowledge in a particular component.

There are several decisions about the organization and content of this SWE-BOK that require comment:

  • The knowledge areas in the Software Domains category are not partitioned into knowledge units. We felt that this level of detail was sufficient for the purpose of this project, since much of the knowledge for each Software Domain area is already included in the Software Product Engineering category.
  • There were a number of software engineering subjects that were considered for incorporation in this SWE-BOK, but were not included because we felt that they were covered sufficiently in other knowledge areas or knowledge units. For instance, formal methods was not included in this SWE-BOK, but knowledge about it was covered in the Mathematical Foundations area in the Computing Fundamentals category, and the Verification and Validation knowledge unit in the Software Quality Management knowledge area.
  • Initial versions of this document included a great deal of information about specific software engineering techniques and tools. After review and analysis, we concluded that this type of knowledge would be difficult to keep current and complete, and was not needed for the objectives of this project.
  • Although software testing is typically considered to be part of verification and validation, we chose to present the two in separate components (software testing in the Software Product Engineering category and verification and validation in the Software Quality Management knowledge area). This is in deference to the prominent role that software testing currently plays in the product development life cycle.

Each of the following sections, numbered 1 through 4, contains a complete description of the software engineering knowledge categories.

  • The Computing Fundamentals knowledge category is concerned with knowledge, concepts, theory, principles, methods, skills, and applications of computing that form the foundation for the development of software and the discipline of software engineering.
  • The Software Product Engineering knowledge category is concerned with a well-defined and integrated set of activities to produce correct, consistent software products effectively and efficiently. Software product engineering includes the technical activities of producing a software product, such as requirements engineering, design, coding, and test.
  • The Software Management knowledge category deals with the concepts, methods, and techniques for managing software products and projects. Software management includes activities concerned with project management, risk management, software quality, and configuration management.
  • The Software Domains knowledge category concerns knowledge about specific domains that involve computing and software engineering application or utilization. This category includes the following software domains: artificial intelligence, database systems, human-computer interaction, numerical and symbolic computing, computer simulation, and software acquisition.

Each category description is followed by descriptions of the knowledge areas in that category. Area descriptions are followed by descriptions of the knowledge units belonging to each of the knowledge areas.

In the references section of this document, we identify the principal literature sources for our research efforts. Within the various parts of this SWE-BOK, we have cited references that are appropriate for a particular knowledge category, knowledge area, or knowledge unit. However, there are four references that provide comprehensive information about software engineering knowledge [Dorfman 97], [Marciniak 94], [Pressman 97], [Sommerville 95]. These references were used as sources for describing knowledge in all of the knowledge categories and in almost all of the knowledge areas and knowledge units. Consequently, for the sake of brevity, we have not included individual citations for these four references within the body of this SWE-BOK.  

 


[contents] [prev] [next] [references][download the PDF file]