|
Informatics Review > Thoughts > Guide to the Software Engineering Body of Knowledge |
Consensus on a Core Body Knowledge Is Crucial.
In spite of the millions of software professionals worldwide and the ubiquitous presence
of software in our society, software engineering has not reached the status of a legitimate engineering discipline and a recognized profession. Since 1993, the IEEE Computer Society and the ACM have been actively promoting software engineering as a profession, notably through their involvement in the IEEE Computer Society and ACM Software Engineering Coordinating Committee.
In other engineering disciplines, the accreditation of university curricula and the licensing and certification of practicing
professionals are taken very seriously. These activities are seen as critical to the constant upgrading of professionals and, hence, the improvement of the level of professional
practice. Recognizing a core body of knowledge is pivotal to the development and accreditation of university curricula and the licensing and certification of professionals.
Achieving consensus by the profession on a core body of knowledge is a key milestone
in all disciplines and has been identified by the Coordinating Committee as crucial for the evolution of software engineering toward a professional status. The Guide to the
Software Engineering Body of Knowledge project is an initiative completed under the
auspices of this Committee to reach this consensus.
Focus on Generally Accepted Knowledge
The software engineering body of knowledge is an all-inclusive term that describes the
sum of knowledge within the profession of software engineering. Since it is usually not
possible to put the full body of knowledge of even an emerging discipline, such as
software engineering, into a single document, there is a need for a Guide to the Software
Engineering Body of Knowledge. This Guide will seek to identify and describe that
subset of the body of knowledge that is generally accepted, even though software
engineers must be knowledgeable not only in software engineering, but also, of course, in
other related disciplines.
What do we mean by "generally accepted knowledge"?
To better illustrate what "generally accepted knowledge" is relative to other types of knowledge, the figure below proposes a draft three-category schema for classifying knowledge.
The Project Management Institute in its Guide to the Project Management Body of
Knowledge defines "generally accepted" knowledge for project management in the following manner:
"Generally accepted" means that the knowledge and practices described are applicable
to most projects most of the time, and that there is widespread consensus about their
value and usefulness. "Generally accepted" does not mean that the knowledge and
practices described are or should be applied uniformly on all projects; the project management team is always responsible for determining what is appropriate for any
given project. '
The Guide to the Project Management Body of Knowledge is now an IEEE Standard.
The Industrial Advisory Board better defines "generally accepted" as knowledge to be
included in the study material of a software engineering licensing exam that a graduate
would pass after completing four years of work experience. These two definitions should
be seen as complementary.
Knowledge Area Specialists are also expected to be somewhat forward-looking in their
interpretation by taking into consideration not only what is "generally accepted" today,
but what they expect will be "generally accepted" in a 3 to 5 year timeframe.
Software engineering body of knowledge and curriculum are not the same
Software engineers must not only be knowledgeable in what is specific to their discipline, but they also, of course, have to
know a lot more. The goal of this initiative is not, however, to inventory everything that software engineers should know, but to
identify what forms the core of software engineering. It is the responsibility of other
organizations and initiatives involved in the licensing and certification of professionals
and the development of accreditation criteria and curricula to define what a software
engineer must know outside software engineering. We believe that a very clear distinction must be made between the software engineering body of knowledge and the
contents of software engineering curricula.
For more information see:
The Guide to the Software
Engineering Body of Knowledge
P. Bourque, R. Dupuis, A. Abran, J. W. Moore, and L. L. Tripp.
IEEE Software, vol.
16, pp. 35-44, November/December 1999.
|
Informatics Review > Thoughts > Guide to the Software Engineering Body of Knowledge |
© 2001 SWEBOK