A Stone Man Version
Total Page:16
File Type:pdf, Size:1020Kb
Guide to the Software Engineering Body of Knowledge AA SSttoonnee MMaann Veerrssiioonn (Version 0.7) April 2000 A project of the Software Engineering Coordinating Committee (Joint IEEE Computer Society - ACM committee ) Corporate support by: Project managed by: Executive Editors: Alain Abran, Université du Québec à Montréal James W. Moore, The MITRE Corp. Editors: Pierre Bourque, Université du Québec à Montréal Robert Dupuis, Université du Québec à Montréal Chair of the Software Engineering Coordinating Committee Leonard L. Tripp, IEEE Computer Society Copyright © 2000, Institute of Electrical and Electronics Engineers, Inc. All rights reserved. PREFACE TO THE SWEBOK GUIDE 1. Software engineering is an emerging discipline but there are unmistakable trends indicating an 10. Purpose increasing level of maturity: 11. The purpose of this Guide is to provide a 2. w McMaster University (Canada), the consensually-validated characterization of the Rochester Institute of Technology (US), the bounds of the software engineering discipline University of Sheffield (UK), the and to provide a topical access to the Body of University of New South Wales (Australia) Knowledge supporting that discipline. The Body and other universities around the world now of Knowledge is subdivided into ten Knowledge offer undergraduate degrees in software Areas (KA) and the descriptions of the KAs are engineering. designed to discriminate among the various important concepts, permitting readers to find 3. w The Software Capability Maturity Model and ISO 9000 are used to certify their way quickly to subjects of interest. Upon organizational capability for software finding a subject, readers are referred to key engineering. papers or book chapters selected because they succinctly present the knowledge. 4. w In the US, the Computer Science 12. In browsing the Guide, readers will note that the Accreditation Board (CSAB) and the content is markedly different from Computer Accreditation Board for Engineering and Science. Just as electrical engineering is based Technology (ABET) are cooperating upon the science of physics, software closely and CSAB is expected to be lead society for the accreditation of university engineering should be based upon computer software engineering programs. science. In both cases, though, the emphasis is necessarily different. Scientists extend our 5. w The Canadian Information Processing knowledge of the laws of nature while engineers Society has published criteria to accredit apply those laws of nature to build useful software engineering undergraduate artifacts. Therefore, the emphasis of the Guide is university programs. placed upon the construction of useful software 6. w The Texas Board of Professional Engineers artifacts. has begun to license professional software 13. Readers will also notice that many important engineers. aspects of information technology, such as 7. w The Association of Professional Engineers specific programming languages, relational and Geoscientists of British Columbia databases and networks, are also not covered in (APEGBC) has begun registering software the Guide. This is a consequence of an professional engineers and the Professional engineering-based approach. In all fields—not Engineers of Ontario (PEO) has also only computing—the designers of engineering announced requirements for licensing. curricula have realized that specific technologies 8. w The Association for Computing Machinery are replaced much more rapidly than the engineering work force. An engineer must be (ACM) and the Computer Society of the equipped with the essential knowledge that Institute of Electrical and Electronics supports the selection of the appropriate Engineers (IEEE) have jointly developed technology at the appropriate time in the and adopted a Code of Ethics for software appropriate circumstance. For example, software engineering professionals. systems might be built in Fortran using 9. All of these efforts are based upon the functional decomposition or in C++ using object- presumption that there is a Body of Knowledge oriented techniques. The techniques for that should be mastered by practicing software integrating and configuring instances of those engineers. This Body of Knowledge exists in the systems would be quite different. But, the literature that has accumulated over the past principles and objectives of configuration thirty years. This book provides a Guide to that management remain the same. The Guide Body of Knowledge. therefore does not focus on the rapidly changing technologies. © IEEE – Stoneman (Version 0.7) – April 2000 i 14. These exclusions demonstrate that this Guide is SWEBOK, as well as the students learning the necessarily incomplete. Practicing software software engineering profession and educators engineers will need to know many things about and trainers engaged in defining curricula and computer science, project management and course content. systems engineering—to name a few—that fall outside the Body of Knowledge characterized by 18. Evolution of the Guide this Guide. However, stating that this information should be known by software 19. At this time, the SWEBOK project engineers is not the same as stating that this (http://www.swebok.org) is nearing the end of knowledge falls within the bounds of the the second of its three phases—called the software engineering discipline. Instead, it Stoneman. An early prototype, Strawman, should be stated that software engineers need to demonstrated how the project might be know some things taken from other disciplines— organized. Development of the Ironman version and that is the approach adopted by this Guide. will commence after we gain insight through trial So, this Guide characterizes the Body of application of the Stoneman Guide. Knowledge falling within the scope of software 20. Since 1993, the IEEE Computer Society and the engineering and provides references to relevant ACM have cooperated in promoting the information from other disciplines. professionalization of software engineering 15. The emphasis on engineering practice leads the through their joint Software Engineering Guide toward a strong relationship with the Coordinating Committee (SWECC). The Code of normative literature. Most of the computer Ethics mentioned previously was completed science, information technology and software under stewardship of the SWECC primarily engineering literature provides information through volunteer efforts. useful to software engineers, but a relatively 21. The SWEBOK project’s scope, the variety of small portion is normative. A normative communities involved, and the need for broad document prescribes what an engineer should do participation suggested a need for full-time rather in a specified situation rather than providing than volunteer management. For this purpose, the information that might be helpful. The normative SWECC contracted the Software Engineering literature is validated by consensus formed Management Research Laboratory at the among practitioners and is concentrated in Université du Québec à Montréal to manage the standards and related documents. From the effort. It operates under SWECC supervision. beginning, the SWEBOK project was conceived 22. The project team developed two important as having a strong relationship to the normative principles for guiding the project: transparency literature of software engineering. The two major and consensus. By transparency, we mean that standards bodies for software engineering (IEEE the development process is itself documented, Software Engineering Standards Committee and published, and publicized so that important ISO/IEC JTC1/SC7) are represented in the decisions and status are visible to all concerned project. Ultimately, we hope that software parties. By consensus, we mean that the only engineering practice standards will contain practical method for legitimizing a statement of principles traceable to the SWEBOK Guide. this kind is through broad participation and agreement by all significant sectors of the 16. Intended Audience relevant community. By the time the Stoneman 17. The Guide is oriented toward a variety of version of the Guide is completed, literally audiences. It aims to serve public and private hundreds of contributors and reviewers will have organizations in need of a consistent view of touched the product in some manner. By the time software engineering for defining education and the third phase—the Ironman—is completed, the training requirements, classifying jobs, and number of participants will number in the developing performance evaluation policies. It thousands and additional efforts will have been also addresses practicing software engineers and made to reach communities less likely to have the officials responsible for making public policy participated in the current review process. regarding licensing and professional guidelines. 23. Like any software project, the SWEBOK project In addition, professional societies and educators has many stakeholders—some of which are defining the certification rules, accreditation formally represented. An Industrial Advisory policies for university curricula, and guidelines Board, composed of representatives from for professional practice will benefit from industry (Boeing, National Institute of Standards ii © IEEE – Stoneman (Version 0.7) – April 2000 and Technology, National Research Council of available and can be searched on the project’s Canada, Rational Software, Raytheon Systems, Web site. and SAP Labs-Canada) and professional