TECHNICAL REPORT
CMU/SEI-99-TR-004
ESC-TR-99-004
A Software Engineering
Body of Knowledge
Version 1.0
Thomas B. Hilburn
Iraj Hirmanpour
Soheil Khajenoori
Richard Turner
Abir Qasem
April 1999
Pittsburgh, PA 15213-3890
A Software Engineering
Body of Knowledge
Version 1.0
CMU/SEI-99-TR-004
ESC-TR-99-004
Thomas B. Hilburn
Embry-Riddle Aeronautical University
Iraj Hirmanpour
Embry-Riddle Aeronautical University
Soheil Khajenoori
Embry-Riddle Aeronautical University
Richard Turner
Federal Aviation Administration
Abir Qasem
Embry-Riddle Aeronautical University
April 1999
Software Engineering Process Management
Unlimited distribution subject to the copyright.
This work is sponsored by the Federal Aviation Administration. The Software Engineering Institute is a
federally funded research and development center sponsored by the U.S. Department of Defense.
Copyright 1999 by Carnegie Mellon University.
NO WARRANTY
THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE ENGINEERING INSTITUTE MATERIAL IS
FURNISHED ON AN “AS-IS” BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO,
WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED
FROM USE OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF
ANY KIND WITH RESPECT TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT.
Use of any trademarks in this report is not intended in any way to infringe on the rights of the trademark holder.
Internal use. Permission to reproduce this document and to prepare derivative works from this document for internal use is
granted, provided the copyright and “No Warranty” statements are included with all reproductions and derivative works.
External use. Requests for permission to reproduce this document or prepare derivative works of this document for external
and commercial use should be addressed to the SEI Licensing Agent.
This work was created in the performance of Federal Government Contract Number F19628-95-C-0003 with Carnegie
Mellon University for the operation of the Software Engineering Institute, a federally funded research and development
center. The Government of the United States has a royalty-free government-purpose license to use, duplicate, or disclose the
work, in whole or in part and in any manner, and to have or permit others to do so, for government purposes pursuant to the
copyright license under the clause at 52.227-7013.
This document is available through Asset Source for Software Engineering Technology (ASSET): 1350 Earl L. Core Road;
PO Box 3305; Morgantown, West Virginia 26505 / Phone: (304) 284-9000 or toll-free in the U.S. 1-800-547-8306 / FAX:
(304) 284-9001 World Wide Web:
http://www.asset.com / e-mail: sei@asset.com
Copies of this document are available through the National Technical Information Service (NTIS). For
information on ordering, please contact NTIS directly: National Technical Information Service, U.S.
Department of Commerce, Springfield, VA 22161. Phone: (703) 487-4600.
This document is also available through the Defense Technical Information Center (DTIC). DTIC provides
access to and transfer of scientific and technical information for DoD personnel, DoD contractors and potential
contractors, and other U.S. Government agency personnel and their contractors. To obtain a copy, please contact
DTIC directly: Defense Technical Information Center / Attn: BRR / 8725 John J. Kingman Road / Suite 0944 /
Ft. Belvoir, VA 22060-6218 / Phone: (703) 767-8274 or toll-free in the U.S.: 1-800-225-3842.
CMU/SEI-99-TR-004 i
Table of Contents
Acknowledgments v
Foreword vii
Abstract ix
1 Introduction 1
1.1 Sources and Influences 2
1.2 Overview 2
1.3 Organization of This Report 2
2 Developing a Body of Knowledge 5
2.1 Background 5
2.2 Knowledge Architecture 5
2.3 Operational Definitions 6
3 Using This Body of Knowledge 7
3.1 Industrial Use 7
3.2 Academic Use 7
3.3 Professional Use 8
4 A Software Engineering Body of
Knowledge 9
Computing Fundamentals 11
The Algorithms and Data Structures Knowledge
Area 12
The Computer Architecture Knowledge Area 13
The Mathematical Foundations Knowledge Area 14
The Operating Systems Knowledge Area 15
The Programming Languages Knowledge Area 16
Software Product Engineeering 17
The Software Requirements Engineering
Knowledge Area 19
The Software Design Knowledge Area 20
The Software Coding Knowledge Area 22