FOREWORD TO THE 2004 EDITION In this Guide,the IEEE Computer Society estab- standards.These workshops involved practitio- lishes for the first time a baseline for the body ners sharing their experiences with existing stan- of knowledge for the field of software engineer- dards.The workshops also held sessions on plan- ing,and the work partially fulfills the Society's ning for future standards,including one involving responsibility to promote the advancement of measures and metrics for software engineer- both theory and practice in this field.In so doing, ing products and processes.The planning also the Society has been guided by the experience resulted in IEEE Std.1002,Taxonomy ofSoftware of disciplines with longer histories but was not Engineering Standards(1986),which provided a bound either by their problems or their solutions.new,holistic view of software engineering.The It should be noted that the Guide does not pur-standard describes the form and content of a soft- port to define the body of knowledge but rather to ware engineering standards taxonomy.It explains serve as a compendium and guide to the body of the various types of software engineering stan- knowledge that has been developing and evolv- dards,their functional and external relationships, ing over the past four decades.Furthermore,and the role of various functions participating in this body of knowledge is not static.The Guide the software life cycle. must,necessarily,develop and evolve as software In 1990,planning for an international stan- engineering matures.It nevertheless constitutes dard with an overall view was begun.The plan- a valuable element of the software engineering ning focused on reconciling the software process infrastructure. views from IEEE Std.1074 and the revised US In 1958,John Tukey,the world-renowned stat-DoD standard 2167A.The revision was eventu- istician,coined the term sofhare.The term sofi-ally published as DoD Std.498.The international ware engineering was used in the title of a NATO standard was completed in 1995 with designa- conference held in Germany in 1968.The IEEE tion,ISO/IEC 12207,and given the title of Stan- Computer Society first published its Transactions dard for Software Life Cycle Processes.Std.ISO/ on Software Engineering in 1972.The committee IEC 12207 provided a major point of departure established within the IEEE Computer Society for the body of knowledge captured in this book. for developing software engineering standards It was the IEEE Computer Society Board of was founded in 1976. Governors'approval of the motion put forward The first holistic view of software engineer-in May 1993 by Fletcher Buckley which resulted ing to emerge from the IEEE Computer Society in the writing of this book.The Association for resulted from an effort led by Fletcher Buckley Computing Machinery (ACM)Council approved to develop IEEE standard 730 for software qual- a related motion in August 1993.The two motions ity assurance,which was completed in 1979. led to a joint committee under the leadership of The purpose of IEEE Std.730 was to provide Mario Barbacci and Stuart Zweben who served as uniform,minimum acceptable requirements for cochairs.The mission statement of the joint com- preparation and content of software quality assur- mittee was "To establish the appropriate sets(s) ance plans.This standard was influential in com- of criteria and norms for professional practice of pleting the developing standards in the following software engineering upon which industrial deci- topics:configuration management,software test- sions,professional certification,and educational ing,software requirements,software design,and curricula can be based."The steering committee software verification and validation. organized task forces in the following areas: During the period 1981-1985,the IEEE Com- puter Society held a series of workshops con- 1.Define Required Body of Knowledge and cerning the application of software engineering Recommended Practices. xix
xix FOREWORD TO THE 2004 EDITION In this Guide, the IEEE Computer Society establishes for the first time a baseline for the body of knowledge for the field of software engineering, and the work partially fulfills the Society’s responsibility to promote the advancement of both theory and practice in this field. In so doing, the Society has been guided by the experience of disciplines with longer histories but was not bound either by their problems or their solutions. It should be noted that the Guide does not purport to define the body of knowledge but rather to serve as a compendium and guide to the body of knowledge that has been developing and evolving over the past four decades. Furthermore, this body of knowledge is not static. The Guide must, necessarily, develop and evolve as software engineering matures. It nevertheless constitutes a valuable element of the software engineering infrastructure. In 1958, John Tukey, the world-renowned statistician, coined the term software. The term software engineering was used in the title of a NATO conference held in Germany in 1968. The IEEE Computer Society first published its Transactions on Software Engineering in 1972. The committee established within the IEEE Computer Society for developing software engineering standards was founded in 1976. The first holistic view of software engineering to emerge from the IEEE Computer Society resulted from an effort led by Fletcher Buckley to develop IEEE standard 730 for software quality assurance, which was completed in 1979. The purpose of IEEE Std. 730 was to provide uniform, minimum acceptable requirements for preparation and content of software quality assurance plans. This standard was influential in completing the developing standards in the following topics: configuration management, software testing, software requirements, software design, and software verification and validation. During the period 1981–1985, the IEEE Computer Society held a series of workshops concerning the application of software engineering standards. These workshops involved practitioners sharing their experiences with existing standards. The workshops also held sessions on planning for future standards, including one involving measures and metrics for software engineering products and processes. The planning also resulted in IEEE Std. 1002, Taxonomy of Software Engineering Standards (1986), which provided a new, holistic view of software engineering. The standard describes the form and content of a software engineering standards taxonomy. It explains the various types of software engineering standards, their functional and external relationships, and the role of various functions participating in the software life cycle. In 1990, planning for an international standard with an overall view was begun. The planning focused on reconciling the software process views from IEEE Std. 1074 and the revised US DoD standard 2167A. The revision was eventually published as DoD Std. 498. The international standard was completed in 1995 with designation, ISO/IEC 12207, and given the title of Standard for Software Life Cycle Processes. Std. ISO/ IEC 12207 provided a major point of departure for the body of knowledge captured in this book. It was the IEEE Computer Society Board of Governors’ approval of the motion put forward in May 1993 by Fletcher Buckley which resulted in the writing of this book. The Association for Computing Machinery (ACM) Council approved a related motion in August 1993. The two motions led to a joint committee under the leadership of Mario Barbacci and Stuart Zweben who served as cochairs. The mission statement of the joint committee was “To establish the appropriate sets(s) of criteria and norms for professional practice of software engineering upon which industrial decisions, professional certification, and educational curricula can be based.” The steering committee organized task forces in the following areas: 1. Define Required Body of Knowledge and Recommended Practices
xx SWEBOK Guide V3.0 2.Define Ethics and Professional Standards. It is hoped that readers will find this book use- 3.Define Educational Curricula for undergradu-ful in guiding them toward the knowledge and ate,graduate,and continuing education. resources they need in their lifelong career devel- opment as software engineering professionals. This book supplies the first component:required The book is dedicated to Fletcher Buckley in body of knowledge and recommend practices. recognition of his commitment to promoting soft- The code of ethics and professional practice ware engineering as a professional discipline and for software engineering was completed in 1998 his excellence as a software engineering practi- and approved by both the ACM Council and the tioner in radar applications. IEEE Computer Society Board of Governors.It has been adopted by numerous corporations and other organizations and is included in several Leonard L.Tripp,IEEE Fellow 2003 recent textbooks. Chair;Professional Practices Committee,IEEE The educational curriculum for undergraduates Computer Society (2001-2003) is being completed by a joint effort of the IEEE Computer Society and the ACM and is expected Chair;Joint IEEE Computer Society and ACM to be completed in 2004. Steering Committee for the Establishment of Every profession is based on a body of knowl- Software Engineering as a Profession (1998-1999) edge and recommended practices,although they are not always defined in a precise manner.In Chair.Software Engineering Standards Committee, many cases,these are formally documented,usu- IEEE Computer Society (1992-1998) ally in a form that permits them to be used for such purposes as accreditation of academic pro- grams,development of education and training programs,certification of specialists,or profes- sional licensing.Generally,a professional society or related body maintains custody of such a for- mal definition.In cases where no such formality exists,the body of knowledge and recommended practices are "generally recognized"by practitio- ners and may be codified in a variety of ways for different uses
xx SWEBOK® Guide V3.0 2. Define Ethics and Professional Standards. 3. Define Educational Curricula for undergraduate, graduate, and continuing education. This book supplies the first component: required body of knowledge and recommend practices. The code of ethics and professional practice for software engineering was completed in 1998 and approved by both the ACM Council and the IEEE Computer Society Board of Governors. It has been adopted by numerous corporations and other organizations and is included in several recent textbooks. The educational curriculum for undergraduates is being completed by a joint effort of the IEEE Computer Society and the ACM and is expected to be completed in 2004. Every profession is based on a body of knowledge and recommended practices, although they are not always defined in a precise manner. In many cases, these are formally documented, usually in a form that permits them to be used for such purposes as accreditation of academic programs, development of education and training programs, certification of specialists, or professional licensing. Generally, a professional society or related body maintains custody of such a formal definition. In cases where no such formality exists, the body of knowledge and recommended practices are “generally recognized” by practitioners and may be codified in a variety of ways for different uses. It is hoped that readers will find this book useful in guiding them toward the knowledge and resources they need in their lifelong career development as software engineering professionals. The book is dedicated to Fletcher Buckley in recognition of his commitment to promoting software engineering as a professional discipline and his excellence as a software engineering practitioner in radar applications. Leonard L. Tripp, IEEE Fellow 2003 Chair, Professional Practices Committee, IEEE Computer Society (2001–2003) Chair, Joint IEEE Computer Society and ACM Steering Committee forthe Establishment of Software Engineering as a Profession (1998–1999) Chair, Software Engineering Standards Committee, IEEE Computer Society (1992–1998)
EDITORS Pierre Bourque,Department of Software and IT Engineering,Ecole de technologie superieure(ETS), Canada,pierre.bourque @etsmtl.ca Richard E.(Dick)Fairley,Software and Systems Engineering Associates(S2EA),USA, dickfairley@gmail.com COEDITORS Alain Abran,Department of Software and IT Engineering,Ecole de technologie superieure(ETS), Canada,alain.abran@etsmtl.ca Juan Garbajosa,Universidad Politecnica de Madrid(Technical University of Madrid,UPM),Spain, juan.garbajosa@upm.es Gargi Keeni,Tata Consultancy Services,India,gargi@ieee.org Beijun Shen,School of Software,Shanghai Jiao Tong University,China,bishen@situ.edu.cn CONTRIBUTING EDITORS The following persons contributed to editing the SWEBOK Guide V3: Don Shafer Linda Shafer Mary Jane Willshire Kate Guillemette CHANGE CONTROL BOARD The following persons served on the SWEBOK Guide V3 Change Control Board: Pierre Bourque Richard E.(Dick)Fairley,Chair Dennis Frailey Michael Gayle Thomas Hilburn Paul Joannou James W.Moore Don Shafer Steve Tockey xxi
xxi EDITORS Pierre Bourque, Department of Software and IT Engineering, École de technologie supérieure (ÉTS), Canada, pierre.bourque@etsmtl.ca Richard E. (Dick) Fairley, Software and Systems Engineering Associates (S2EA), USA, dickfairley@gmail.com COEDITORS Alain Abran, Department of Software and IT Engineering, École de technologie supérieure (ÉTS), Canada, alain.abran@etsmtl.ca Juan Garbajosa, Universidad Politecnica de Madrid (Technical University of Madrid, UPM), Spain, juan.garbajosa@upm.es Gargi Keeni, Tata Consultancy Services, India, gargi@ieee.org Beijun Shen, School of Software, Shanghai Jiao Tong University, China, bjshen@sjtu.edu.cn CONTRIBUTING EDITORS The following persons contributed to editing the SWEBOK Guide V3: Don Shafer Linda Shafer Mary Jane Willshire Kate Guillemette CHANGE CONTROL BOARD The following persons served on the SWEBOK Guide V3 Change Control Board: Pierre Bourque Richard E. (Dick) Fairley, Chair Dennis Frailey Michael Gayle Thomas Hilburn Paul Joannou James W. Moore Don Shafer Steve Tockey
KNOWLEDGE AREA EDITORS Software Requirements Gerald Kotonya,School of Computing and Communications,Lancaster University,UK, gerald@comp.lancs.ac uk Peter Sawyer,School of Computing and Communications,Lancaster University,UK, sawyer@comp.lancs.ac.uk Software Design Yanchun Sun,School of Electronics Engineering and Computer Science,Peking University,China, sunyc@pku.edu.cn Software Construction Xin Peng,Software School,Fudan University,China,pengxin @fudan.edu.cn Software Testing Antonia Bertolino,ISTI-CNR,Italy,antonia bertolino@isti.cnr.it Eda Marchetti,ISTI-CNR,Italy,eda.marchetti@isti.cnr.it Software Maintenance Alain April,Ecole de technologie superieure (ETS),Canada,alain april@etsmtl.ca Mira Kajko-Mattsson,School of Information and Communication Technology, KTH Royal Institute of Technology,mekm2@kth.se Software Configuration Management Roger Champagne,Ecole de technologie superieure(ETS),Canada,roger.champagne@etsmtl.ca Alain April,Ecole de technologie superieure(ETS),Canada,alain april@etsmtl.ca Software Engineering Management James McDonald,Department of Computer Science and Software Engineering, Monmouth University,USA,jamesmc@monmouth.edu Software Engineering Process Annette Reilly,Lockheed Martin Information Systems Global Solutions,USA, annette.reilly @computer.org Richard E.Fairley,Software and Systems Engineering Associates(S2EA),USA, dickfairley @gmail.com Software Engineering Models and Methods Michael F.Siok,Lockheed Martin Aeronautics Company,USA,mike.fsiok@lmco.com Software Quality J.David Blaine,USA,jdavidblaine@gmail.com Durba Biswas,Tata Consultancy Services,India,durba biswas@tcs.com xxiii
xxiii KNOWLEDGE AREA EDITORS Software Requirements Gerald Kotonya, School of Computing and Communications, Lancaster University, UK, gerald@comp.lancs.ac.uk Peter Sawyer, School of Computing and Communications, Lancaster University, UK, sawyer@comp.lancs.ac.uk Software Design Yanchun Sun, School of Electronics Engineering and Computer Science, Peking University, China, sunyc@pku.edu.cn Software Construction Xin Peng, Software School, Fudan University, China, pengxin@fudan.edu.cn Software Testing Antonia Bertolino, ISTI-CNR, Italy, antonia.bertolino@isti.cnr.it Eda Marchetti, ISTI-CNR, Italy, eda.marchetti@isti.cnr.it Software Maintenance Alain April, École de technologie supérieure (ÉTS), Canada, alain.april@etsmtl.ca Mira Kajko-Mattsson, School of Information and Communication Technology, KTH Royal Institute of Technology, mekm2@kth.se Software Configuration Management Roger Champagne, École de technologie supérieure (ÉTS), Canada, roger.champagne@etsmtl.ca Alain April, École de technologie supérieure (ÉTS), Canada, alain.april@etsmtl.ca Software Engineering Management James McDonald, Department of Computer Science and Software Engineering, Monmouth University, USA, jamesmc@monmouth.edu Software Engineering Process Annette Reilly, Lockheed Martin Information Systems & Global Solutions, USA, annette.reilly@computer.org Richard E. Fairley, Software and Systems Engineering Associates (S2EA), USA, dickfairley@gmail.com Software Engineering Models and Methods Michael F. Siok, Lockheed Martin Aeronautics Company, USA, mike.f.siok@lmco.com Software Quality J. David Blaine, USA, jdavidblaine@gmail.com Durba Biswas, Tata Consultancy Services, India, durba.biswas@tcs.com
xxiv SWEBOK®Guide V3.0 Software Engineering Professional Practice Aura Sheffield,USA,arsheff@acm.org Hengming Zou,Shanghai Jiao Tong University,China,zou@situ.edu.cn Software Engineering Economics Christof Ebert,Vector Consulting Services,Germany,christof.ebert@vector.com Computing Foundations Hengming Zou,Shanghai Jiao Tong University,China,zou@situ.edu.cn Mathematical Foundations Nabendu Chaki,University of Calcutta,India,nabendu@ieee.org Engineering Foundations Amitava Bandyopadhayay,Indian Statistical Institute,India,bamitava@isical.ac.in Mary Jane Willshire,Software and Systems Engineering Associates(S2EA),USA, mi.fairley@gmail.com Appendix B:IEEE and ISO/IEC Standards Supporting SWEBOK James W.Moore,USA,James W.Moore@ieee.org
xxiv SWEBOK® Guide V3.0 Software Engineering Professional Practice Aura Sheffield, USA, arsheff@acm.org Hengming Zou, Shanghai Jiao Tong University, China, zou@sjtu.edu.cn Software Engineering Economics Christof Ebert, Vector Consulting Services, Germany, christof.ebert@vector.com Computing Foundations Hengming Zou, Shanghai Jiao Tong University, China, zou@sjtu.edu.cn Mathematical Foundations Nabendu Chaki, University of Calcutta, India, nabendu@ieee.org Engineering Foundations Amitava Bandyopadhayay, Indian Statistical Institute, India, bamitava@isical.ac.in Mary Jane Willshire, Software and Systems Engineering Associates (S2EA), USA, mj.fairley@gmail.com Appendix B: IEEE and ISO/IEC Standards Supporting SWEBOK James W. Moore, USA, James.W.Moore@ieee.org