SlideShare a Scribd company logo
1 of 202
Download to read offline
Guide to the Software Engineering
                         Body of Knowledge


                            2004 Version



         SWEBOK                                                     ®



             A project of the IEEE Computer Society
                Professional Practices Committee




© IEEE – 2004 Version               ®SWEBOK is an official service mark of the IEEE
© IEEE – 2004 Version
Guide to the Software Engineering Body of
                           Knowledge

                                      2004 Version



         SWEBOK®

                                        Executive Editors
                           Alain Abran, École de technologie supérieure
                               James W. Moore, The MITRE Corp.

                                             Editors
                          Pierre Bourque, École de technologie supérieure
                          Robert Dupuis, Université du Québec à Montréal

                                      Project Champion
                   Leonard L. Tripp, Chair, Professional Practices Committee,
                             IEEE Computer Society (2001-2003)




                                      http://computer.org

                                  Los Alamitos, California
                        Washington       •      Brussels       •       Tokyo




© IEEE – 2004 Version                                ®SWEBOK is an official service mark of the IEEE
Copyright © 2004 by The Institute of Electrical and Electronics Engineers, Inc. All rights reserved.

Copyright and Reprint Permissions: This document may be copied, in whole or in part, in any form or by any means, as is, or
with alterations, provided that (1) alterations are clearly marked as alterations and (2) this copyright notice is included
unmodified in any copy. Any other use or distribution of this document is prohibited without the prior express permission of
IEEE.

You use this document on the condition that you indemnify and hold harmless IEEE from any and all liability or damages to
yourself or your hardware or software, or third parties, including attorneys' fees, court costs, and other related costs and expenses,
arising out of your use of this document irrespective of the cause of said liability.

IEEE MAKES THIS DOCUMENT AVAILABLE ON AN "AS IS" BASIS AND MAKES NO WARRANTY, EXPRESS OR IMPLIED, AS TO
THE ACCURACY, CAPABILITY, EFFICIENCY MERCHANTABILITY, OR FUNCTIONING OF THIS DOCUMENT. IN NO EVENT
WILL IEEE BE LIABLE FOR ANY GENERAL, CONSEQUENTIAL, INDIRECT, INCIDENTAL, EXEMPLARY, OR SPECIAL
DAMAGES, EVEN IF IEEE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

                                        IEEE Computer Society Order Number C2330
                                                    ISBN 0-7695-2330-7
                                          Library of Congress Number 2005921729

                                            Additional copies may be ordered from:

          IEEE Computer Society                      IEEE Service Center                   IEEE Computer Society
         Customer Service Center                        445 Hoes Lane                        Asia/Pacific Office
        10662 Los Vaqueros Circle                       P.O. Box 1331                      Watanabe Bldg., 1-4-2
               P.O. Box 3014                     Piscataway, NJ 08855-1331                     Minami-Aoyama
       Los Alamitos, CA 90720-1314                 Tel: + 1-732-981-0060                 Minato-ku, Tokyo 107-0062
           Tel: + 1-714-821-8380                   Fax: + 1-732-981-9667                            JAPAN
          Fax: + 1-714-821-4641                   http://shop.ieee.org/store/               Tel: + 81-3-3408-3118
      E-mail: cs.books@computer.org              customer-service@ieee.org                  Fax: + 81-3-3408-3553
                                                                                          tokyo.ofc@computer.org



                                                Publisher: Angela Burgess
                                    Group Managing Editor, CS Press: Deborah Plummer
                                            Advertising/Promotions: Tom Fink
                                              Production Editor: Bob Werner
                                          Printed in the United States of America




                                                                                                          © IEEE – 2004 Version
TABLE OF CONTENTS
FOREWORD ................................................................................................................................................................vii

PREFACE..................................................................................................................................................................xvii

CHAPTER 1                    INTRODUCTION TO THE GUIDE ..................................................................................................1-1

CHAPTER 2                    SOFTWARE REQUIREMENTS .......................................................................................................2-1

CHAPTER 3                    SOFTWARE DESIGN....................................................................................................................3-1

CHAPTER 4                    SOFTWARE CONSTRUCTION .......................................................................................................4-1

CHAPTER 5                    SOFTWARE TESTING ..................................................................................................................5-1

CHAPTER 6                    SOFTWARE MAINTENANCE ........................................................................................................6-1

CHAPTER 7                    SOFTWARE CONFIGURATION MANAGEMENT .............................................................................7-1

CHAPTER 8                    SOFTWARE ENGINEERING MANAGEMENT .................................................................................8-1

CHAPTER 9                    SOFTWARE ENGINEERING PROCESS ...........................................................................................9-1

CHAPTER 10                   SOFTWARE ENGINEERING TOOLS AND METHODS ...................................................................10-1

CHAPTER 11                   SOFTWARE QUALITY ...............................................................................................................11-1

CHAPTER 12                   RELATED DISCIPLINES OF SOFTWARE ENGINEERING ..............................................................12-1

APPENDIX A                   KNOWLEDGE AREA DESCRIPTION SPECIFICATIONS FOR THE
                             IRONMAN VERSION OF THE GUIDE TO THE SOFTWARE ENGINEERING
                             BODY OF KNOWLEDGE ............................................................................................................A-1

APPENDIX B                   EVOLUTION OF THE GUIDE TO THE SOFTWARE ENGINEERING
                             BODY OF KNOWLEDGE ............................................................................................................ B-1

APPENDIX C                   ALLOCATION OF IEEE AND ISO SOFTWARE ENGINEERING STANDARDS TO
                             SWEBOK KNOWLEDGE AREAS .................................................................................................. C-1

APPENDIX D                   CLASSIFICATION OF TOPICS ACCORDING TO BLOOM’S TAXONOMY ........................................D-1




IEEE – 2004 Version                                                                   v
vi
FOREWORD
    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/IEC12207, 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.
     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.


© IEEE – 2004 Version                               vii
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
                  for the Establishment of Software Engineering as a Profession (1998-1999)
           Chair, Software Engineering Standards Committee, IEEE Computer Society (1992-1998)




                                                   viii                                 © IEEE – 2004 Version
ASSOCIATE EDITORS

   The following persons served as Associate Editors for either the Trial version published in 2001 or for the 2004
version.


Software Requirements
       Peter Sawyer and Gerald Kotonya, Computing Department, Lancaster University, UK,
       {p.sawyer}{g.kotonya}@lancaster.ac.uk

Software Design
       Guy Tremblay, Département d’informatique, UQAM, Canada, tremblay.guy@uqam.ca

Software Construction
       Steve McConnell, Construx Software, USA, Steve.McConnell@construx.com
       Terry Bollinger, the MITRE Corporation, USA, terry@mitre.org
       Philippe Gabrini, Département d’informatique, UQAM, Canada, gabrini.philippe@uqam.ca
       Louis Martin, Département d’informatique, UQAM, Canada, martin.louis@uqam.ca

Software Testing
       Antonia Bertolino and Eda Marchetti, ISTI-CNR, Italy, {antonia.bertolino}{eda.marchetti}@isti.cnr.it

Software Maintenance
       Thomas M. Pigoski, Techsoft Inc., USA, tmpigoski@techsoft.com
       Alain April, École de technologie supérieure, Canada, aapril@ele.etsmtl.ca

Software Configuration Management
       John A. Scott, Lawrence Livermore National Laboratory, USA, scott7@llnl.gov
       David Nisse, USA, nissed@worldnet.att.net

Software Engineering Management
       Dennis Frailey, Raytheon Company, USA, DJFrailey@Raytheon.com
       Stephen G. MacDonell, Auckland University of technology, New Zealand, smacdone@aut.ac.nz
       Andrew R. Gray, University of Otago, New Zealand

Software Engineering Process
       Khaled El Emam, served while at the Canadian National Research Council, Canada,
       khaled.el-emam@nrc-cnrc.gc.ca

Software Engineering Tools and Methods
       David Carrington, School of Information Technology and Electrical Engineering, The University of
       Queensland, Australia, davec@itee.uq.edu.au

Software Quality
       Alain April, École de technologie supérieure, Canada, aapril@ele.etsmtl.ca
       Dolores Wallace, retired from the National Institute of Standards and Technology, USA,
       Dolores.Wallace@nist.gov
       Larry Reeker, NIST, USA, Larry.Reeker@nist.gov

References Editor
       Marc Bouisset, Département d’informatique, UQAM, Bouisset.Marc@uqam.ca




© IEEE – 2004 Version                               ix
INDUSTRIAL ADVISORY
                    BOARD

   At the time of the publication, the following people formed the Industrial Advisory Board:

Mario R. Barbacci, Software Engineering Institute, representing the
IEEE Computer Society

Carl Chang, representing Computing Curricula 2001

François Coallier, École de technologie supérieure, speaking as ISO/IEC JTC 1 / SC7 Chairman

Charles Howell, The MITRE Corporation

Anatol Kark, National Research Council of Canada

Philippe Kruchten, University of British Columbia, served as representative of Rational Software

Laure Le Bars, SAP Labs (Canada)

Steve McConnell, Construx Software

Dan Nash, Raytheon Company

Fred Otto, Canadian Council of Professional Engineers (CCPE)

Richard Metz, The Boeing Company

Larry Reeker, National Institute of Standards and Technology, Department of Commerce, USA



The following persons served along with the IAB in the Executive Change Control Board for the 2004 edition:

Donald Bagert, Rose-Hulman Institute of Technology, representing the IEEE Computer Society Professional
Practices Committee

Ann Sobel, Miami University, representing the Computing Curricula Software Engineering Steering Committee




                                                    x                                   © IEEE – 2004 Version
PANEL OF EXPERTS

   The following persons served on the panel of experts for the preparation of the Trial version of the Guide:

Steve McConnell, Construx Software

Roger Pressman, R.S. Pressman and Associates

Ian Sommerville, Lancaster University, UK




© IEEE – 2004 Version                               xi
REVIEW TEAM


   The following people participated in the review process of this Guide for the Trial version and/or for the 2004
version.

Abbas, Rasha, Australia                 Bierwolf, Robert, The                    Charette, Robert, USA
Abran, Alain, Canada                    Netherlands                              Chevrier, Marielle, Canada
Accioly, Carlos, Brazil                 Bisbal, Jesus, Ireland                   Chi, Donald, USA
Ackerman, Frank, USA                    Boivin, Michel, Canada                   Chiew, Vincent, Canada
Akiyama, Yoshihiro, Japan               Bolton, Michael, Canada                  Chilenski, John, USA
Al-Abdullah, Mohammad, USA              Bomitali, Evelino, Italy                 Chow, Keith, Italy
Alarcon, Miren Idoia, Spain             Bonderer, Reto, Switzerland              Ciciliani, Ricardo, Argentina
Alawy, Ahmed, USA                       Bonk, Francis, USA                       Clark, Glenda, USA
Alleman, Glen, USA                      Booch, Grady, USA                        Cleavenger, Darrell, USA
Allen, Bob, Canada                      Booker, Glenn, USA                       Cloos, Romain, Luxembourg
Allen, David, USA                       Börstler, Jürgen, Sweden                 Coallier, François, Canada
Amorosa, Francesco, Italy               Borzovs, Juris, Latvia                   Coblentz, Brenda, USA
Amyot, Daniel, Canada                   Botting, Richard, USA                    Cohen, Phil, Australia
Andrade, Daniel, Brazil                 Bourque, Pierre, Canada                  Collard, Ross, New Zealand
April, Alain, Canada                    Bowen, Thomas, USA                       Collignon, Stephane, Australia
Arroyo-Figueror, Javier, USA            Boyd, Milt, USA                          Connors, Kathy Jo, USA
Ashford, Sonny, USA                     Boyer, Ken, USA                          Cooper, Daniel, USA
Atsushi, Sawada, Japan                  Brashear, Phil, USA                      Councill, Bill, USA
Backitis Jr., Frank, USA                Briggs, Steve, USA                       Cox, Margery, USA
Bagert, Donald, USA                     Bright, Daniela, USA                     Cunin, Pierre-Yves, France
Baker, Jr., David, USA                  Brosseau, Jim, Canada                    DaLuz, Joseph, USA
Baker, Theodore, USA                    Brotbeck, George, USA                    Dampier, David, USA
Baldwin, Mark, USA                      Brown, Normand, Canada                   Daneva, Maya, Canada
Bales, David, UK                        Bruhn, Anna, USA                         Daneva, Maya, Canada
Bamberger, Judy, USA                    Brune, Kevin, USA                        Daughtry, Taz, USA
Banerjee, Bakul, USA                    Bryant, Jeanne, USA                      Davis, Ruth, USA
Barber, Scott, USA                      Buglione, Luigi, Italy                   De Cesare, Sergio, UK
Barker, Harry, UK                       Bullock, James, USA                      Dekleva, Sasa, USA
Barnes, Julie, USA                      Burns, Robert, USA                       Del Castillo, Federico, Peru
Barney, David, Australia                Burnstein, Ilene, USA                    Del Dago, Gustavo, Argentina
Barros, Rafael, Colombia                Byrne, Edward, USA                       DeWeese, Perry, USA
Bastarache, Louis, Canada               Calizaya, Percy, Peru                    Di Nunno, Donn, USA
Bayer, Steven, USA                      Carreon, Juan, USA                       Diaz-Herrera, Jorge, USA
Beaulac, Adeline, Canada                Carroll, Sue, USA                        Dieste, Oscar, Spain
Beck, William, USA                      Carruthers, Kate, Australia              Dion, Francis, Canada
Beckman, Kathleen, USA                  Caruso, Richard, USA                     Dixon, Wes, USA
Below, Doreen, USA                      Carvalho, Paul, Canada                   Dolado, Javier, Spain
Benediktsson, Oddur, Iceland            Case, Pam, USA                           Donaldson, John, UK
Ben-Menachem, Mordechai,                Cavanaugh, John, USA                     Dorantes, Marco, Mexico
Israel                                  Celia, John A., USA                      Dorofee, Audrey, USA
Bergeron, Alain, Canada                 Chalupa Sampaio, Alberto                 Douglass, Keith, Canada
Berler, Alexander, Greece               Antonio, Portugal                        Du, Weichang, Canada
Bernet, Martin, USA                     Chan, F.T., Hong Kong                    Duben, Anthony, USA
Bernstein, Larry, USA                   Chan, Keith, Hong Kong                   Dudash, Edward, USA
Bertram, Martin, Germany                Chandra, A.K., India                     Duncan, Scott, USA
Bialik, Tracy, USA                      Chang, Wen-Kui, Taiwan                   Duong, Vinh, Canada
Bielikova, Maria, Slovakia              Chapin, Ned, USA                         Durham, George, USA



                                                   xii                                 © IEEE – 2004 Version
Dutil, Daniel, Canada           Gresse von Wangenheim,           Jones, James E., USA
Dutton, Jeffrey, USA            Christiane, Brazil               Jones, Alan, UK
Ebert, Christof, France         Grigonis, George, USA            Jones, James, USA
Edge, Gary, USA                 Gupta, Arun, USA                 Jones, Larry, Canada
Edwards, Helen Maria, UK        Gustafson, David, USA            Jones, Paul, USA
El-Kadi, Amr, Egypt             Gutcher, Frank, USA              Ju, Dehua, China
Endres, David, USA              Haas, Bob, USA                   Juan-Martinez, Manuel-
Engelmann, Franz, Switzerland   Hagar, Jon, USA                  Fernando, Spain
Escue, Marilyn, USA             Hagstrom, Erick, USA             Juhasz, Zoltan, Hungary
Espinoza, Marco, Peru           Hailey, Victoria, Canada         Juristo, Natalia, Spain
Fay, Istvan, Hungary            Hall, Duncan, New Zealand        Kaiser, Michael, Switzerland
Fayad, Mohamed, USA             Haller, John, USA                Kambic, George, USA
Fendrich, John, USA             Halstead-Nussloch, Richard,      Kamthan, Pankaj, Canada
Ferguson, Robert, USA           USA                              Kaner, Cem, USA
Fernandez, Eduardo, USA         Hamm, Linda, USA                 Kark, Anatol, Canada
Fernandez-Sanchez, Jose Luis,   Hankewitz, Lutz, Germany         Kasser, Joe, USA
Spain                           Harker, Rob, USA                 Kasser, Joseph, Australia
Filgueiras, Lucia, Brazil       Hart, Hal, USA                   Katz, Alf, Australia
Finkelstein, Anthony, UK        Hart, Ronald, USA                Kececi, Nihal, Canada
Flinchbaugh, Scott, USA         Hartner, Clinton, USA            Kell, Penelope, USA
Forrey, Arden, USA              Hayeck, Elie, USA                Kelly, Diane, Canada
Fortenberry, Kirby, USA         He, Zhonglin, UK                 Kelly, Frank, USA
Foster, Henrietta, USA          Hedger, Dick, USA                Kenett, Ron, Israel
Fowler, Martin, USA             Hefner, Rick, USA                Kenney, Mary L., USA
Fowler, John Jr., USA           Heinrich, Mark, USA              Kerievsky, Joshua, USA
Fox, Christopher, USA           Heinze, Sherry, Canada           Kerr, John, USA
Frankl, Phyllis, USA            Hensel, Alan, USA                Kierzyk, Robert, USA
Freibergs, Imants, Latvia       Herrmann, Debra, USA             Kinsner, W., Canada
Frezza, Stephen, USA            Hesse, Wolfgang, Germany         Kirkpatrick, Harry, USA
Fruehauf, Karol, Switzerland    Hilburn, Thomas, USA             Kittiel, Linda, USA
Fuggetta, Alphonso, Italy       Hill, Michael, USA               Klappholz, David, USA
Fujii, Roger, USA               Ho, Vinh, Canada                 Klein, Joshua, Israel
FUSCHI, David Luigi, Italy      Hodgen, Bruce, Australia         Knight, Claire, UK
Fuschi, David Luigi, Italy      Hodges, Brett, Canada            Knoke, Peter, USA
Gabrini, Philippe, Canada       Hoffman, Douglas, Canada         Ko, Roy, Hong Kong
Gagnon, Eric, Canada            Hoffman, Michael, USA            Kolewe, Ralph, Canada
Ganor, Eitan, Israel            Hoganson, Tammy, USA             Komal, Surinder Singh, Canada
Garbajosa, Juan, Spain          Hollocker, Chuck, USA            Kovalovsky, Stefan, Austria
Garceau, Benoît, Canada         Horch, John, USA                 Krauth, Péter, Hungary
Garcia-Palencia, Omar,          Howard, Adrian, UK               Krishnan, Nirmala, USA
Colombia                        Huang, Hui Min, USA              Kromholz, Alfred, Canada
Garner, Barry, USA              Hung, Chih-Cheng, USA            Kruchten, Philippe, Canada
Gelperin, David, USA            Hung, Peter, USA                 Kuehner, Nathanael, Canada
Gersting, Judith, Hawaii        Hunt, Theresa, USA               Kwok, Shui Hung, Canada
Giesler, Gregg, USA             Hunter, John, USA                Lacroix, Dominique, Canada
Gil, Indalecio, Spain           Hvannberg, Ebba Thora, Iceland   LaMotte, Stephen W., USA
Gilchrist, Thomas, USA          Hybertson, Duane, USA            Land, Susan, USA
Giurescu, Nicolae, Canada       Ikiz, Seckin, Turkey             Lange, Douglas, USA
Glass, Robert, USA              Iyengar, Dwaraka, USA            Laporte, Claude, Canada
Glynn, Garth, UK                Jackelen, George, USA            Lawlis, Patricia, USA
Goers, Ron, USA                 Jaeger, Dawn, USA                Le, Thach, USA
Gogates, Gregory, USA           Jahnke, Jens, Canada             Leavitt, Randal, Canada
Goldsmith, Robin, USA           James, Jean, USA                 LeBel, Réjean, Canada
Goodbrand, Alan, Canada         Jino, Mario, Brazil              Leciston, David, USA
Gorski, Janusz, Poland          Johnson, Vandy, USA              Lee, Chanyoung, USA
Graybill, Mark, USA             Jones, Griffin, USA              Lehman, Meir (Manny), UK



© IEEE – 2004 Version                    xiii
Leigh, William, USA              Miranda, Eduardo, Canada         Phister, Paul, USA
Lembo, Jim, USA                  Mistrik, Ivan, Germany           Phister, Jr., Paul, USA
Lenss, John, USA                 Mitasiunas, Antanas, Lithuania   Piattini, Mario, Spain
Leonard, Eugene, USA             Modell, Howard, USA              Piersall, Jeff, USA
Lethbridge, Timothy, Canada      Modell, Staiger,USA              Pillai, S.K., India
Leung, Hareton, Hong Kong        Modesitt, Kenneth, USA           Pinder, Alan, UK
Lever, Ronald, The Netherlands   Moland, Kathryn, USA             Pinheiro, Francisco A., Brazil
Levesque, Ghislain, Canada       Moldavsky, Symon, Ukraine        Plekhanova, Valentina, UK
Ley, Earl, USA                   Montequín, Vicente R., Spain     Poon, Peter, USA
Linders, Ben, Netherlands        Moreno, Ana Maria, Spain         Poppendieck, Mary, USA
Linscomb, Dennis, USA            Mosiuoa, Tseliso, Lesotho        Powell, Mace, USA
Little, Joyce Currie, USA        Moudry, James, USA               Predenkoski, Mary, USA
Logan, Jim, USA                  Msheik, Hamdan, Canada           Prescott, Allen, USA
Long, Carol, UK                  Mularz, Diane, USA               Pressman, Roger, USA
Lounis, Hakim, Canada            Mullens, David, USA              Price, Art, USA
Low, Graham, Australia           Müllerburg, Monika, Germany      Price, Margaretha, USA
Lutz, Michael, USA               Murali, Nagarajan, Australia     Pullum, Laura, USA
Lynch, Gary, USA                 Murphy, Mike, USA                Purser, Keith, USA
Machado, Cristina, Brazil        Napier, John, USA                Purssey, John, Australia
MacKay, Stephen, Canada          Narasimhadevara, Sudha,          Pustaver, John, USA
MacKenzie, Garth, USA            Canada                           Quinn, Anne, USA
MacNeil, Paul, USA               Narawane, Ranjana, India         Radnell, David, Australia
Magel, Kenneth, USA              Narayanan, Ramanathan, India     Rae, Andrew, UK
Mains, Harold, USA               Navarro Ramirez, Daniel,         Rafea, Ahmed, Egypt
Malak, Renee, USA                Mexico                           Ramsden, Patrick, Australia
Maldonado, José Carlos, Brazil   Navas Plano, Francisco, Spain    Rao, N.Vyaghrewara, India
Marcos, Esperanza, Spain         Navrat, Pavol, Slovakia          Rawsthorne, Dan, USA
Marinescu, Radu, Romania         Neumann, Dolly, USA              Reader, Katherine, USA
Marm, Waldo, Peru                Nguyen-Kim, Hong, Canada         Reddy, Vijay,USA
Marusca, Ioan, Canada            Nikandros, George, Australia     Redwine, Samuel, USA
Matlen, Duane, USA               Nishiyama, Tetsuto, Japan        Reed, Karl, Australia
Matsumoto, Yoshihiro, Japan      Nunn, David, USA                 Reedy, Ann, USA
McBride, Tom, Australia          O'Donoghue, David, Ireland       Reeker, Larry, USA
McCarthy, Glenn, USA             Oliver, David John, Australia    Rethard, Tom, USA
McChesney, Ian, UK               Olson, Keith, USA                Reussner, Ralf, Germany
McCormick, Thomas, Canada        Oskarsson, Östen, Sweden         Rios, Joaquin, Spain
McCown, Christian, USA           Ostrom, Donald, USA              Risbec, Philippe, France
McDonald, Jim, USA               Oudshoorn, Michael, Australia    Roach, Steve, USA
McGrath Carroll, Sue, USA        Owen, Cherry, USA                Robillard, Pierre, Canada
McHutchison, Diane, USA          Pai, Hsueh-Ieng, Canada          Rocha, Zalkind, Brazil
McKinnell, Brian, Canada         Parrish, Lee, USA                Rodeiro Iglesias, Javier, Spain
McMichael, Robert, USA           Parsons, Samuel, USA             Rodriguez-Dapena, Patricia,
McMillan, William, USA           Patel, Dilip, UK                 Spain
McQuaid, Patricia, USA           Paulk, Mark, USA                 Rogoway, Paul, Israel
Mead, Nancy, USA                 Pavelka, Jan, Czech Republic     Rontondi, Guido, Italy
Meeuse, Jaap, The Netherlands    Pavlov, Vladimir, Ukraine        Roose, Philippe, France
Meier, Michael, USA              Pawlyszyn, Blanche, USA          Rosca, Daniela, USA
Meisenzahl, Christopher, USA     Pecceu, Didier, France           Rosenberg, Linda, USA
Melhart, Bonnie, USA             Perisic, Branko, Yugoslavia      Rourke, Michael, Australia
Mengel, Susan, USA               Perry, Dale, USA                 Rout, Terry, Australia
Meredith, Denis, USA             Peters, Dennis, Canada           Rufer, Russ, USA
Meyerhoff, Dirk, Germany         Petersen, Erik, Australia        Ruiz, Francisco, Spain
Mili, Hafedh, Canada             Pfahl, Dietmar, Germany          Ruocco, Anthony, USA
Miller, Chris, Netherlands       Pfeiffer, Martin, Germany        Rutherfoord, Rebecca, USA
Miller, Keith, USA               Phillips, Dwayne, USA            Ryan, Michael, Ireland
Miller, Mark, USA                Phipps, Robert, USA              Salustri, Filippo, Canada



                                          xiv                          © IEEE – 2004 Version
Salustri, Filippo, Canada          Soundarajan, Neelam, USA        Urbanowicz, Theodore, USA
Salwin, Arthur, USA                Sousa Santos, Frederico,        Van Duine, Dan, USA
Sanden, Bo, USA                    Portugal                        Van Ekris, Jaap, Netherlands
Sandmayr, Helmut, Switzerland      Spillers, Mark, USA             Van Oosterhout, Bram, Australia
Santana Filho, Ozeas Vieira,       Spinellis, Diomidis, Greece     Vander Plaats, Jim, USA
Brazil                             Splaine, Steve, USA             Vegas, Sira, Spain
Sato, Tomonobu, Japan              Springer, Donald, USA           Verner, June, USA
satyadas, antony, USA              Staiger, John, USA              Villas-Boas, André, Brazil
Satyadas, Antony, USA              Starai, Thomas, USA             Vollman, Thomas, USA
Schaaf, Robert, USA                Steurs, Stefan, Belgium         Walker, Richard, Australia
Scheper, Charlotte, USA            St-Pierre, Denis, Canada        Walsh, Bucky, USA
Schiffel, Jeffrey, USA             Stroulia, Eleni, Canada         Wang, Yingxu, Sweden
Schlicht, Bill, USA                Subramanian, K.S., India        Wear, Larry, USA
Schrott, William, USA              Sundaram, Sai, UK               Weigel, richard, USA
Schwarm, Stephen, USA              Swanek, James, USA              Weinstock, Charles, USA
Schweppe, Edmund, USA              Swearingen, Sandra, USA         Wenyin, Liu, China
Sebern, Mark, USA                  Szymkowiak, Paul, Canada        Werner, Linda, USA
Seffah, Ahmed, Canada              Tamai, Tetsuo, Japan            Wheeler, David, USA
Selby, Nancy, USA                  Tasker, Dan, New Zealand        White, Nathan, USA
Selph, William, USA                Taylor, Stanford, USA           White, Stephanie, USA
Sen, Dhruba, USA                   Terekhov, Andrey A., Russian    Whitmire, Scott, USA
Senechal, Raymond, USA             Federation                      Wijbrans, Klaas, The
Sepulveda, Christian, USA          Terski, Matt, USA               Netherlands
Setlur, Atul, USA                  Thayer, Richard, USA            Wijbrans-Roodbergen, Margot,
Sharp, David, USA                  Thomas, Michael, USA            The Netherlands
Shepard, Terry, Canada             Thompson, A. Allan, Australia   Wilkie, Frederick, UK
Shepherd, Alan, Germany            Thompson, John Barrie, UK       Wille, Cornelius, Germany
Shillato, Rrobert W, USA           Titus, Jason, USA               Wilson, Charles, USA
Shintani, Katsutoshi, Japan        Tockey, Steve, USA              Wilson, Leon, USA
Silva, Andres, Spain               Tovar, Edmundo, Spain           Wilson, Russell, USA
Silva, Andres, Spain               Towhidnejad, Massood, USA       Woechan, Kenneth, USA
Singer, Carl, USA                  Trellue, Patricia, USA          Woit, Denise, Canada
Sinnett, Paul, UK                  Trèves, Nicolas, France         Yadin, Aharon, Israel
Sintzoff, André, France            Troy, Elliot, USA               Yih, Swu, Taiwan
Sitte, Renate, Australia           Tsui, Frank, USA                Young, Michal, USA
Sky, Richard, USA                  Tsuneo, Furuyama, Japan         Yrivarren, Jorge, Peru
Smilie, Kevin, USA                 Tuohy, Kenney, USA              Znotka, Juergen, Germany
Smith, David, USA                  Tuohy, Marsha P., USA           Zuser, Wolfgang, Austria
Sophatsathit, Peraphon, Thailand   Turczyn, Stephen, USA           Zvegintzov, Nicholas, USA
Sorensen, Reed, USA                Upchurch, Richard, USA          Zweben, Stu, USA




© IEEE – 2004 Version                       xv
The following motion was unanimously adopted by the Industrial Advisory Board
                              on 6 February 2004.
The Industrial Advisory Board finds that the Software Engineering Body of Knowledge project initiated
in 1998 has been successfully completed; and endorses the 2004 Version of the Guide to the SWEBOK
and commends it to the IEEE Computer Society Board of Governors for their approval.


     The following motion was adopted by the IEEE Computer Society Board of
                           Governors in February 2004.
MOVED, that the Board of Governors of the IEEE Computer Society approves the 2004 Edition of the
Guide to the Software Engineering Body of Knowledge and authorizes the Chair of the Professional
Practices Committee to proceed with printing.




                                                          xvi                 © IEEE – 2004 Version
PREFACE

Software engineering is an emerging discipline and                     has long offered a certification for computing
there are unmistakable trends indicating an increasing                 professionals.
level of maturity:                                                All of these efforts are based upon the presumption
     Several universities throughout the world offer              that there is a Body of Knowledge that should be
     undergraduate degrees in software engineering.               mastered by practicing software engineers. The Body
     For example, such degrees are offered at the                 of Knowledge exists in the literature that has
     University of New South Wales (Australia),                   accumulated over the past thirty years. This book
     McMaster University (Canada), the Rochester                  provides a Guide to that Body of Knowledge.
     Institute of Technology (US), the University of
     Sheffield (UK), and other universities.                      PURPOSE
     In the US, the Engineering Accreditation                     The purpose of the Guide to the Software Engineering
     Commission of the Accreditation Board for                    Body of Knowledge is to provide a consensually
     Engineering and Technology (ABET) is                         validated characterization of the bounds of the
     responsible for the accreditation of undergraduate           software engineering discipline and to provide a
     software engineering programs.                               topical access to the Body of Knowledge supporting
     The Canadian Information Processing Society has              that discipline. The Body of Knowledge is subdivided
     published criteria to accredit software engineering          into ten software engineering Knowledge Areas (KA)
     undergraduate university programs.                           plus an additional chapter providing an overview of the
     The Software Engineering Institute’s Capability              KAs of strongly related disciplines. The descriptions of
     Maturity Model for Software (SW CMM) and the                 the KAs are designed to discriminate among the
     new Capability Maturity Model Integration                    various important concepts, permitting readers to find
     (CMMI) are used to assess organizational                     their way quickly to subjects of interest. Upon finding
     capability for software engineering. The famous              a subject, readers are referred to key papers or book
     ISO 9000 quality management standards have                   chapters selected because they succinctly present the
     been applied to software engineering by the new              knowledge.
     ISO/IEC 90003.                                               In browsing the Guide, readers will note that the
     The Texas Board of Professional Engineers has                content is markedly different from computer science.
     begun to license professional software engineers.            Just as electrical engineering is based upon the science
                                                                  of physics, software engineering should be based,
     The Association of Professional Engineers and                among other things, upon computer science. In these
      Geoscientists of British Columbia (APEGBC) has              two cases, though, the emphasis is necessarily
      begun registering software professional engineers,          different. Scientists extend our knowledge of the laws
      and the Professional Engineers of Ontario (PEO)             of nature while engineers apply those laws of nature to
      has also announced requirements for licensing.              build useful artifacts, under a number of constraints.
     The Association for Computing Machinery                      Therefore, the emphasis of the Guide is placed on the
     (ACM) and the Computer Society of the Institute              construction of useful software artifacts.
     of Electrical and Electronics Engineers (IEEE)               Readers will also notice that many important aspects of
     have jointly developed and adopted a Code of                 information technology that may constitute important
     Ethics and Professional Practice for software                software engineering knowledge are not covered in the
     engineering professionals.1                                  Guide, including specific programming languages,
     The IEEE Computer Society offers the Certified               relational databases, and networks. This is a
     Software Development Professional certification              consequence of an engineering-based approach. In all
     for software engineering. The Institute for                  fields—not only computing—the designers of
     Certification of Computing Professionals (ICCP)              engineering curricula have realized that specific
                                                                  technologies are replaced much more rapidly than the
                                                                  engineering work force. An engineer must be equipped
1                                                                 with the essential knowledge that supports the
    The ACM/CS Software Engineering Code of Ethics and
    Professional Practice can be found at
                                                                  selection of the appropriate technology at the
    http://www.computer.org/certification/ethics.htm.             appropriate time in the appropriate circumstance. For


     © IEEE – 2004 Version                                 xvii
example, software might be built in Fortran using                 organizations in need of a consistent view of software
functional decomposition or in C++ using object-                  engineering for defining education and training
oriented techniques. The techniques for software                  requirements,      classifying     jobs,    developing
configuring instances of those systems would be quite             performance evaluation policies, or specifying
different. But, the principles and objectives of                  software development tasks. It also addresses
configuration management remain the same. The                     practicing, or managing, software engineers and the
Guide therefore does not focus on the rapidly changing            officials responsible for making public policy
technologies, although their general principles are               regarding licensing and professional guidelines. In
described in relevant KAs.                                        addition, professional societies and educators defining
These exclusions demonstrate that this Guide is                   the certification rules, accreditation policies for
necessarily incomplete. The Guide covers software                 university curricula, and guidelines for professional
engineering knowledge that is necessary but not                   practice will benefit from SWEBOK, as well as the
sufficient for a software engineer. Practicing software           students learning the software engineering profession
engineers will need to know many things about                     and educators and trainers engaged in defining
computer science, project management, and systems                 curricula and course content.
engineering—to name a few—that fall outside the
Body of Knowledge characterized by this Guide.                    EVOLUTION OF THE GUIDE
However, stating that this information should be
known by software engineers is not the same as stating            From 1993 to 2000, the IEEE Computer Society and
that this knowledge falls within the bounds of the                the Association for Computing Machinery (ACM)
                                                                  cooperated in promoting the professionalization of
software engineering discipline. Instead, it should be
stated that software engineers need to know some                  software engineering through their joint Software
things taken from other disciplines—and that is the               Engineering Coordinating Committee (SWECC). The
                                                                  Code of Ethics was completed under stewardship of
approach adopted in this Guide. So, this Guide
characterizes the Body of Knowledge falling within the            the SWECC primarily through volunteer efforts. The
scope of software engineering and provides references             SWEBOK project was initiated by the SWECC in
                                                                  1998.
to relevant information from other disciplines. A
chapter of the Guide provides a taxonomical overview              The SWEBOK project’s scope, the variety of
of the related disciplines derived from authoritative             communities involved, and the need for broad
sources.                                                          participation suggested a need for full-time rather than
The emphasis on engineering practice leads the Guide              volunteer management. For this purpose, the IEEE
toward a strong relationship with the normative                   Computer Society contracted the Software Engineering
literature. Most of the computer science, information             Management Research Laboratory at the Université du
technology, and software engineering literature                   Québec à Montréal (UQAM) to manage the effort. In
provides information useful to software engineers, but            recent years, UQAM has been joined by the École de
a relatively small portion is normative. A normative              technologie supérieure, Montréal, Québec.
document prescribes what an engineer should do in a               The project plan comprised three successive phases:
specified situation rather than providing information             Strawman, Stoneman, and Ironman. An early
that might be helpful. The normative literature is                prototype, Strawman, demonstrated how the project
validated by consensus formed among practitioners                 might be organized. The publication of the widely
and is concentrated in standards and related                      circulated Trial Version of the Guide in 2001 marked
documents. From the beginning, the SWEBOK project                 the end of the Stoneman phase of the project and
was conceived as having a strong relationship to the              initiated a period of trial usage. The current Guide
normative literature of software engineering. The two             marks the end of the Ironman period by providing a
major standards bodies for software engineering (IEEE             Guide that has achieved consensus through broad
Computer Society Software Engineering Standards                   review and trial application.
Committee and ISO/IEC JTC1/SC7) are represented in                The project team developed two important principles
the project. Ultimately, we hope that software                    for guiding the project: transparency and consensus.
engineering practice standards will contain principles            By transparency, we mean that the development
directly traceable to the Guide.                                  process is itself documented, published, and publicized
                                                                  so that important decisions and status are visible to all
INTENDED AUDIENCE                                                 concerned parties. By consensus, we mean that the
                                                                  only practical method for legitimizing a statement of
The Guide is oriented toward a variety of audiences,              this kind is through broad participation and agreement
all over the world. It aims to serve public and private           by all significant sectors of the relevant community.



                                                          xviii                       © IEEE – 2004 Version
Literally hundreds of contributors, reviewers, and trial            rearranged to make it more usable, but we were careful
users have played a part in producing the current                   to include the same information that was approved by
document.                                                           the earlier consensus process. We updated the
Like any software project, the SWEBOK project has                   reference list so that it would be easier to obtain the
many stakeholders—some of which are formally                        references.
represented. An Industrial Advisory Board, composed                 Trial usage resulted in the recommendation that three
of representatives from industry (Boeing, Construx                  KAs should be rewritten. Practitioners remarked that
Software, the MITRE Corporation, Rational Software,                 the Construction KA was difficult to apply in a
Raytheon Systems, and SAP Labs-Canada), research                    practical context. The Management KA was perceived
agencies (National Institute of Standards and                       as being too close to general management and not
Technology, National Research Council of Canada),                   sufficiently specific to software engineering concerns.
the Canadian Council of Professional Engineers, and                 The Quality KA was viewed as an uncomfortable mix
the IEEE Computer Society, has provided financial                   of process quality and product quality; it was revised to
support for the project. The IAB’s generous support                 emphasize the latter.
permits us to make the products of the SWEBOK                       Finally, some KAs were revised to remove material
project publicly available without any charge                       duplicating that of other KAs.
(see http://www.swebok.org). IAB membership is
supplemented with the chairs of ISO/IEC JTC1/SC7
and the related Computing Curricula 2001 initiative.                LIMITATIONS
The IAB reviews and approves the project plans,                     Even though the Guide has gone through an elaborate
oversees consensus building and review processes,                   development and review process, the following
promotes the project, and lends credibility to the effort.          limitations of this process must be recognized and
In general, it ensures the relevance of the effort to real-         stated:
world needs.
                                                                         Software engineering continues to be infused
The Trial Version of the Guide was the product of                        with new technology and new practices.
extensive review and comment. In three public review                     Acceptance of new techniques grows and older
cycles, a total of roughly 500 reviewers from 42                         techniques are discarded. The topics listed as
countries provided roughly 9,000 comments, all of                        “generally accepted” in this Guide are carefully
which are available at www.swebok.org. To produce                        selected at this time. Inevitably, though, the
the current version, we released the Trial Version for                   selection will need to evolve.
extensive trial usage. Trial application in specialized
studies resulted in 17 papers describing good aspects                    The amount of literature that has been published
of the Guide, as well as aspects needing improvement.                    on software engineering is considerable and the
A Web-based survey captured additional experience:                       reference material included in this Guide should
573 individuals from 55 countries registered for the                     not be seen as a definitive selection but rather as a
survey; 124 reviewers from 21 countries actually                         reasonable selection. Obviously, there are other
provided comments—1,020 of them. Additional                              excellent authors and excellent references than
suggestions for improvement resulted from liaison                        those included in the Guide. In the case of the
with related organizations and efforts: IEEE-CS/ACM                      Guide, references were selected because they are
Computing Curricula Software Engineering; the IEEE                       written in English, readily available, recent, and
CS Certified Software Development Professional                           easily readable, and—taken as a group—they
project; ISO/IEC JTC1/SC7 (software and systems                          provide coverage of the topics within the KA.
engineering     standards);   the     IEEE    Software                   Important and highly relevant reference material
Engineering Standards Committee; the American                            written in languages other than English have been
Society for Quality, Software Division; and an                           omitted from the selected reference material.
engineering professional society, the Canadian Council              Additionally, one must consider that
of Professional Engineers.
                                                                         Software engineering is an emerging discipline.
                                                                         This is especially true if you compare it to certain
CHANGES SINCE THE TRIAL VERSION                                          more established engineering disciplines. This
The overall goal of the current revision was to improve                  means notably that the boundaries between the
the readability, consistency, and usability of the Guide.                KAs of software engineering and between
This implied a general rewrite of the entire text to                     software engineering and its related disciplines
make the style consistent throughout the document. In                    remain a matter for continued evolution.
several cases, the topical breakdown of the KA was



    © IEEE – 2004 Version                                     xix
The contents of this Guide must therefore be viewed as          replace or amend in any way laws, rules, and
an “informed and reasonable” characterization of the            procedures that have been defined by official public
software engineering Body of Knowledge and as                   policy makers around the world regarding the practice
baseline for future evolution. Additionally, please note        and definition of engineering and software engineering
that the Guide is not attempting nor does it claim to           in particular.




                                                           xx                     © IEEE – 2004 Version
Alain Abran                                            Executive Editors of the                             James W. Moore
École de technologie supérieure                         Guide to the Software                         The MITRE Corporation
                                                        Engineering Body of
                                                            Knowledge
Pierre Bourque                                           Editors of the Guide to                               Robert Dupuis
École de Technologie Supérieure                        the Software Engineering               Université du Québec à Montréal
                                                          Body of Knowledge
Leonard Tripp                                          Chair of the Professional
1999 President                                          Practices Committee,
IEEE Computer Society                                  IEEE Computer Society
                                                             (2001-2003)
                                                           December 2004
                                  The SWEBOK project Web site is http://www.swebok.org/

                                                                       Serge Oligny, Suzanne Paquette, Keith Paton,
ACKNOWLEDGMENTS                                                        Dave Rayford, Normand Séguin, Paul Sinnett,
                                                                       Denis St-Pierre, Dale Strok, Pascale Tardif,
The SWEBOK editorial team gratefully                                   Louise Thibaudeau, Dolores Wallace, Évariste
acknowledges the support provided by the                               Valery Bevo Wandji, and Michal Young.
members of the Industrial Advisory Board.
Funding for this project has been provided by the                      Finally, there are surely other people who have
ACM, Boeing, the Canadian Council of                                   contributed to this Guide, either directly or
Professional Engineers, Construx Software, the                         indirectly, whose names we have inadvertently
IEEE     Computer      Society,     the    MITRE                       omitted. To those people, we offer our tacit
Corporation, the National Institute of Standards                       appreciation and apologize for having omitted
and Technology, the National Research Council                          explicit recognition here.
of Canada, Rational Software, Raytheon
Company, and SAP Labs (Canada). The team is
thankful for the counsel provided by the Panel of
Experts. The team also appreciates the important
work performed by the Associate Editors. We
would also like to express our gratitude for initial
work on the Knowledge Area Descriptions
completed by Imants Freibergs, Stephen Frezza,
Andrew Gray, Vinh T. Ho, Michael Lutz, Larry
Reeker, Guy Tremblay, Chris Verhoef, and
Sybille Wolff. The editorial team must also
acknowledge the indispensable contribution of
the hundreds of reviewers.




The editorial team also wishes to thank the
following people who contributed to the project
in various ways: Mark Ardis, Yussef Belkebir,
Michel Boivin, Julie Bonneau, Simon Bouchard,
François Cossette, Vinh Duong, Gilles Gauthier,
Michèle Hébert, Paula Hawthorn, Richard W.
Heiman, Julie Hudon, Idrissa Konkobo, Rene
Köppel, Lucette Lapointe, Claude Laporte, Luis
Molinié, Hamdan Msheik, Iphigénie N’Diyae,


    © IEEE – 2004 Version                                    xxi
xxii   © IEEE – 2004 Version
CHAPTER 1
                                               INTRODUCTION TO THE GUIDE

In spite of the millions of software professionals worldwide                       accounting.3 They concluded that an engineering profession is
and the ubiquitous presence of software in our society,                            characterized by several components:
software engineering has only recently reached the status of a                            An initial professional education in a curriculum
legitimate engineering discipline and a recognized profession.                            validated by society through accreditation
Achieving consensus by the profession on a core body of                                   Registration of fitness to practice via voluntary
knowledge is a key milestone in all disciplines and had been                              certification or mandatory licensing
identified by the IEEE Computer Society as crucial for the
                                                                                          Specialized skill development                  and      continuing
evolution of software engineering towards professional status.
                                                                                          professional education
This Guide, written under the auspices of the Professional
Practices Committee, is part of a multi-year project designed                             Communal support via a professional society
to reach such a consensus.                                                                A commitment to norms of conduct often prescribed in a
                                                                                          code of ethics
WHAT IS SOFTWARE ENGINEERING?                                                      This Guide contributes to the first three of these components.
The IEEE Computer Society defines software engineering as                          Articulating a Body of Knowledge is an essential step toward
                                                                                   developing a profession because it represents a broad
“(1) The application of a systematic, disciplined, quantifiable                    consensus regarding what a software engineering professional
approach to the development, operation, and maintenance of                         should know. Without such a consensus, no licensing
software; that is, the application of engineering to software.                     examination can be validated, no curriculum can prepare an
(2) The study of approaches as in (1).”1                                           individual for an examination, and no criteria can be
                                                                                   formulated for accrediting a curriculum. The development of
WHAT IS A RECOGNIZED PROFESSION?                                                   consensus is also a prerequisite to the adoption of coherent
                                                                                   skills development and continuing professional education
For software engineering to be fully known as a legitimate                         programs in organizations.
engineering discipline and a recognized profession, consensus
on a core body of knowledge is imperative. This fact is well                       WHAT ARE THE OBJECTIVES OF THE SWEBOK PROJECT?
illustrated by Starr when he defines what can be considered a
legitimate discipline and a recognized profession. In his                          The Guide should not be confused with the Body of
Pulitzer Prize-winning book on the history of the medical                          Knowledge itself, which already exists in the published
profession in the USA, he states,                                                  literature. The purpose of the Guide is to describe what
“The legitimization of professional authority involves three                       portion of the Body of Knowledge is generally accepted, to
distinctive claims: first, that the knowledge and competence of                    organize that portion, and to provide a topical access to it.
the professional have been validated by a community of his or                      Additional information on the meaning given to “generally
her peers; second, that this consensually validated knowledge                      accepted” can be found below and in Appendix A.
rests on rational, scientific grounds; and third, that the                         The Guide to the Software Engineering Body of Knowledge
professional’s judgment and advice are oriented toward a set                       (SWEBOK) was established with the following five
of substantive values, such as health. These aspects of                            objectives:
legitimacy correspond to the kinds of attributes—collegial,                        1.     To promote a consistent view of software engineering
cognitive, and moral—usually embodied in the term                                         worldwide
“profession.”2
                                                                                   2.     To clarify the place—and set the boundary—of
                                                                                          software engineering with respect to other disciplines
WHAT ARE THE CHARACTERISTICS OF A PROFESSION?                                             such as computer science, project management,
Gary Ford and Norman Gibbs studied several recognized                                     computer engineering, and mathematics
professions, including medicine, law, engineering, and                             3.     To characterize the contents of the software engineering
                                                                                          discipline
1
    “IEEE Standard Glossary of Software Engineering Terminology,” IEEE
    std 610.12-1990, 1990.                                                         3
                                                                                        G. Ford and N.E. Gibbs, A Mature Profession of Software Engineering,
2
    P. Starr, The Social Transformation of American Medicine, Basic Books,              Software Engineering Institute, Carnegie Mellon University, Pittsburgh,
    1982, p. 15.                                                                        Pa., tech. report CMU/SEI-96-TR-004, Jan. 1996.



© IEEE – 2004 Version                                                        1-1
4.      To provide a topical access to the Software Engineering                             Table 2 Related disciplines
        Body of Knowledge
                                                                                Computer engineering                 Project management
5.      To provide a foundation for curriculum development
                                                                                Computer science                     Quality management
        and for individual certification and licensing material
                                                                                Management                           Software ergonomics
The first of these objectives, a consistent worldwide view of
software engineering, was supported by a development                            Mathematics                          Systems engineering
process which engaged approximately 500 reviewers from 42
countries in the Stoneman phase (1998–2001) leading to the                HIERARCHICAL ORGANIZATION
Trial version, and over 120 reviewers from 21 countries in the
Ironman phase (2003) leading to the 2004 version. More                    The organization of the KA descriptions or chapters
information regarding the development process can be found                supports the third of the project’s objectives—a
in the Preface and on the Web site (www.swebok.org).                      characterization of the contents of software engineering.
Professional and learned societies and public agencies                    The detailed specifications provided by the project’s
involved in software engineering were officially contacted,               editorial team to the associate editors regarding the contents
made aware of this project, and invited to participate in the             of the KA descriptions can be found in Appendix A.
review process. Associate editors were recruited from North               The Guide uses a hierarchical organization to decompose each
America, the Pacific Rim, and Europe. Presentations on the                KA into a set of topics with recognizable labels. A two- or
project were made at various international venues and more                three-level breakdown provides a reasonable way to find
are scheduled for the upcoming year.                                      topics of interest. The Guide treats the selected topics in a
The second of the objectives, the desire to set a boundary for            manner compatible with major schools of thought and with
software engineering, motivates the fundamental organization              breakdowns generally found in industry and in software
of the Guide. The material that is recognized as being within             engineering literature and standards. The breakdowns of topics
this discipline is organized into the first ten Knowledge Areas           do not presume particular application domains, business uses,
(KAs) listed in Table 1. Each of these KAs is treated as a                management philosophies, development methods, and so
chapter in this Guide.                                                    forth. The extent of each topic’s description is only that needed
                                                                          to understand the generally accepted nature of the topics and
                                                                          for the reader to successfully find reference material. After all,
         Table 1 The SWEBOK Knowledge Areas (KAs)                         the Body of Knowledge is found in the reference material
     Software requirements                                                themselves, not in the Guide.
     Software design
                                                                          REFERENCE MATERIAL AND MATRIX
     Software construction
     Software testing                                                     To provide a topical access to the knowledge—the fourth of
     Software maintenance                                                 the project’s objectives—the Guide identifies reference
                                                                          material for each KA, including book chapters, refereed
     Software configuration management
                                                                          papers, or other recognized sources of authoritative
     Software engineering management                                      information. Each KA description also includes a matrix
     Software engineering process                                         relating the reference material to the listed topics. The total
     Software engineering tools and methods                               volume of cited literature is intended to be suitable for mastery
                                                                          through the completion of an undergraduate education plus
     Software quality
                                                                          four years of experience.
                                                                          In this edition of the Guide, all KAs were allocated around 500
                                                                          pages of reference material, and this was the specification the
In establishing a boundary, it is also important to identify what         associate editors were invited to apply. It may be argued that
disciplines share that boundary, and often a common                       some KAs, such as software design for instance, deserve more
intersection, with software engineering. To this end, the Guide           pages of reference material than others. Such modulation may
also recognizes eight related disciplines, listed in Table 2 (see         be applied in future editions of the Guide.
Chapter 12, “Related Disciplines of Software Engineering”).               It should be noted that the Guide does not attempt to be
Software engineers should, of course, have knowledge of                   comprehensive in its citations. Much material that is both
material from these fields (and the KA descriptions may make              suitable and excellent is not referenced. Material was selected
reference to them). It is not, however, an objective of the               in part because—taken as a collection—it provides coverage
SWEBOK Guide to characterize the knowledge of the related                 of the topics described.
disciplines, but rather what knowledge is viewed as specific to
software engineering.                                                     DEPTH OF TREATMENT
                                                                          From the outset, the question arose as to the depth of treatment

                                                                    1–2                                           © IEEE – 2004 Version
the Guide should provide. The project team adopted an                                                        given too much importance. As much as possible, pointers and
approach which supports the fifth of the project’s objectives—                                               links have been given in the text where relevant and useful.
providing a foundation for curriculum development,                                                           Links between KAs are not of the input-output type. The KAs
certification, and licensing. The editorial team applied the                                                 are meant to be views on the knowledge one should possess in
criterion of generally accepted knowledge, to be distinguished                                               software engineering with respect to the KA in question. The
from advanced and research knowledge (on the grounds of                                                      decomposition of the discipline within KAs and the order in
maturity) and from specialized knowledge (on the grounds of                                                  which the KAs are presented are not to be assimilated with any
generality of application). The definition comes from the                                                    particular method or model. The methods are described in the
Project Management Institute: “The generally accepted                                                        appropriate KA in the Guide, and the Guide itself is not one of
knowledge applies to most projects most of the time, and                                                     them.
widespread consensus validates its value and effectiveness.”4
                                                                                                             THE KNOWLEDGE AREAS

                                                           Generally Accepted                                Figure 1 maps out the eleven chapters and the important topics
                                                                                                             incorporated within them. The first five KAs are presented in
                                                           Established   traditional     practices
                  Practices used only for certain types




                                                                                                             traditional waterfall life-cycle sequence. However, this does
                                                           recommended by many organizations
                                                                                                             not imply that the Guide adopts or encourages the waterfall
                                                                                                             model, or any other model. The subsequent KAs are presented
                                                                                                             in alphabetical order, and those of the related disciplines are
    Specialized

                              of software




                                                                                                             presented in the last chapter. This is identical to the sequence
                                                           Advanced and Research                             in which they are presented in this Guide.
                                                           Innovative practices tested and used only
                                                           by some organizations and concepts still          STRUCTURE OF THE KA DESCRIPTIONS
                                                           being developed and tested in research            The KA descriptions are structured as follows.
                                                           organizations                                     In the introduction, a brief definition of the KA and an
                                                                                                             overview of its scope and of its relationship with other KAs
                                                                                                             are presented.
                                                                                                             The breakdown of topics constitutes the core of each KA
                                                      Figure 1 Categories of knowledge                       description, describing the decomposition of the KA into
                                                                                                             subareas, topics, and sub-topics. For each topic or sub-topic, a
However, the term “generally accepted” does not imply that                                                   short description is given, along with one or more references.
the designated knowledge should be uniformly applied to all                                                  The reference material was chosen because it is considered to
software engineering endeavors—each project’s needs                                                          constitute the best presentation of the knowledge relative to the
determine that—but it does imply that competent, capable                                                     topic, taking into account the limitations imposed on the
software engineers should be equipped with this knowledge                                                    choice of references (see above). A matrix links the topics to
for potential application. More precisely, generally accepted                                                the reference material.
knowledge should be included in the study material for the                                                   The last part of the KA description is the list of recommended
software engineering licensing examination that graduates                                                    references. Appendix A of each KA includes suggestions for
would take after gaining four years of work experience.                                                      further reading for those users who wish to learn more about
Although this criterion is specific to the US style of education                                             the KA topics. Appendix B presents the list of standards most
and does not necessarily apply to other countries, we deem it                                                relevant to the KA. Note that citations enclosed in square
useful. However, the two definitions of generally accepted                                                   brackets “[ ]” in the text identify recommended references,
knowledge should be seen as complementary.                                                                   while those enclosed in parentheses “( )” identify the usual
                                                                                                             references used to write or justify the text. The former are to be
LIMITATIONS RELATED TO THE BOOK FORMAT                                                                       found in the corresponding section of the KA and the latter in
                                                                                                             Appendix A of the KA.
The book format for which this edition was conceived has its
limitations. The nature of the contents would be better served                                               Brief summaries of the KA descriptions and appendices are
using a hypertext structure, where a topic would be linked to                                                given next.
topics other than the ones immediately preceding and
following it in a list.                                                                                      SOFTWARE REQUIREMENTS KA(SEE FIGURE 2, COLUMN A)
Some boundaries between KAs, subareas, and so on are also                                                    A requirement is defined as a property that must be exhibited
sometimes relatively arbitrary. These boundaries are not to be                                               in order to solve some real-world problem.
                                                                                                             The first knowledge subarea is Software Requirements
4
    A Guide to the Project Management Body of Knowledge, 2000 ed., Project                                   Fundamentals. It includes definitions of software requirements
    Management Institute, www.pmi.org.



© IEEE – 2004 Version                                                                                  1-3
themselves, but also of the major types of requirements:                 SOFTWARE DESIGN KA(SEE FIGURE 2, COLUMN B)
product vs. process, functional vs. nonfunctional, emergent              According to the IEEE definition [IEEE 610.12-90], design is
properties. The subarea also describes the importance of                 both “the process of defining the architecture, components,
quantifiable requirements and distinguishes between systems              interfaces, and other characteristics of a system or component”
and software requirements.                                               and “the result of [that] process.” The KA is divided into six
The second knowledge subarea is the Requirements Process,                subareas.
which introduces the process itself, orienting the remaining             The first subarea presents Software Design Fundamentals,
five subareas and showing how requirements engineering                   which form an underlying basis to the understanding of the
dovetails with the other software engineering processes. It              role and scope of software design. These are general software
describes process models, process actors, process support and            concepts, the context of software design, the software design
management, and process quality and improvement.                         process, and the enabling techniques for software design.
The third subarea is Requirements Elicitation, which is                  The second subarea groups together the Key Issues in Software
concerned with where software requirements come from and                 Design. They include concurrency, control and handling of
how the software engineer can collect them. It includes                  events, distribution of components, error and exception
requirement sources and elicitation techniques.                          handling and fault tolerance, interaction and presentation, and
The fourth subarea, Requirements Analysis, is concerned with             data persistence.
the process of analyzing requirements to                                 The third subarea is Software Structure and Architecture, the
      Detect and resolve conflicts between requirements                  topics of which are architectural structures and viewpoints,
      Discover the bounds of the software and how it must                architectural styles, design patterns, and, finally, families of
      interact with its environment                                      programs and frameworks.
      Elaborate system requirements to software requirements             The fourth subarea describes software Design Quality Analysis
Requirements analysis includes requirements classification,              and Evaluation. While there is a entire KA devoted to
conceptual modeling, architectural design and requirements               software quality, this subarea presents the topics specifically
allocation, and requirements negotiation.                                related to software design. These aspects are quality attributes,
                                                                         quality analysis, and evaluation techniques and measures.
The fifth subarea is Requirements Specification. Requirements
specification typically refers to the production of a document,          The fifth subarea is Software Design Notations, which are
or its electronic equivalent, that can be systematically                 divided into structural and behavioral descriptions.
reviewed, evaluated, and approved. For complex systems,                  The last subarea describes Software Design Strategies and
particularly those involving substantial non-software                    Methods. First, general strategies are described, followed by
components, as many as three different types of documents are            function-oriented design methods, object-oriented design
produced: system definition, system requirements                         methods, data-structure-centered design, component- based
specification, and software requirements specification. The              design, and others.
subarea describes all three documents and the underlying
activities.                                                              SOFTWARE CONSTRUCTION KA (SEE FIGURE 2, COLUMN C)
The sixth subarea is Requirements Validation, the aim of                 Software construction refers to the detailed creation of
which is to pick up any problems before resources are                    working, meaningful software through a combination of
committed to addressing the requirements. Requirements                   coding, verification, unit testing, integration testing, and
validation is concerned with the process of examining the                debugging. The KA includes three subareas.
requirements documents to ensure that they are defining the
right system (that is, the system that the user expects). It is          The first subarea is Software Construction Fundamentals. The
subdivided into descriptions of the conduct of requirements              first three topics are basic principles of construction:
reviews, prototyping, and model validation and acceptance                minimizing complexity, anticipating change, and constructing
                                                                         for verification. The last topic discusses standards for
tests.
                                                                         construction.
The seventh and last subarea is Practical Considerations. It
describes topics which need to be understood in practice. The            The second subarea describes Managing Construction. The
first topic is the iterative nature of the requirements process.         topics are construction models, construction planning, and
The next three topics are fundamentally about change                     construction measurement.
management and the maintenance of requirements in a state                The third subarea covers Practical Considerations. The topics
which accurately mirrors the software to be built, or that has           are construction design, construction languages, coding,
already been built. It includes change management,                       construction testing, reuse, construction quality, and
requirements attributes, and requirements tracing. The final             integration.
topic is requirements measurement.
                                                                         SOFTWARE TESTING (SEE FIGURE 2, COLUMN D)
                                                                         Software Testing consists of the dynamic verification of the

                                                                   1–4                                          © IEEE – 2004 Version
behavior of a program on a finite set of test cases, suitably              covers the topics of the organizational context for SCM,
selected from the usually infinite executions domain, against              constraints and guidance for SCM, planning for SCM, the
the expected behavior. It includes five subareas.                          SCM plan itself, and surveillance of SCM.
It begins with a description of Software Testing Fundamentals.             The second subarea is Software Configuration Identification,
First, the testing-related terminology is presented, then key              which identifies items to be controlled, establishes
issues of testing are described, and finally the relationship of           identification schemes for the items and their versions, and
testing to other activities is covered.                                    establishes the tools and techniques to be used in acquiring and
The second subarea is Test Levels. These are divided between               managing controlled items. The first topics in this subarea are
the targets of the tests and the objectives of the tests.                  identification of the items to be controlled and the software
                                                                           library.
The third subarea is Test Techniques. The first category
includes the tests based on the tester’s intuition and                     The third subarea is Software Configuration Control, which is
experience. A second group comprises specification-based                   the management of changes during the software life cycle. The
techniques, followed by code-based techniques, fault-based                 topics are: first, requesting, evaluating, and approving software
techniques, usage-based techniques, and techniques relative to             changes; second, implementing software changes; and third,
the nature of the application. A discussion of how to select and           deviations and waivers.
combine the appropriate techniques is also presented.                      The fourth subarea is Software Configuration Status
The fourth subarea covers Test-Related Measures. The                       Accounting. Its topics are software configuration status
measures are grouped into those related to the evaluation of               information and software configuration status reporting.
the program under test and the evaluation of the tests                     The fifth subarea is Software Configuration Auditing. It
performed.                                                                 consists of software functional configuration auditing,
The last subarea describes the Test Process and includes                   software physical configuration auditing, and in-process audits
practical considerations and the test activities.                          of a software baseline.
                                                                           The last subarea is Software Release Management and
SOFTWARE MAINTENANCE (SEE FIGURE 2, COLUMN E)                              Delivery, covering software building and software release
Once in operation, anomalies are uncovered, operating                      management.
environments change, and new user requirements surface.
The maintenance phase of the life cycle commences upon                     SOFTWARE     ENGINEERING MANAGEMENT (SEE FIGURE 3,
delivery, but maintenance activities occur much earlier. The               COLUMN G)
Software Maintenance KA is divided into four subareas.                     The Software Engineering Management KA addresses the
The first one presents Software Maintenance Fundamentals:                  management and measurement of software engineering. While
definitions and terminology, the nature of maintenance, the                measurement is an important aspect of all KAs, it is here that
need for maintenance, the majority of maintenance costs, the               the topic of measurement programs is presented. There are six
evolution of software, and the categories of maintenance.                  subareas for software engineering management. The first five
                                                                           cover software project management and the sixth describes
The second subarea groups together the Key Issues in Software              software measurement programs.
Maintenance. These are the technical issues, the management
issues, maintenance cost estimation, and software maintenance              The first subarea is Initiation and Scope Definition, which
measurement.                                                               comprises determination and negotiation of requirements,
                                                                           feasibility analysis, and process for the review and revision of
The third subarea describes the Maintenance Process. The                   requirements.
topics here are the maintenance processes and maintenance
activities.                                                                The second subarea is Software Project Planning and includes
                                                                           process planning, determining deliverables, effort, schedule
Techniques for Maintenance constitute the fourth subarea.                  and cost estimation, resource allocation, risk management,
These include program comprehension, re-engineering, and                   quality management, and plan management.
reverse engineering.
                                                                           The third subarea is Software Project Enactment. The topics
                                                                           here are implementation of plans, supplier contract
SOFTWARE CONFIGURATION MANAGEMENT (SEE FIGURE 3,                           management, implementation of measurement process,
COLUMN F)
                                                                           monitor process, control process, and reporting.
Software Configuration Management (SCM) is the discipline
of identifying the configuration of software at distinct points in         The fourth subarea is Review and Evaluation, which includes
time for the purpose of systematically controlling changes to              the topics of determining satisfaction of requirements and
the configuration and of maintaining the integrity and                     reviewing and evaluating performance.
traceability of the configuration throughout the system life               The fifth subarea describes Closure: determining closure and
cycle. This KA includes six subareas.                                      closure activities.
The first subarea is Management of the SCM Process. It                     Finally, the sixth subarea describes Software Engineering


© IEEE – 2004 Version                                                1-5
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004
Swebok guide 2004

More Related Content

Similar to Swebok guide 2004

Engineering Software Products An Introduction to M
Engineering Software Products An Introduction to MEngineering Software Products An Introduction to M
Engineering Software Products An Introduction to MTanaMaeskm
 
Introduccion a la Ingenieria
Introduccion a la IngenieriaIntroduccion a la Ingenieria
Introduccion a la IngenieriaCarol Morales
 
Voice wiki on mobile project report
Voice wiki on mobile project reportVoice wiki on mobile project report
Voice wiki on mobile project reportRahul E
 
Voice wiki on mobile project report
Voice wiki on mobile project reportVoice wiki on mobile project report
Voice wiki on mobile project reportRahul E
 
Crap shit head
Crap shit headCrap shit head
Crap shit headShash
 
IEEE Membership Awareness.pptx
IEEE Membership Awareness.pptxIEEE Membership Awareness.pptx
IEEE Membership Awareness.pptxDHRAUVGUPTA
 
Electrónica: PROTEUS design suite Visual Designer Help
Electrónica: PROTEUS design suite Visual Designer Help Electrónica: PROTEUS design suite Visual Designer Help
Electrónica: PROTEUS design suite Visual Designer Help SANTIAGO PABLO ALBERTO
 
Srs for virtual eucation
Srs for virtual eucationSrs for virtual eucation
Srs for virtual eucationSusheel Thakur
 
Software requirements specifications wp2
Software requirements specifications wp2Software requirements specifications wp2
Software requirements specifications wp2ambitlick
 
Benefits of IEEE Membership and Join IEEE.ppt
Benefits of IEEE Membership and Join IEEE.pptBenefits of IEEE Membership and Join IEEE.ppt
Benefits of IEEE Membership and Join IEEE.pptAhmedHussein521234
 
2_Benefits of IEEE Membership and Join IEEE.ppt
2_Benefits of IEEE Membership and Join IEEE.ppt2_Benefits of IEEE Membership and Join IEEE.ppt
2_Benefits of IEEE Membership and Join IEEE.pptPrashantkumar Chinamalli
 
Computer networking-principles-bonaventure-1-30-31-otc1
Computer networking-principles-bonaventure-1-30-31-otc1Computer networking-principles-bonaventure-1-30-31-otc1
Computer networking-principles-bonaventure-1-30-31-otc1javibadi
 
project report of social networking web sites
project report of social networking web sitesproject report of social networking web sites
project report of social networking web sitesGyanendra Pratap Singh
 
Design and Development of a Knowledge Community System
Design and Development of a Knowledge Community SystemDesign and Development of a Knowledge Community System
Design and Development of a Knowledge Community SystemHuu Bang Le Phan
 
Virtual private network full manual
Virtual private network full manualVirtual private network full manual
Virtual private network full manualKumar
 

Similar to Swebok guide 2004 (20)

Engineering Software Products An Introduction to M
Engineering Software Products An Introduction to MEngineering Software Products An Introduction to M
Engineering Software Products An Introduction to M
 
Introduccion a la Ingenieria
Introduccion a la IngenieriaIntroduccion a la Ingenieria
Introduccion a la Ingenieria
 
Acm 2005
Acm 2005Acm 2005
Acm 2005
 
Acm 2005
Acm 2005Acm 2005
Acm 2005
 
Voice wiki on mobile project report
Voice wiki on mobile project reportVoice wiki on mobile project report
Voice wiki on mobile project report
 
Voice wiki on mobile project report
Voice wiki on mobile project reportVoice wiki on mobile project report
Voice wiki on mobile project report
 
Srs
SrsSrs
Srs
 
Crap shit head
Crap shit headCrap shit head
Crap shit head
 
IEEE Membership Awareness.pptx
IEEE Membership Awareness.pptxIEEE Membership Awareness.pptx
IEEE Membership Awareness.pptx
 
Electrónica: PROTEUS design suite Visual Designer Help
Electrónica: PROTEUS design suite Visual Designer Help Electrónica: PROTEUS design suite Visual Designer Help
Electrónica: PROTEUS design suite Visual Designer Help
 
Wishbone
WishboneWishbone
Wishbone
 
Srs for virtual eucation
Srs for virtual eucationSrs for virtual eucation
Srs for virtual eucation
 
Software requirements specifications wp2
Software requirements specifications wp2Software requirements specifications wp2
Software requirements specifications wp2
 
Benefits of IEEE Membership and Join IEEE.ppt
Benefits of IEEE Membership and Join IEEE.pptBenefits of IEEE Membership and Join IEEE.ppt
Benefits of IEEE Membership and Join IEEE.ppt
 
2_Benefits of IEEE Membership and Join IEEE.ppt
2_Benefits of IEEE Membership and Join IEEE.ppt2_Benefits of IEEE Membership and Join IEEE.ppt
2_Benefits of IEEE Membership and Join IEEE.ppt
 
Computer networking-principles-bonaventure-1-30-31-otc1
Computer networking-principles-bonaventure-1-30-31-otc1Computer networking-principles-bonaventure-1-30-31-otc1
Computer networking-principles-bonaventure-1-30-31-otc1
 
project report of social networking web sites
project report of social networking web sitesproject report of social networking web sites
project report of social networking web sites
 
Design and Development of a Knowledge Community System
Design and Development of a Knowledge Community SystemDesign and Development of a Knowledge Community System
Design and Development of a Knowledge Community System
 
Virtual private network full manual
Virtual private network full manualVirtual private network full manual
Virtual private network full manual
 
ZM Storyboard
ZM StoryboardZM Storyboard
ZM Storyboard
 

Recently uploaded

SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 

Recently uploaded (20)

SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 

Swebok guide 2004

  • 1. Guide to the Software Engineering Body of Knowledge 2004 Version SWEBOK ® A project of the IEEE Computer Society Professional Practices Committee © IEEE – 2004 Version ®SWEBOK is an official service mark of the IEEE
  • 2. © IEEE – 2004 Version
  • 3. Guide to the Software Engineering Body of Knowledge 2004 Version SWEBOK® Executive Editors Alain Abran, École de technologie supérieure James W. Moore, The MITRE Corp. Editors Pierre Bourque, École de technologie supérieure Robert Dupuis, Université du Québec à Montréal Project Champion Leonard L. Tripp, Chair, Professional Practices Committee, IEEE Computer Society (2001-2003) http://computer.org Los Alamitos, California Washington • Brussels • Tokyo © IEEE – 2004 Version ®SWEBOK is an official service mark of the IEEE
  • 4. Copyright © 2004 by The Institute of Electrical and Electronics Engineers, Inc. All rights reserved. Copyright and Reprint Permissions: This document may be copied, in whole or in part, in any form or by any means, as is, or with alterations, provided that (1) alterations are clearly marked as alterations and (2) this copyright notice is included unmodified in any copy. Any other use or distribution of this document is prohibited without the prior express permission of IEEE. You use this document on the condition that you indemnify and hold harmless IEEE from any and all liability or damages to yourself or your hardware or software, or third parties, including attorneys' fees, court costs, and other related costs and expenses, arising out of your use of this document irrespective of the cause of said liability. IEEE MAKES THIS DOCUMENT AVAILABLE ON AN "AS IS" BASIS AND MAKES NO WARRANTY, EXPRESS OR IMPLIED, AS TO THE ACCURACY, CAPABILITY, EFFICIENCY MERCHANTABILITY, OR FUNCTIONING OF THIS DOCUMENT. IN NO EVENT WILL IEEE BE LIABLE FOR ANY GENERAL, CONSEQUENTIAL, INDIRECT, INCIDENTAL, EXEMPLARY, OR SPECIAL DAMAGES, EVEN IF IEEE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. IEEE Computer Society Order Number C2330 ISBN 0-7695-2330-7 Library of Congress Number 2005921729 Additional copies may be ordered from: IEEE Computer Society IEEE Service Center IEEE Computer Society Customer Service Center 445 Hoes Lane Asia/Pacific Office 10662 Los Vaqueros Circle P.O. Box 1331 Watanabe Bldg., 1-4-2 P.O. Box 3014 Piscataway, NJ 08855-1331 Minami-Aoyama Los Alamitos, CA 90720-1314 Tel: + 1-732-981-0060 Minato-ku, Tokyo 107-0062 Tel: + 1-714-821-8380 Fax: + 1-732-981-9667 JAPAN Fax: + 1-714-821-4641 http://shop.ieee.org/store/ Tel: + 81-3-3408-3118 E-mail: cs.books@computer.org customer-service@ieee.org Fax: + 81-3-3408-3553 tokyo.ofc@computer.org Publisher: Angela Burgess Group Managing Editor, CS Press: Deborah Plummer Advertising/Promotions: Tom Fink Production Editor: Bob Werner Printed in the United States of America © IEEE – 2004 Version
  • 5. TABLE OF CONTENTS FOREWORD ................................................................................................................................................................vii PREFACE..................................................................................................................................................................xvii CHAPTER 1 INTRODUCTION TO THE GUIDE ..................................................................................................1-1 CHAPTER 2 SOFTWARE REQUIREMENTS .......................................................................................................2-1 CHAPTER 3 SOFTWARE DESIGN....................................................................................................................3-1 CHAPTER 4 SOFTWARE CONSTRUCTION .......................................................................................................4-1 CHAPTER 5 SOFTWARE TESTING ..................................................................................................................5-1 CHAPTER 6 SOFTWARE MAINTENANCE ........................................................................................................6-1 CHAPTER 7 SOFTWARE CONFIGURATION MANAGEMENT .............................................................................7-1 CHAPTER 8 SOFTWARE ENGINEERING MANAGEMENT .................................................................................8-1 CHAPTER 9 SOFTWARE ENGINEERING PROCESS ...........................................................................................9-1 CHAPTER 10 SOFTWARE ENGINEERING TOOLS AND METHODS ...................................................................10-1 CHAPTER 11 SOFTWARE QUALITY ...............................................................................................................11-1 CHAPTER 12 RELATED DISCIPLINES OF SOFTWARE ENGINEERING ..............................................................12-1 APPENDIX A KNOWLEDGE AREA DESCRIPTION SPECIFICATIONS FOR THE IRONMAN VERSION OF THE GUIDE TO THE SOFTWARE ENGINEERING BODY OF KNOWLEDGE ............................................................................................................A-1 APPENDIX B EVOLUTION OF THE GUIDE TO THE SOFTWARE ENGINEERING BODY OF KNOWLEDGE ............................................................................................................ B-1 APPENDIX C ALLOCATION OF IEEE AND ISO SOFTWARE ENGINEERING STANDARDS TO SWEBOK KNOWLEDGE AREAS .................................................................................................. C-1 APPENDIX D CLASSIFICATION OF TOPICS ACCORDING TO BLOOM’S TAXONOMY ........................................D-1 IEEE – 2004 Version v
  • 6. vi
  • 7. FOREWORD 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/IEC12207, 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. 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. © IEEE – 2004 Version vii
  • 8. 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 for the Establishment of Software Engineering as a Profession (1998-1999) Chair, Software Engineering Standards Committee, IEEE Computer Society (1992-1998) viii © IEEE – 2004 Version
  • 9. ASSOCIATE EDITORS The following persons served as Associate Editors for either the Trial version published in 2001 or for the 2004 version. Software Requirements Peter Sawyer and Gerald Kotonya, Computing Department, Lancaster University, UK, {p.sawyer}{g.kotonya}@lancaster.ac.uk Software Design Guy Tremblay, Département d’informatique, UQAM, Canada, tremblay.guy@uqam.ca Software Construction Steve McConnell, Construx Software, USA, Steve.McConnell@construx.com Terry Bollinger, the MITRE Corporation, USA, terry@mitre.org Philippe Gabrini, Département d’informatique, UQAM, Canada, gabrini.philippe@uqam.ca Louis Martin, Département d’informatique, UQAM, Canada, martin.louis@uqam.ca Software Testing Antonia Bertolino and Eda Marchetti, ISTI-CNR, Italy, {antonia.bertolino}{eda.marchetti}@isti.cnr.it Software Maintenance Thomas M. Pigoski, Techsoft Inc., USA, tmpigoski@techsoft.com Alain April, École de technologie supérieure, Canada, aapril@ele.etsmtl.ca Software Configuration Management John A. Scott, Lawrence Livermore National Laboratory, USA, scott7@llnl.gov David Nisse, USA, nissed@worldnet.att.net Software Engineering Management Dennis Frailey, Raytheon Company, USA, DJFrailey@Raytheon.com Stephen G. MacDonell, Auckland University of technology, New Zealand, smacdone@aut.ac.nz Andrew R. Gray, University of Otago, New Zealand Software Engineering Process Khaled El Emam, served while at the Canadian National Research Council, Canada, khaled.el-emam@nrc-cnrc.gc.ca Software Engineering Tools and Methods David Carrington, School of Information Technology and Electrical Engineering, The University of Queensland, Australia, davec@itee.uq.edu.au Software Quality Alain April, École de technologie supérieure, Canada, aapril@ele.etsmtl.ca Dolores Wallace, retired from the National Institute of Standards and Technology, USA, Dolores.Wallace@nist.gov Larry Reeker, NIST, USA, Larry.Reeker@nist.gov References Editor Marc Bouisset, Département d’informatique, UQAM, Bouisset.Marc@uqam.ca © IEEE – 2004 Version ix
  • 10. INDUSTRIAL ADVISORY BOARD At the time of the publication, the following people formed the Industrial Advisory Board: Mario R. Barbacci, Software Engineering Institute, representing the IEEE Computer Society Carl Chang, representing Computing Curricula 2001 François Coallier, École de technologie supérieure, speaking as ISO/IEC JTC 1 / SC7 Chairman Charles Howell, The MITRE Corporation Anatol Kark, National Research Council of Canada Philippe Kruchten, University of British Columbia, served as representative of Rational Software Laure Le Bars, SAP Labs (Canada) Steve McConnell, Construx Software Dan Nash, Raytheon Company Fred Otto, Canadian Council of Professional Engineers (CCPE) Richard Metz, The Boeing Company Larry Reeker, National Institute of Standards and Technology, Department of Commerce, USA The following persons served along with the IAB in the Executive Change Control Board for the 2004 edition: Donald Bagert, Rose-Hulman Institute of Technology, representing the IEEE Computer Society Professional Practices Committee Ann Sobel, Miami University, representing the Computing Curricula Software Engineering Steering Committee x © IEEE – 2004 Version
  • 11. PANEL OF EXPERTS The following persons served on the panel of experts for the preparation of the Trial version of the Guide: Steve McConnell, Construx Software Roger Pressman, R.S. Pressman and Associates Ian Sommerville, Lancaster University, UK © IEEE – 2004 Version xi
  • 12. REVIEW TEAM The following people participated in the review process of this Guide for the Trial version and/or for the 2004 version. Abbas, Rasha, Australia Bierwolf, Robert, The Charette, Robert, USA Abran, Alain, Canada Netherlands Chevrier, Marielle, Canada Accioly, Carlos, Brazil Bisbal, Jesus, Ireland Chi, Donald, USA Ackerman, Frank, USA Boivin, Michel, Canada Chiew, Vincent, Canada Akiyama, Yoshihiro, Japan Bolton, Michael, Canada Chilenski, John, USA Al-Abdullah, Mohammad, USA Bomitali, Evelino, Italy Chow, Keith, Italy Alarcon, Miren Idoia, Spain Bonderer, Reto, Switzerland Ciciliani, Ricardo, Argentina Alawy, Ahmed, USA Bonk, Francis, USA Clark, Glenda, USA Alleman, Glen, USA Booch, Grady, USA Cleavenger, Darrell, USA Allen, Bob, Canada Booker, Glenn, USA Cloos, Romain, Luxembourg Allen, David, USA Börstler, Jürgen, Sweden Coallier, François, Canada Amorosa, Francesco, Italy Borzovs, Juris, Latvia Coblentz, Brenda, USA Amyot, Daniel, Canada Botting, Richard, USA Cohen, Phil, Australia Andrade, Daniel, Brazil Bourque, Pierre, Canada Collard, Ross, New Zealand April, Alain, Canada Bowen, Thomas, USA Collignon, Stephane, Australia Arroyo-Figueror, Javier, USA Boyd, Milt, USA Connors, Kathy Jo, USA Ashford, Sonny, USA Boyer, Ken, USA Cooper, Daniel, USA Atsushi, Sawada, Japan Brashear, Phil, USA Councill, Bill, USA Backitis Jr., Frank, USA Briggs, Steve, USA Cox, Margery, USA Bagert, Donald, USA Bright, Daniela, USA Cunin, Pierre-Yves, France Baker, Jr., David, USA Brosseau, Jim, Canada DaLuz, Joseph, USA Baker, Theodore, USA Brotbeck, George, USA Dampier, David, USA Baldwin, Mark, USA Brown, Normand, Canada Daneva, Maya, Canada Bales, David, UK Bruhn, Anna, USA Daneva, Maya, Canada Bamberger, Judy, USA Brune, Kevin, USA Daughtry, Taz, USA Banerjee, Bakul, USA Bryant, Jeanne, USA Davis, Ruth, USA Barber, Scott, USA Buglione, Luigi, Italy De Cesare, Sergio, UK Barker, Harry, UK Bullock, James, USA Dekleva, Sasa, USA Barnes, Julie, USA Burns, Robert, USA Del Castillo, Federico, Peru Barney, David, Australia Burnstein, Ilene, USA Del Dago, Gustavo, Argentina Barros, Rafael, Colombia Byrne, Edward, USA DeWeese, Perry, USA Bastarache, Louis, Canada Calizaya, Percy, Peru Di Nunno, Donn, USA Bayer, Steven, USA Carreon, Juan, USA Diaz-Herrera, Jorge, USA Beaulac, Adeline, Canada Carroll, Sue, USA Dieste, Oscar, Spain Beck, William, USA Carruthers, Kate, Australia Dion, Francis, Canada Beckman, Kathleen, USA Caruso, Richard, USA Dixon, Wes, USA Below, Doreen, USA Carvalho, Paul, Canada Dolado, Javier, Spain Benediktsson, Oddur, Iceland Case, Pam, USA Donaldson, John, UK Ben-Menachem, Mordechai, Cavanaugh, John, USA Dorantes, Marco, Mexico Israel Celia, John A., USA Dorofee, Audrey, USA Bergeron, Alain, Canada Chalupa Sampaio, Alberto Douglass, Keith, Canada Berler, Alexander, Greece Antonio, Portugal Du, Weichang, Canada Bernet, Martin, USA Chan, F.T., Hong Kong Duben, Anthony, USA Bernstein, Larry, USA Chan, Keith, Hong Kong Dudash, Edward, USA Bertram, Martin, Germany Chandra, A.K., India Duncan, Scott, USA Bialik, Tracy, USA Chang, Wen-Kui, Taiwan Duong, Vinh, Canada Bielikova, Maria, Slovakia Chapin, Ned, USA Durham, George, USA xii © IEEE – 2004 Version
  • 13. Dutil, Daniel, Canada Gresse von Wangenheim, Jones, James E., USA Dutton, Jeffrey, USA Christiane, Brazil Jones, Alan, UK Ebert, Christof, France Grigonis, George, USA Jones, James, USA Edge, Gary, USA Gupta, Arun, USA Jones, Larry, Canada Edwards, Helen Maria, UK Gustafson, David, USA Jones, Paul, USA El-Kadi, Amr, Egypt Gutcher, Frank, USA Ju, Dehua, China Endres, David, USA Haas, Bob, USA Juan-Martinez, Manuel- Engelmann, Franz, Switzerland Hagar, Jon, USA Fernando, Spain Escue, Marilyn, USA Hagstrom, Erick, USA Juhasz, Zoltan, Hungary Espinoza, Marco, Peru Hailey, Victoria, Canada Juristo, Natalia, Spain Fay, Istvan, Hungary Hall, Duncan, New Zealand Kaiser, Michael, Switzerland Fayad, Mohamed, USA Haller, John, USA Kambic, George, USA Fendrich, John, USA Halstead-Nussloch, Richard, Kamthan, Pankaj, Canada Ferguson, Robert, USA USA Kaner, Cem, USA Fernandez, Eduardo, USA Hamm, Linda, USA Kark, Anatol, Canada Fernandez-Sanchez, Jose Luis, Hankewitz, Lutz, Germany Kasser, Joe, USA Spain Harker, Rob, USA Kasser, Joseph, Australia Filgueiras, Lucia, Brazil Hart, Hal, USA Katz, Alf, Australia Finkelstein, Anthony, UK Hart, Ronald, USA Kececi, Nihal, Canada Flinchbaugh, Scott, USA Hartner, Clinton, USA Kell, Penelope, USA Forrey, Arden, USA Hayeck, Elie, USA Kelly, Diane, Canada Fortenberry, Kirby, USA He, Zhonglin, UK Kelly, Frank, USA Foster, Henrietta, USA Hedger, Dick, USA Kenett, Ron, Israel Fowler, Martin, USA Hefner, Rick, USA Kenney, Mary L., USA Fowler, John Jr., USA Heinrich, Mark, USA Kerievsky, Joshua, USA Fox, Christopher, USA Heinze, Sherry, Canada Kerr, John, USA Frankl, Phyllis, USA Hensel, Alan, USA Kierzyk, Robert, USA Freibergs, Imants, Latvia Herrmann, Debra, USA Kinsner, W., Canada Frezza, Stephen, USA Hesse, Wolfgang, Germany Kirkpatrick, Harry, USA Fruehauf, Karol, Switzerland Hilburn, Thomas, USA Kittiel, Linda, USA Fuggetta, Alphonso, Italy Hill, Michael, USA Klappholz, David, USA Fujii, Roger, USA Ho, Vinh, Canada Klein, Joshua, Israel FUSCHI, David Luigi, Italy Hodgen, Bruce, Australia Knight, Claire, UK Fuschi, David Luigi, Italy Hodges, Brett, Canada Knoke, Peter, USA Gabrini, Philippe, Canada Hoffman, Douglas, Canada Ko, Roy, Hong Kong Gagnon, Eric, Canada Hoffman, Michael, USA Kolewe, Ralph, Canada Ganor, Eitan, Israel Hoganson, Tammy, USA Komal, Surinder Singh, Canada Garbajosa, Juan, Spain Hollocker, Chuck, USA Kovalovsky, Stefan, Austria Garceau, Benoît, Canada Horch, John, USA Krauth, Péter, Hungary Garcia-Palencia, Omar, Howard, Adrian, UK Krishnan, Nirmala, USA Colombia Huang, Hui Min, USA Kromholz, Alfred, Canada Garner, Barry, USA Hung, Chih-Cheng, USA Kruchten, Philippe, Canada Gelperin, David, USA Hung, Peter, USA Kuehner, Nathanael, Canada Gersting, Judith, Hawaii Hunt, Theresa, USA Kwok, Shui Hung, Canada Giesler, Gregg, USA Hunter, John, USA Lacroix, Dominique, Canada Gil, Indalecio, Spain Hvannberg, Ebba Thora, Iceland LaMotte, Stephen W., USA Gilchrist, Thomas, USA Hybertson, Duane, USA Land, Susan, USA Giurescu, Nicolae, Canada Ikiz, Seckin, Turkey Lange, Douglas, USA Glass, Robert, USA Iyengar, Dwaraka, USA Laporte, Claude, Canada Glynn, Garth, UK Jackelen, George, USA Lawlis, Patricia, USA Goers, Ron, USA Jaeger, Dawn, USA Le, Thach, USA Gogates, Gregory, USA Jahnke, Jens, Canada Leavitt, Randal, Canada Goldsmith, Robin, USA James, Jean, USA LeBel, Réjean, Canada Goodbrand, Alan, Canada Jino, Mario, Brazil Leciston, David, USA Gorski, Janusz, Poland Johnson, Vandy, USA Lee, Chanyoung, USA Graybill, Mark, USA Jones, Griffin, USA Lehman, Meir (Manny), UK © IEEE – 2004 Version xiii
  • 14. Leigh, William, USA Miranda, Eduardo, Canada Phister, Paul, USA Lembo, Jim, USA Mistrik, Ivan, Germany Phister, Jr., Paul, USA Lenss, John, USA Mitasiunas, Antanas, Lithuania Piattini, Mario, Spain Leonard, Eugene, USA Modell, Howard, USA Piersall, Jeff, USA Lethbridge, Timothy, Canada Modell, Staiger,USA Pillai, S.K., India Leung, Hareton, Hong Kong Modesitt, Kenneth, USA Pinder, Alan, UK Lever, Ronald, The Netherlands Moland, Kathryn, USA Pinheiro, Francisco A., Brazil Levesque, Ghislain, Canada Moldavsky, Symon, Ukraine Plekhanova, Valentina, UK Ley, Earl, USA Montequín, Vicente R., Spain Poon, Peter, USA Linders, Ben, Netherlands Moreno, Ana Maria, Spain Poppendieck, Mary, USA Linscomb, Dennis, USA Mosiuoa, Tseliso, Lesotho Powell, Mace, USA Little, Joyce Currie, USA Moudry, James, USA Predenkoski, Mary, USA Logan, Jim, USA Msheik, Hamdan, Canada Prescott, Allen, USA Long, Carol, UK Mularz, Diane, USA Pressman, Roger, USA Lounis, Hakim, Canada Mullens, David, USA Price, Art, USA Low, Graham, Australia Müllerburg, Monika, Germany Price, Margaretha, USA Lutz, Michael, USA Murali, Nagarajan, Australia Pullum, Laura, USA Lynch, Gary, USA Murphy, Mike, USA Purser, Keith, USA Machado, Cristina, Brazil Napier, John, USA Purssey, John, Australia MacKay, Stephen, Canada Narasimhadevara, Sudha, Pustaver, John, USA MacKenzie, Garth, USA Canada Quinn, Anne, USA MacNeil, Paul, USA Narawane, Ranjana, India Radnell, David, Australia Magel, Kenneth, USA Narayanan, Ramanathan, India Rae, Andrew, UK Mains, Harold, USA Navarro Ramirez, Daniel, Rafea, Ahmed, Egypt Malak, Renee, USA Mexico Ramsden, Patrick, Australia Maldonado, José Carlos, Brazil Navas Plano, Francisco, Spain Rao, N.Vyaghrewara, India Marcos, Esperanza, Spain Navrat, Pavol, Slovakia Rawsthorne, Dan, USA Marinescu, Radu, Romania Neumann, Dolly, USA Reader, Katherine, USA Marm, Waldo, Peru Nguyen-Kim, Hong, Canada Reddy, Vijay,USA Marusca, Ioan, Canada Nikandros, George, Australia Redwine, Samuel, USA Matlen, Duane, USA Nishiyama, Tetsuto, Japan Reed, Karl, Australia Matsumoto, Yoshihiro, Japan Nunn, David, USA Reedy, Ann, USA McBride, Tom, Australia O'Donoghue, David, Ireland Reeker, Larry, USA McCarthy, Glenn, USA Oliver, David John, Australia Rethard, Tom, USA McChesney, Ian, UK Olson, Keith, USA Reussner, Ralf, Germany McCormick, Thomas, Canada Oskarsson, Östen, Sweden Rios, Joaquin, Spain McCown, Christian, USA Ostrom, Donald, USA Risbec, Philippe, France McDonald, Jim, USA Oudshoorn, Michael, Australia Roach, Steve, USA McGrath Carroll, Sue, USA Owen, Cherry, USA Robillard, Pierre, Canada McHutchison, Diane, USA Pai, Hsueh-Ieng, Canada Rocha, Zalkind, Brazil McKinnell, Brian, Canada Parrish, Lee, USA Rodeiro Iglesias, Javier, Spain McMichael, Robert, USA Parsons, Samuel, USA Rodriguez-Dapena, Patricia, McMillan, William, USA Patel, Dilip, UK Spain McQuaid, Patricia, USA Paulk, Mark, USA Rogoway, Paul, Israel Mead, Nancy, USA Pavelka, Jan, Czech Republic Rontondi, Guido, Italy Meeuse, Jaap, The Netherlands Pavlov, Vladimir, Ukraine Roose, Philippe, France Meier, Michael, USA Pawlyszyn, Blanche, USA Rosca, Daniela, USA Meisenzahl, Christopher, USA Pecceu, Didier, France Rosenberg, Linda, USA Melhart, Bonnie, USA Perisic, Branko, Yugoslavia Rourke, Michael, Australia Mengel, Susan, USA Perry, Dale, USA Rout, Terry, Australia Meredith, Denis, USA Peters, Dennis, Canada Rufer, Russ, USA Meyerhoff, Dirk, Germany Petersen, Erik, Australia Ruiz, Francisco, Spain Mili, Hafedh, Canada Pfahl, Dietmar, Germany Ruocco, Anthony, USA Miller, Chris, Netherlands Pfeiffer, Martin, Germany Rutherfoord, Rebecca, USA Miller, Keith, USA Phillips, Dwayne, USA Ryan, Michael, Ireland Miller, Mark, USA Phipps, Robert, USA Salustri, Filippo, Canada xiv © IEEE – 2004 Version
  • 15. Salustri, Filippo, Canada Soundarajan, Neelam, USA Urbanowicz, Theodore, USA Salwin, Arthur, USA Sousa Santos, Frederico, Van Duine, Dan, USA Sanden, Bo, USA Portugal Van Ekris, Jaap, Netherlands Sandmayr, Helmut, Switzerland Spillers, Mark, USA Van Oosterhout, Bram, Australia Santana Filho, Ozeas Vieira, Spinellis, Diomidis, Greece Vander Plaats, Jim, USA Brazil Splaine, Steve, USA Vegas, Sira, Spain Sato, Tomonobu, Japan Springer, Donald, USA Verner, June, USA satyadas, antony, USA Staiger, John, USA Villas-Boas, André, Brazil Satyadas, Antony, USA Starai, Thomas, USA Vollman, Thomas, USA Schaaf, Robert, USA Steurs, Stefan, Belgium Walker, Richard, Australia Scheper, Charlotte, USA St-Pierre, Denis, Canada Walsh, Bucky, USA Schiffel, Jeffrey, USA Stroulia, Eleni, Canada Wang, Yingxu, Sweden Schlicht, Bill, USA Subramanian, K.S., India Wear, Larry, USA Schrott, William, USA Sundaram, Sai, UK Weigel, richard, USA Schwarm, Stephen, USA Swanek, James, USA Weinstock, Charles, USA Schweppe, Edmund, USA Swearingen, Sandra, USA Wenyin, Liu, China Sebern, Mark, USA Szymkowiak, Paul, Canada Werner, Linda, USA Seffah, Ahmed, Canada Tamai, Tetsuo, Japan Wheeler, David, USA Selby, Nancy, USA Tasker, Dan, New Zealand White, Nathan, USA Selph, William, USA Taylor, Stanford, USA White, Stephanie, USA Sen, Dhruba, USA Terekhov, Andrey A., Russian Whitmire, Scott, USA Senechal, Raymond, USA Federation Wijbrans, Klaas, The Sepulveda, Christian, USA Terski, Matt, USA Netherlands Setlur, Atul, USA Thayer, Richard, USA Wijbrans-Roodbergen, Margot, Sharp, David, USA Thomas, Michael, USA The Netherlands Shepard, Terry, Canada Thompson, A. Allan, Australia Wilkie, Frederick, UK Shepherd, Alan, Germany Thompson, John Barrie, UK Wille, Cornelius, Germany Shillato, Rrobert W, USA Titus, Jason, USA Wilson, Charles, USA Shintani, Katsutoshi, Japan Tockey, Steve, USA Wilson, Leon, USA Silva, Andres, Spain Tovar, Edmundo, Spain Wilson, Russell, USA Silva, Andres, Spain Towhidnejad, Massood, USA Woechan, Kenneth, USA Singer, Carl, USA Trellue, Patricia, USA Woit, Denise, Canada Sinnett, Paul, UK Trèves, Nicolas, France Yadin, Aharon, Israel Sintzoff, André, France Troy, Elliot, USA Yih, Swu, Taiwan Sitte, Renate, Australia Tsui, Frank, USA Young, Michal, USA Sky, Richard, USA Tsuneo, Furuyama, Japan Yrivarren, Jorge, Peru Smilie, Kevin, USA Tuohy, Kenney, USA Znotka, Juergen, Germany Smith, David, USA Tuohy, Marsha P., USA Zuser, Wolfgang, Austria Sophatsathit, Peraphon, Thailand Turczyn, Stephen, USA Zvegintzov, Nicholas, USA Sorensen, Reed, USA Upchurch, Richard, USA Zweben, Stu, USA © IEEE – 2004 Version xv
  • 16. The following motion was unanimously adopted by the Industrial Advisory Board on 6 February 2004. The Industrial Advisory Board finds that the Software Engineering Body of Knowledge project initiated in 1998 has been successfully completed; and endorses the 2004 Version of the Guide to the SWEBOK and commends it to the IEEE Computer Society Board of Governors for their approval. The following motion was adopted by the IEEE Computer Society Board of Governors in February 2004. MOVED, that the Board of Governors of the IEEE Computer Society approves the 2004 Edition of the Guide to the Software Engineering Body of Knowledge and authorizes the Chair of the Professional Practices Committee to proceed with printing. xvi © IEEE – 2004 Version
  • 17. PREFACE Software engineering is an emerging discipline and has long offered a certification for computing there are unmistakable trends indicating an increasing professionals. level of maturity: All of these efforts are based upon the presumption Several universities throughout the world offer that there is a Body of Knowledge that should be undergraduate degrees in software engineering. mastered by practicing software engineers. The Body For example, such degrees are offered at the of Knowledge exists in the literature that has University of New South Wales (Australia), accumulated over the past thirty years. This book McMaster University (Canada), the Rochester provides a Guide to that Body of Knowledge. Institute of Technology (US), the University of Sheffield (UK), and other universities. PURPOSE In the US, the Engineering Accreditation The purpose of the Guide to the Software Engineering Commission of the Accreditation Board for Body of Knowledge is to provide a consensually Engineering and Technology (ABET) is validated characterization of the bounds of the responsible for the accreditation of undergraduate software engineering discipline and to provide a software engineering programs. topical access to the Body of Knowledge supporting The Canadian Information Processing Society has that discipline. The Body of Knowledge is subdivided published criteria to accredit software engineering into ten software engineering Knowledge Areas (KA) undergraduate university programs. plus an additional chapter providing an overview of the The Software Engineering Institute’s Capability KAs of strongly related disciplines. The descriptions of Maturity Model for Software (SW CMM) and the the KAs are designed to discriminate among the new Capability Maturity Model Integration various important concepts, permitting readers to find (CMMI) are used to assess organizational their way quickly to subjects of interest. Upon finding capability for software engineering. The famous a subject, readers are referred to key papers or book ISO 9000 quality management standards have chapters selected because they succinctly present the been applied to software engineering by the new knowledge. ISO/IEC 90003. In browsing the Guide, readers will note that the The Texas Board of Professional Engineers has content is markedly different from computer science. begun to license professional software engineers. Just as electrical engineering is based upon the science of physics, software engineering should be based, The Association of Professional Engineers and among other things, upon computer science. In these Geoscientists of British Columbia (APEGBC) has two cases, though, the emphasis is necessarily begun registering software professional engineers, different. Scientists extend our knowledge of the laws and the Professional Engineers of Ontario (PEO) of nature while engineers apply those laws of nature to has also announced requirements for licensing. build useful artifacts, under a number of constraints. The Association for Computing Machinery Therefore, the emphasis of the Guide is placed on the (ACM) and the Computer Society of the Institute construction of useful software artifacts. of Electrical and Electronics Engineers (IEEE) Readers will also notice that many important aspects of have jointly developed and adopted a Code of information technology that may constitute important Ethics and Professional Practice for software software engineering knowledge are not covered in the engineering professionals.1 Guide, including specific programming languages, The IEEE Computer Society offers the Certified relational databases, and networks. This is a Software Development Professional certification consequence of an engineering-based approach. In all for software engineering. The Institute for fields—not only computing—the designers of Certification of Computing Professionals (ICCP) engineering curricula have realized that specific technologies are replaced much more rapidly than the engineering work force. An engineer must be equipped 1 with the essential knowledge that supports the The ACM/CS Software Engineering Code of Ethics and Professional Practice can be found at selection of the appropriate technology at the http://www.computer.org/certification/ethics.htm. appropriate time in the appropriate circumstance. For © IEEE – 2004 Version xvii
  • 18. example, software might be built in Fortran using organizations in need of a consistent view of software functional decomposition or in C++ using object- engineering for defining education and training oriented techniques. The techniques for software requirements, classifying jobs, developing configuring instances of those systems would be quite performance evaluation policies, or specifying different. But, the principles and objectives of software development tasks. It also addresses configuration management remain the same. The practicing, or managing, software engineers and the Guide therefore does not focus on the rapidly changing officials responsible for making public policy technologies, although their general principles are regarding licensing and professional guidelines. In described in relevant KAs. addition, professional societies and educators defining These exclusions demonstrate that this Guide is the certification rules, accreditation policies for necessarily incomplete. The Guide covers software university curricula, and guidelines for professional engineering knowledge that is necessary but not practice will benefit from SWEBOK, as well as the sufficient for a software engineer. Practicing software students learning the software engineering profession engineers will need to know many things about and educators and trainers engaged in defining computer science, project management, and systems curricula and course content. engineering—to name a few—that fall outside the Body of Knowledge characterized by this Guide. EVOLUTION OF THE GUIDE However, stating that this information should be known by software engineers is not the same as stating From 1993 to 2000, the IEEE Computer Society and that this knowledge falls within the bounds of the the Association for Computing Machinery (ACM) cooperated in promoting the professionalization of software engineering discipline. Instead, it should be stated that software engineers need to know some software engineering through their joint Software things taken from other disciplines—and that is the Engineering Coordinating Committee (SWECC). The Code of Ethics was completed under stewardship of approach adopted in this Guide. So, this Guide characterizes the Body of Knowledge falling within the the SWECC primarily through volunteer efforts. The scope of software engineering and provides references SWEBOK project was initiated by the SWECC in 1998. to relevant information from other disciplines. A chapter of the Guide provides a taxonomical overview The SWEBOK project’s scope, the variety of of the related disciplines derived from authoritative communities involved, and the need for broad sources. participation suggested a need for full-time rather than The emphasis on engineering practice leads the Guide volunteer management. For this purpose, the IEEE toward a strong relationship with the normative Computer Society contracted the Software Engineering literature. Most of the computer science, information Management Research Laboratory at the Université du technology, and software engineering literature Québec à Montréal (UQAM) to manage the effort. In provides information useful to software engineers, but recent years, UQAM has been joined by the École de a relatively small portion is normative. A normative technologie supérieure, Montréal, Québec. document prescribes what an engineer should do in a The project plan comprised three successive phases: specified situation rather than providing information Strawman, Stoneman, and Ironman. An early that might be helpful. The normative literature is prototype, Strawman, demonstrated how the project validated by consensus formed among practitioners might be organized. The publication of the widely and is concentrated in standards and related circulated Trial Version of the Guide in 2001 marked documents. From the beginning, the SWEBOK project the end of the Stoneman phase of the project and was conceived as having a strong relationship to the initiated a period of trial usage. The current Guide normative literature of software engineering. The two marks the end of the Ironman period by providing a major standards bodies for software engineering (IEEE Guide that has achieved consensus through broad Computer Society Software Engineering Standards review and trial application. Committee and ISO/IEC JTC1/SC7) are represented in The project team developed two important principles the project. Ultimately, we hope that software for guiding the project: transparency and consensus. engineering practice standards will contain principles By transparency, we mean that the development directly traceable to the Guide. process is itself documented, published, and publicized so that important decisions and status are visible to all INTENDED AUDIENCE concerned parties. By consensus, we mean that the only practical method for legitimizing a statement of The Guide is oriented toward a variety of audiences, this kind is through broad participation and agreement all over the world. It aims to serve public and private by all significant sectors of the relevant community. xviii © IEEE – 2004 Version
  • 19. Literally hundreds of contributors, reviewers, and trial rearranged to make it more usable, but we were careful users have played a part in producing the current to include the same information that was approved by document. the earlier consensus process. We updated the Like any software project, the SWEBOK project has reference list so that it would be easier to obtain the many stakeholders—some of which are formally references. represented. An Industrial Advisory Board, composed Trial usage resulted in the recommendation that three of representatives from industry (Boeing, Construx KAs should be rewritten. Practitioners remarked that Software, the MITRE Corporation, Rational Software, the Construction KA was difficult to apply in a Raytheon Systems, and SAP Labs-Canada), research practical context. The Management KA was perceived agencies (National Institute of Standards and as being too close to general management and not Technology, National Research Council of Canada), sufficiently specific to software engineering concerns. the Canadian Council of Professional Engineers, and The Quality KA was viewed as an uncomfortable mix the IEEE Computer Society, has provided financial of process quality and product quality; it was revised to support for the project. The IAB’s generous support emphasize the latter. permits us to make the products of the SWEBOK Finally, some KAs were revised to remove material project publicly available without any charge duplicating that of other KAs. (see http://www.swebok.org). IAB membership is supplemented with the chairs of ISO/IEC JTC1/SC7 and the related Computing Curricula 2001 initiative. LIMITATIONS The IAB reviews and approves the project plans, Even though the Guide has gone through an elaborate oversees consensus building and review processes, development and review process, the following promotes the project, and lends credibility to the effort. limitations of this process must be recognized and In general, it ensures the relevance of the effort to real- stated: world needs. Software engineering continues to be infused The Trial Version of the Guide was the product of with new technology and new practices. extensive review and comment. In three public review Acceptance of new techniques grows and older cycles, a total of roughly 500 reviewers from 42 techniques are discarded. The topics listed as countries provided roughly 9,000 comments, all of “generally accepted” in this Guide are carefully which are available at www.swebok.org. To produce selected at this time. Inevitably, though, the the current version, we released the Trial Version for selection will need to evolve. extensive trial usage. Trial application in specialized studies resulted in 17 papers describing good aspects The amount of literature that has been published of the Guide, as well as aspects needing improvement. on software engineering is considerable and the A Web-based survey captured additional experience: reference material included in this Guide should 573 individuals from 55 countries registered for the not be seen as a definitive selection but rather as a survey; 124 reviewers from 21 countries actually reasonable selection. Obviously, there are other provided comments—1,020 of them. Additional excellent authors and excellent references than suggestions for improvement resulted from liaison those included in the Guide. In the case of the with related organizations and efforts: IEEE-CS/ACM Guide, references were selected because they are Computing Curricula Software Engineering; the IEEE written in English, readily available, recent, and CS Certified Software Development Professional easily readable, and—taken as a group—they project; ISO/IEC JTC1/SC7 (software and systems provide coverage of the topics within the KA. engineering standards); the IEEE Software Important and highly relevant reference material Engineering Standards Committee; the American written in languages other than English have been Society for Quality, Software Division; and an omitted from the selected reference material. engineering professional society, the Canadian Council Additionally, one must consider that of Professional Engineers. Software engineering is an emerging discipline. This is especially true if you compare it to certain CHANGES SINCE THE TRIAL VERSION more established engineering disciplines. This The overall goal of the current revision was to improve means notably that the boundaries between the the readability, consistency, and usability of the Guide. KAs of software engineering and between This implied a general rewrite of the entire text to software engineering and its related disciplines make the style consistent throughout the document. In remain a matter for continued evolution. several cases, the topical breakdown of the KA was © IEEE – 2004 Version xix
  • 20. The contents of this Guide must therefore be viewed as replace or amend in any way laws, rules, and an “informed and reasonable” characterization of the procedures that have been defined by official public software engineering Body of Knowledge and as policy makers around the world regarding the practice baseline for future evolution. Additionally, please note and definition of engineering and software engineering that the Guide is not attempting nor does it claim to in particular. xx © IEEE – 2004 Version
  • 21. Alain Abran Executive Editors of the James W. Moore École de technologie supérieure Guide to the Software The MITRE Corporation Engineering Body of Knowledge Pierre Bourque Editors of the Guide to Robert Dupuis École de Technologie Supérieure the Software Engineering Université du Québec à Montréal Body of Knowledge Leonard Tripp Chair of the Professional 1999 President Practices Committee, IEEE Computer Society IEEE Computer Society (2001-2003) December 2004 The SWEBOK project Web site is http://www.swebok.org/ Serge Oligny, Suzanne Paquette, Keith Paton, ACKNOWLEDGMENTS Dave Rayford, Normand Séguin, Paul Sinnett, Denis St-Pierre, Dale Strok, Pascale Tardif, The SWEBOK editorial team gratefully Louise Thibaudeau, Dolores Wallace, Évariste acknowledges the support provided by the Valery Bevo Wandji, and Michal Young. members of the Industrial Advisory Board. Funding for this project has been provided by the Finally, there are surely other people who have ACM, Boeing, the Canadian Council of contributed to this Guide, either directly or Professional Engineers, Construx Software, the indirectly, whose names we have inadvertently IEEE Computer Society, the MITRE omitted. To those people, we offer our tacit Corporation, the National Institute of Standards appreciation and apologize for having omitted and Technology, the National Research Council explicit recognition here. of Canada, Rational Software, Raytheon Company, and SAP Labs (Canada). The team is thankful for the counsel provided by the Panel of Experts. The team also appreciates the important work performed by the Associate Editors. We would also like to express our gratitude for initial work on the Knowledge Area Descriptions completed by Imants Freibergs, Stephen Frezza, Andrew Gray, Vinh T. Ho, Michael Lutz, Larry Reeker, Guy Tremblay, Chris Verhoef, and Sybille Wolff. The editorial team must also acknowledge the indispensable contribution of the hundreds of reviewers. The editorial team also wishes to thank the following people who contributed to the project in various ways: Mark Ardis, Yussef Belkebir, Michel Boivin, Julie Bonneau, Simon Bouchard, François Cossette, Vinh Duong, Gilles Gauthier, Michèle Hébert, Paula Hawthorn, Richard W. Heiman, Julie Hudon, Idrissa Konkobo, Rene Köppel, Lucette Lapointe, Claude Laporte, Luis Molinié, Hamdan Msheik, Iphigénie N’Diyae, © IEEE – 2004 Version xxi
  • 22. xxii © IEEE – 2004 Version
  • 23. CHAPTER 1 INTRODUCTION TO THE GUIDE In spite of the millions of software professionals worldwide accounting.3 They concluded that an engineering profession is and the ubiquitous presence of software in our society, characterized by several components: software engineering has only recently reached the status of a An initial professional education in a curriculum legitimate engineering discipline and a recognized profession. validated by society through accreditation Achieving consensus by the profession on a core body of Registration of fitness to practice via voluntary knowledge is a key milestone in all disciplines and had been certification or mandatory licensing identified by the IEEE Computer Society as crucial for the Specialized skill development and continuing evolution of software engineering towards professional status. professional education This Guide, written under the auspices of the Professional Practices Committee, is part of a multi-year project designed Communal support via a professional society to reach such a consensus. A commitment to norms of conduct often prescribed in a code of ethics WHAT IS SOFTWARE ENGINEERING? This Guide contributes to the first three of these components. The IEEE Computer Society defines software engineering as Articulating a Body of Knowledge is an essential step toward developing a profession because it represents a broad “(1) The application of a systematic, disciplined, quantifiable consensus regarding what a software engineering professional approach to the development, operation, and maintenance of should know. Without such a consensus, no licensing software; that is, the application of engineering to software. examination can be validated, no curriculum can prepare an (2) The study of approaches as in (1).”1 individual for an examination, and no criteria can be formulated for accrediting a curriculum. The development of WHAT IS A RECOGNIZED PROFESSION? consensus is also a prerequisite to the adoption of coherent skills development and continuing professional education For software engineering to be fully known as a legitimate programs in organizations. engineering discipline and a recognized profession, consensus on a core body of knowledge is imperative. This fact is well WHAT ARE THE OBJECTIVES OF THE SWEBOK PROJECT? illustrated by Starr when he defines what can be considered a legitimate discipline and a recognized profession. In his The Guide should not be confused with the Body of Pulitzer Prize-winning book on the history of the medical Knowledge itself, which already exists in the published profession in the USA, he states, literature. The purpose of the Guide is to describe what “The legitimization of professional authority involves three portion of the Body of Knowledge is generally accepted, to distinctive claims: first, that the knowledge and competence of organize that portion, and to provide a topical access to it. the professional have been validated by a community of his or Additional information on the meaning given to “generally her peers; second, that this consensually validated knowledge accepted” can be found below and in Appendix A. rests on rational, scientific grounds; and third, that the The Guide to the Software Engineering Body of Knowledge professional’s judgment and advice are oriented toward a set (SWEBOK) was established with the following five of substantive values, such as health. These aspects of objectives: legitimacy correspond to the kinds of attributes—collegial, 1. To promote a consistent view of software engineering cognitive, and moral—usually embodied in the term worldwide “profession.”2 2. To clarify the place—and set the boundary—of software engineering with respect to other disciplines WHAT ARE THE CHARACTERISTICS OF A PROFESSION? such as computer science, project management, Gary Ford and Norman Gibbs studied several recognized computer engineering, and mathematics professions, including medicine, law, engineering, and 3. To characterize the contents of the software engineering discipline 1 “IEEE Standard Glossary of Software Engineering Terminology,” IEEE std 610.12-1990, 1990. 3 G. Ford and N.E. Gibbs, A Mature Profession of Software Engineering, 2 P. Starr, The Social Transformation of American Medicine, Basic Books, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, 1982, p. 15. Pa., tech. report CMU/SEI-96-TR-004, Jan. 1996. © IEEE – 2004 Version 1-1
  • 24. 4. To provide a topical access to the Software Engineering Table 2 Related disciplines Body of Knowledge Computer engineering Project management 5. To provide a foundation for curriculum development Computer science Quality management and for individual certification and licensing material Management Software ergonomics The first of these objectives, a consistent worldwide view of software engineering, was supported by a development Mathematics Systems engineering process which engaged approximately 500 reviewers from 42 countries in the Stoneman phase (1998–2001) leading to the HIERARCHICAL ORGANIZATION Trial version, and over 120 reviewers from 21 countries in the Ironman phase (2003) leading to the 2004 version. More The organization of the KA descriptions or chapters information regarding the development process can be found supports the third of the project’s objectives—a in the Preface and on the Web site (www.swebok.org). characterization of the contents of software engineering. Professional and learned societies and public agencies The detailed specifications provided by the project’s involved in software engineering were officially contacted, editorial team to the associate editors regarding the contents made aware of this project, and invited to participate in the of the KA descriptions can be found in Appendix A. review process. Associate editors were recruited from North The Guide uses a hierarchical organization to decompose each America, the Pacific Rim, and Europe. Presentations on the KA into a set of topics with recognizable labels. A two- or project were made at various international venues and more three-level breakdown provides a reasonable way to find are scheduled for the upcoming year. topics of interest. The Guide treats the selected topics in a The second of the objectives, the desire to set a boundary for manner compatible with major schools of thought and with software engineering, motivates the fundamental organization breakdowns generally found in industry and in software of the Guide. The material that is recognized as being within engineering literature and standards. The breakdowns of topics this discipline is organized into the first ten Knowledge Areas do not presume particular application domains, business uses, (KAs) listed in Table 1. Each of these KAs is treated as a management philosophies, development methods, and so chapter in this Guide. forth. The extent of each topic’s description is only that needed to understand the generally accepted nature of the topics and for the reader to successfully find reference material. After all, Table 1 The SWEBOK Knowledge Areas (KAs) the Body of Knowledge is found in the reference material Software requirements themselves, not in the Guide. Software design REFERENCE MATERIAL AND MATRIX Software construction Software testing To provide a topical access to the knowledge—the fourth of Software maintenance the project’s objectives—the Guide identifies reference material for each KA, including book chapters, refereed Software configuration management papers, or other recognized sources of authoritative Software engineering management information. Each KA description also includes a matrix Software engineering process relating the reference material to the listed topics. The total Software engineering tools and methods volume of cited literature is intended to be suitable for mastery through the completion of an undergraduate education plus Software quality four years of experience. In this edition of the Guide, all KAs were allocated around 500 pages of reference material, and this was the specification the In establishing a boundary, it is also important to identify what associate editors were invited to apply. It may be argued that disciplines share that boundary, and often a common some KAs, such as software design for instance, deserve more intersection, with software engineering. To this end, the Guide pages of reference material than others. Such modulation may also recognizes eight related disciplines, listed in Table 2 (see be applied in future editions of the Guide. Chapter 12, “Related Disciplines of Software Engineering”). It should be noted that the Guide does not attempt to be Software engineers should, of course, have knowledge of comprehensive in its citations. Much material that is both material from these fields (and the KA descriptions may make suitable and excellent is not referenced. Material was selected reference to them). It is not, however, an objective of the in part because—taken as a collection—it provides coverage SWEBOK Guide to characterize the knowledge of the related of the topics described. disciplines, but rather what knowledge is viewed as specific to software engineering. DEPTH OF TREATMENT From the outset, the question arose as to the depth of treatment 1–2 © IEEE – 2004 Version
  • 25. the Guide should provide. The project team adopted an given too much importance. As much as possible, pointers and approach which supports the fifth of the project’s objectives— links have been given in the text where relevant and useful. providing a foundation for curriculum development, Links between KAs are not of the input-output type. The KAs certification, and licensing. The editorial team applied the are meant to be views on the knowledge one should possess in criterion of generally accepted knowledge, to be distinguished software engineering with respect to the KA in question. The from advanced and research knowledge (on the grounds of decomposition of the discipline within KAs and the order in maturity) and from specialized knowledge (on the grounds of which the KAs are presented are not to be assimilated with any generality of application). The definition comes from the particular method or model. The methods are described in the Project Management Institute: “The generally accepted appropriate KA in the Guide, and the Guide itself is not one of knowledge applies to most projects most of the time, and them. widespread consensus validates its value and effectiveness.”4 THE KNOWLEDGE AREAS Generally Accepted Figure 1 maps out the eleven chapters and the important topics incorporated within them. The first five KAs are presented in Established traditional practices Practices used only for certain types traditional waterfall life-cycle sequence. However, this does recommended by many organizations not imply that the Guide adopts or encourages the waterfall model, or any other model. The subsequent KAs are presented in alphabetical order, and those of the related disciplines are Specialized of software presented in the last chapter. This is identical to the sequence Advanced and Research in which they are presented in this Guide. Innovative practices tested and used only by some organizations and concepts still STRUCTURE OF THE KA DESCRIPTIONS being developed and tested in research The KA descriptions are structured as follows. organizations In the introduction, a brief definition of the KA and an overview of its scope and of its relationship with other KAs are presented. The breakdown of topics constitutes the core of each KA Figure 1 Categories of knowledge description, describing the decomposition of the KA into subareas, topics, and sub-topics. For each topic or sub-topic, a However, the term “generally accepted” does not imply that short description is given, along with one or more references. the designated knowledge should be uniformly applied to all The reference material was chosen because it is considered to software engineering endeavors—each project’s needs constitute the best presentation of the knowledge relative to the determine that—but it does imply that competent, capable topic, taking into account the limitations imposed on the software engineers should be equipped with this knowledge choice of references (see above). A matrix links the topics to for potential application. More precisely, generally accepted the reference material. knowledge should be included in the study material for the The last part of the KA description is the list of recommended software engineering licensing examination that graduates references. Appendix A of each KA includes suggestions for would take after gaining four years of work experience. further reading for those users who wish to learn more about Although this criterion is specific to the US style of education the KA topics. Appendix B presents the list of standards most and does not necessarily apply to other countries, we deem it relevant to the KA. Note that citations enclosed in square useful. However, the two definitions of generally accepted brackets “[ ]” in the text identify recommended references, knowledge should be seen as complementary. while those enclosed in parentheses “( )” identify the usual references used to write or justify the text. The former are to be LIMITATIONS RELATED TO THE BOOK FORMAT found in the corresponding section of the KA and the latter in Appendix A of the KA. The book format for which this edition was conceived has its limitations. The nature of the contents would be better served Brief summaries of the KA descriptions and appendices are using a hypertext structure, where a topic would be linked to given next. topics other than the ones immediately preceding and following it in a list. SOFTWARE REQUIREMENTS KA(SEE FIGURE 2, COLUMN A) Some boundaries between KAs, subareas, and so on are also A requirement is defined as a property that must be exhibited sometimes relatively arbitrary. These boundaries are not to be in order to solve some real-world problem. The first knowledge subarea is Software Requirements 4 A Guide to the Project Management Body of Knowledge, 2000 ed., Project Fundamentals. It includes definitions of software requirements Management Institute, www.pmi.org. © IEEE – 2004 Version 1-3
  • 26. themselves, but also of the major types of requirements: SOFTWARE DESIGN KA(SEE FIGURE 2, COLUMN B) product vs. process, functional vs. nonfunctional, emergent According to the IEEE definition [IEEE 610.12-90], design is properties. The subarea also describes the importance of both “the process of defining the architecture, components, quantifiable requirements and distinguishes between systems interfaces, and other characteristics of a system or component” and software requirements. and “the result of [that] process.” The KA is divided into six The second knowledge subarea is the Requirements Process, subareas. which introduces the process itself, orienting the remaining The first subarea presents Software Design Fundamentals, five subareas and showing how requirements engineering which form an underlying basis to the understanding of the dovetails with the other software engineering processes. It role and scope of software design. These are general software describes process models, process actors, process support and concepts, the context of software design, the software design management, and process quality and improvement. process, and the enabling techniques for software design. The third subarea is Requirements Elicitation, which is The second subarea groups together the Key Issues in Software concerned with where software requirements come from and Design. They include concurrency, control and handling of how the software engineer can collect them. It includes events, distribution of components, error and exception requirement sources and elicitation techniques. handling and fault tolerance, interaction and presentation, and The fourth subarea, Requirements Analysis, is concerned with data persistence. the process of analyzing requirements to The third subarea is Software Structure and Architecture, the Detect and resolve conflicts between requirements topics of which are architectural structures and viewpoints, Discover the bounds of the software and how it must architectural styles, design patterns, and, finally, families of interact with its environment programs and frameworks. Elaborate system requirements to software requirements The fourth subarea describes software Design Quality Analysis Requirements analysis includes requirements classification, and Evaluation. While there is a entire KA devoted to conceptual modeling, architectural design and requirements software quality, this subarea presents the topics specifically allocation, and requirements negotiation. related to software design. These aspects are quality attributes, quality analysis, and evaluation techniques and measures. The fifth subarea is Requirements Specification. Requirements specification typically refers to the production of a document, The fifth subarea is Software Design Notations, which are or its electronic equivalent, that can be systematically divided into structural and behavioral descriptions. reviewed, evaluated, and approved. For complex systems, The last subarea describes Software Design Strategies and particularly those involving substantial non-software Methods. First, general strategies are described, followed by components, as many as three different types of documents are function-oriented design methods, object-oriented design produced: system definition, system requirements methods, data-structure-centered design, component- based specification, and software requirements specification. The design, and others. subarea describes all three documents and the underlying activities. SOFTWARE CONSTRUCTION KA (SEE FIGURE 2, COLUMN C) The sixth subarea is Requirements Validation, the aim of Software construction refers to the detailed creation of which is to pick up any problems before resources are working, meaningful software through a combination of committed to addressing the requirements. Requirements coding, verification, unit testing, integration testing, and validation is concerned with the process of examining the debugging. The KA includes three subareas. requirements documents to ensure that they are defining the right system (that is, the system that the user expects). It is The first subarea is Software Construction Fundamentals. The subdivided into descriptions of the conduct of requirements first three topics are basic principles of construction: reviews, prototyping, and model validation and acceptance minimizing complexity, anticipating change, and constructing for verification. The last topic discusses standards for tests. construction. The seventh and last subarea is Practical Considerations. It describes topics which need to be understood in practice. The The second subarea describes Managing Construction. The first topic is the iterative nature of the requirements process. topics are construction models, construction planning, and The next three topics are fundamentally about change construction measurement. management and the maintenance of requirements in a state The third subarea covers Practical Considerations. The topics which accurately mirrors the software to be built, or that has are construction design, construction languages, coding, already been built. It includes change management, construction testing, reuse, construction quality, and requirements attributes, and requirements tracing. The final integration. topic is requirements measurement. SOFTWARE TESTING (SEE FIGURE 2, COLUMN D) Software Testing consists of the dynamic verification of the 1–4 © IEEE – 2004 Version
  • 27. behavior of a program on a finite set of test cases, suitably covers the topics of the organizational context for SCM, selected from the usually infinite executions domain, against constraints and guidance for SCM, planning for SCM, the the expected behavior. It includes five subareas. SCM plan itself, and surveillance of SCM. It begins with a description of Software Testing Fundamentals. The second subarea is Software Configuration Identification, First, the testing-related terminology is presented, then key which identifies items to be controlled, establishes issues of testing are described, and finally the relationship of identification schemes for the items and their versions, and testing to other activities is covered. establishes the tools and techniques to be used in acquiring and The second subarea is Test Levels. These are divided between managing controlled items. The first topics in this subarea are the targets of the tests and the objectives of the tests. identification of the items to be controlled and the software library. The third subarea is Test Techniques. The first category includes the tests based on the tester’s intuition and The third subarea is Software Configuration Control, which is experience. A second group comprises specification-based the management of changes during the software life cycle. The techniques, followed by code-based techniques, fault-based topics are: first, requesting, evaluating, and approving software techniques, usage-based techniques, and techniques relative to changes; second, implementing software changes; and third, the nature of the application. A discussion of how to select and deviations and waivers. combine the appropriate techniques is also presented. The fourth subarea is Software Configuration Status The fourth subarea covers Test-Related Measures. The Accounting. Its topics are software configuration status measures are grouped into those related to the evaluation of information and software configuration status reporting. the program under test and the evaluation of the tests The fifth subarea is Software Configuration Auditing. It performed. consists of software functional configuration auditing, The last subarea describes the Test Process and includes software physical configuration auditing, and in-process audits practical considerations and the test activities. of a software baseline. The last subarea is Software Release Management and SOFTWARE MAINTENANCE (SEE FIGURE 2, COLUMN E) Delivery, covering software building and software release Once in operation, anomalies are uncovered, operating management. environments change, and new user requirements surface. The maintenance phase of the life cycle commences upon SOFTWARE ENGINEERING MANAGEMENT (SEE FIGURE 3, delivery, but maintenance activities occur much earlier. The COLUMN G) Software Maintenance KA is divided into four subareas. The Software Engineering Management KA addresses the The first one presents Software Maintenance Fundamentals: management and measurement of software engineering. While definitions and terminology, the nature of maintenance, the measurement is an important aspect of all KAs, it is here that need for maintenance, the majority of maintenance costs, the the topic of measurement programs is presented. There are six evolution of software, and the categories of maintenance. subareas for software engineering management. The first five cover software project management and the sixth describes The second subarea groups together the Key Issues in Software software measurement programs. Maintenance. These are the technical issues, the management issues, maintenance cost estimation, and software maintenance The first subarea is Initiation and Scope Definition, which measurement. comprises determination and negotiation of requirements, feasibility analysis, and process for the review and revision of The third subarea describes the Maintenance Process. The requirements. topics here are the maintenance processes and maintenance activities. The second subarea is Software Project Planning and includes process planning, determining deliverables, effort, schedule Techniques for Maintenance constitute the fourth subarea. and cost estimation, resource allocation, risk management, These include program comprehension, re-engineering, and quality management, and plan management. reverse engineering. The third subarea is Software Project Enactment. The topics here are implementation of plans, supplier contract SOFTWARE CONFIGURATION MANAGEMENT (SEE FIGURE 3, management, implementation of measurement process, COLUMN F) monitor process, control process, and reporting. Software Configuration Management (SCM) is the discipline of identifying the configuration of software at distinct points in The fourth subarea is Review and Evaluation, which includes time for the purpose of systematically controlling changes to the topics of determining satisfaction of requirements and the configuration and of maintaining the integrity and reviewing and evaluating performance. traceability of the configuration throughout the system life The fifth subarea describes Closure: determining closure and cycle. This KA includes six subareas. closure activities. The first subarea is Management of the SCM Process. It Finally, the sixth subarea describes Software Engineering © IEEE – 2004 Version 1-5