Software Engineering Body of Knowledge (v3) (2014) (811503), страница 3
Текст из файла (страница 3)
Reference Material15-1115-1115-1215-1215-1315-14Appendix A: Knowledge Area Description SpecificationsA-1Appendix B: IEEE and ISO/IEC Standards Supporting the Software EngineeringBody of Knowledge (SWEBOK)B-1Appendix C: Consolidated Reference ListC-1FOREWORDEvery profession is based on a body of knowledge, although that knowledge is not alwaysdefined in a concise manner. In cases where noformality exists, the body of knowledge is “generally recognized” by practitioners and maybe codified in a variety of ways for a variety ofdifferent uses. But in many cases, a guide to abody of knowledge is formally documented, usually in a form that permits it to be used for suchpurposes as development and accreditation ofacademic and training programs, certification ofspecialists, or professional licensing.
Generally,a professional society or similar body maintainsstewardship of the formal definition of a body ofknowledge.During the past forty-five years, software engineering has evolved from a conference catchphrase into an engineering profession, characterized by 1) a professional society, 2) standards thatspecify generally accepted professional practices,3) a code of ethics, 4) conference proceedings,5) textbooks, 6) curriculum guidelines and curricula, 7) accreditation criteria and accrediteddegree programs, 8) certification and licensing,and 9) this Guide to the Body of Knowledge.In this Guide to the Software Engineering Bodyof Knowledge, the IEEE Computer Society presents a revised and updated version of the body ofknowledge formerly documented as SWEBOK2004; this revised and updated version is denotedSWEBOK V3.
This work is in partial fulfillmentof the Society’s responsibility to promote theadvancement of both theory and practice for theprofession of software engineering.It should be noted that this Guide does notpresent the entire the body of knowledge for software engineering but rather serves as a guide tothe body of knowledge that has been developedover more than four decades. The software engineering body of knowledge is constantly evolving.
Nevertheless, this Guide constitutes a valuable characterization of the software engineeringprofession.In 1958, John Tukey, the world-renowned statistician, coined the term software. The term software engineering was used in the title of a NATOconference held in Germany in 1968. The IEEEComputer Society first published its Transactionson Software Engineering in 1972, and a committee for developing software engineering standards was established within the IEEE ComputerSociety in 1976.In 1990, planning was begun for an international standard to provide an overall view of software engineering. The standard was completed in1995 with designation ISO/IEC 12207 and giventhe title of Standard for Software Life Cycle Processes. The IEEE version of 12207 was publishedin 1996 and provided a major foundation for thebody of knowledge captured in SWEBOK 2004.The current version of 12207 is designated asISO/IEC 12207:2008 and IEEE 12207-2008; itprovides the basis for this SWEBOK V3.This Guide to the Software Engineering Bodyof Knowledge is presented to you, the reader, asa mechanism for acquiring the knowledge youneed in your lifelong career development as asoftware engineering professional.xviiDick Fairley, ChairSoftware and Systems Engineering CommitteeIEEE Computer SocietyDon Shafer, Vice PresidentProfessional Activities BoardIEEE Computer SocietyFOREWORD TO THE 2004 EDITIONIn this Guide, the IEEE Computer Society establishes for the first time a baseline for the bodyof knowledge for the field of software engineering, and the work partially fulfills the Society’sresponsibility to promote the advancement ofboth theory and practice in this field.
In so doing,the Society has been guided by the experienceof disciplines with longer histories but was notbound 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 toserve as a compendium and guide to the body ofknowledge that has been developing and evolving over the past four decades. Furthermore,this body of knowledge is not static. The Guidemust, necessarily, develop and evolve as softwareengineering matures.
It nevertheless constitutesa valuable element of the software engineeringinfrastructure.In 1958, John Tukey, the world-renowned statistician, coined the term software. The term software engineering was used in the title of a NATOconference held in Germany in 1968. The IEEEComputer Society first published its Transactionson Software Engineering in 1972. The committeeestablished within the IEEE Computer Societyfor developing software engineering standardswas founded in 1976.The first holistic view of software engineering to emerge from the IEEE Computer Societyresulted from an effort led by Fletcher Buckleyto develop IEEE standard 730 for software quality assurance, which was completed in 1979.The purpose of IEEE Std.
730 was to provideuniform, minimum acceptable requirements forpreparation and content of software quality assurance plans. This standard was influential in completing the developing standards in the followingtopics: configuration management, software testing, software requirements, software design, andsoftware verification and validation.During the period 1981–1985, the IEEE Computer Society held a series of workshops concerning the application of software engineeringstandards.
These workshops involved practitioners sharing their experiences with existing standards. The workshops also held sessions on planning for future standards, including one involvingmeasures and metrics for software engineering products and processes. The planning alsoresulted in IEEE Std. 1002, Taxonomy of SoftwareEngineering Standards (1986), which provided anew, holistic view of software engineering. Thestandard describes the form and content of a software engineering standards taxonomy. It explainsthe various types of software engineering standards, their functional and external relationships,and the role of various functions participating inthe software life cycle.In 1990, planning for an international standard with an overall view was begun.
The planning focused on reconciling the software processviews from IEEE Std. 1074 and the revised USDoD standard 2167A. The revision was eventually published as DoD Std. 498. The internationalstandard was completed in 1995 with designation, ISO/IEC 12207, and given the title of Standard for Software Life Cycle Processes. Std. ISO/IEC 12207 provided a major point of departurefor the body of knowledge captured in this book.It was the IEEE Computer Society Board ofGovernors’ approval of the motion put forwardin May 1993 by Fletcher Buckley which resultedin the writing of this book. The Association forComputing Machinery (ACM) Council approveda related motion in August 1993. The two motionsled to a joint committee under the leadership ofMario Barbacci and Stuart Zweben who served ascochairs. The mission statement of the joint committee was “To establish the appropriate sets(s)of criteria and norms for professional practice ofsoftware engineering upon which industrial decisions, professional certification, and educationalcurricula can be based.” The steering committeeorganized task forces in the following areas:1.Define Required Body of Knowledge andRecommended Practices.xixxx SWEBOK® Guide V3.02.Define Ethics and Professional Standards.3.Define Educational Curricula for undergraduate, graduate, and continuing education.This book supplies the first component: requiredbody of knowledge and recommend practices.The code of ethics and professional practicefor software engineering was completed in 1998and approved by both the ACM Council and theIEEE Computer Society Board of Governors.
Ithas been adopted by numerous corporations andother organizations and is included in severalrecent textbooks.The educational curriculum for undergraduatesis being completed by a joint effort of the IEEEComputer Society and the ACM and is expectedto be completed in 2004.Every profession is based on a body of knowledge and recommended practices, although theyare not always defined in a precise manner. Inmany cases, these are formally documented, usually in a form that permits them to be used forsuch purposes as accreditation of academic programs, development of education and trainingprograms, certification of specialists, or professional licensing.
Generally, a professional societyor related body maintains custody of such a formal definition. In cases where no such formalityexists, the body of knowledge and recommendedpractices are “generally recognized” by practitioners and may be codified in a variety of ways fordifferent uses.It is hoped that readers will find this book useful in guiding them toward the knowledge andresources they need in their lifelong career development as software engineering professionals.The book is dedicated to Fletcher Buckley inrecognition of his commitment to promoting software engineering as a professional discipline andhis excellence as a software engineering practitioner in radar applications.Leonard L.