SWEBOK The Emerging Consensus on the Software Engineering Body of Knowledge A. Abran, P. Bourque, R. Dupuis, J. W. Moore, L. Tripp CUSE Montréal, 7 Mars, 2002 ÉTS © IEEE www.swebok.org 1 Corporate Support by: Project managed by: © IEEE www.swebok.org 2 Presentation Plan ¤ Project background ¤ Project objectives, audiences and plan ¤ Content of the Guide ¤ Next steps ¤ Research Issues © IEEE www.swebok.org 3 Key Issues ¤ Groups and individuals: Ø Different views of software engineering ¤ Universities: Ø Offering undergraduate degrees in Software Engineering, outside of traditional Engineering Departments Ø Limited consistency across curriculum Ø Different accreditation groups (Canada:CIPS and CCPE) ¤ © IEEE Increased interest in the establishment of a profession www.swebok.org 4 Market Trends - Examples Texas Board of Engineers: v Decision to license software engineers: a strategy with significant impact on: Ø industry (e.g. mobility of staff & training) Ø universities Ø policy bodies Ø individuals (+ engineering boards in Canada and universities) © IEEE www.swebok.org 5 What is Software Engineering? ¤ IEEE 610.12: v “(1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. v (2) The study of approaches as in (1).” © IEEE www.swebok.org 6 Key Interrelationships for a Core Body of Knowledge Development of Certification / Licensing Criteria and Exams © IEEE Consensus on a Core Body of Knowledge Influences www.swebok.org s nce ue Infl Infl uen ces Development of Software Engineering Curricula Development of University Program Accreditation Criteria 7 Presentation Plan ¤ Project background ¤ Project objectives, audiences and plan © IEEE ¤ Content of the Guide ¤ Next steps ¤ Research issues www.swebok.org 8 Project Objectives © IEEE ¤ Promote a consistent view of software engineering worldwide ¤ Clarify the place of, and set the boundary of, software engineering with respect to other disciplines ¤ Characterize the contents of the Software Engineering Body of Knowledge - SWEBOK ¤ Provide a topical access to the Software Engineering Body of Knowledge ¤ Provide a foundation for curriculum development and individual certification and licensing material www.swebok.org 9 Intended Audiences © IEEE ¤ Public and private organizations ¤ Practicing software engineers ¤ Makers of public policy ¤ Professional societies ¤ Software engineering students ¤ Educators and trainers www.swebok.org 10 What Are we Not Trying to Accomplish? © IEEE ¤ Not an all-inclusive description of the sum of knowledge in the field ¤ Not all categories of knowledge ¤ Not a curriculum development effort www.swebok.org 11 Specialized Categories of Knowledge in the SWEBOK © IEEE Generally Accepted Focus of the SWEBOK Guide Advanced and Research www.swebok.org 12 Generally Accepted ¤ «Applies to most projects, most of the time, and widespread consensus validates its value and effectiveness» Ø Project Management Institute ¤ © IEEE Bachelor + 4 years of experience www.swebok.org 13 IEEE and ACM strategies ¤ IEEE-CS: Ø initial focus on generally accepted Ø strategy with intermediate deliverables Ø contributions to the maturation and consensus building ¤ ACM: Ø opposition to licensing – withdrawal from joint efforts with IEEE-CS – concerns: limited to specialized knowledge © IEEE www.swebok.org 14 Three Underlying Principles of the Project ¤ Transparency: the development process is itself published and fully documented ¤ Consensus-building: the development process is designed to build, over time, consensus in industry, among professional societies and standards-setting bodies and in academia Ø Consensus does not equal Unanimity! ¤ © IEEE Available free on the web www.swebok.org 15 A Three-Phase Approach for Developing the Guide to the SWEBOK Straw Man Straw Man Version Version Stone Man Phase Stone Man Phase (Trial Version) (Trial Version) Iron Man Version Iron Man Version (Sub-phase 1) (Sub-phase 1) 1998 © IEEE 1999 2000 2001 www.swebok.org 2002 2003 16 Project Team © IEEE ¤ Editorial team ¤ Industrial Advisory Board ¤ Knowledge Area Specialists ¤ A very large international group of Reviewers www.swebok.org 17 Editorial Team ¤ Project “Champion”: v Leonard Tripp, 1999 President, IEEE Computer Society ¤ Executive Editors: v Alain Abran, UQAM v James W. Moore, The MITRE Corp. ¤ Editors: v Pierre Bourque, UQAM v Robert Dupuis, UQAM © IEEE www.swebok.org 18 A Three-Phase Approach for Developing the Guide to the SWEBOK Straw Man Version Stone Man Version Iron Man Version (Sub-phase 1) Iron Man Version (Sub-phase 2) 1998 © IEEE 1999 2000 2001 www.swebok.org 2002 2003 19 Strawman: Process Undergrad. SE curricula Graduate Admission Criteria Body of SE Standards Preliminary list of related disciplines Graduate SE Curricula Text Books in SE Textbooks List of related disciplines Prel. list of SE Knowledge Areas Proposed SE Knowledge Areas ISO/IEC 12207 Proposed related disciplines and SE KAs Must be discussed in general SE textbooks Must be specifically adapted to SE © IEEE www.swebok.org 20 Knowledge Area Specialists © IEEE ¤ Bertolino, Istituto Elaborazione Informazione, CNR, Italy ¤ Bollinger, MITRE, USA, Martin & Gabrini, UQAM ¤ Carrington, Queensland University, Australia ¤ El Emam, National Research Council, Canada ¤ MacDonell, University of Otago, New-Zealand ¤ Sawyer & Kotonya, Lancaster University, UK ¤ Scott, Lawrence Livermore National Lab., USA ¤ Tremblay, UQAM, Canada ¤ Pigoski, USA ¤ Wallace & Reeker, NIST, USA www.swebok.org 21 A Three-Phase Approach for Developing the Guide to the SWEBOK Straw Man Straw Man Version Version Stone Man Phase Stone Man Phase (Trial Version) (Trial Version) Iron Man Version Iron Man Version (Sub-phase 1) (Sub-phase 1) 1998 © IEEE 1999 2000 2001 www.swebok.org 2002 2003 22 Phase 2: Stone Man Review Process Version 0.1 Limited number of domain experts Review Cycle 1 Version 0.5 Selected users Review cycle 2 Community Version 0.7 Review Cycle 3 Version 0.9 © IEEE www.swebok.org 23 Stone Man Review Process ¤ Transparency and consensus-building v All intermediate versions of documents are published and archived on www.swebok.org v All comments are made public as well as the identity of the reviewers v Detailed comment disposition reports are produced for Review Cycle 2 and 3 © IEEE www.swebok.org 24 Data on reviewers ¤ Version 0,1: 33 ¤ Version 0,5: 195 ¤ Version 0,7: 378 v + ISO reviews from 5 countries © IEEE www.swebok.org 25 Geographic Distribution of Reviewers ¤ USA: ¤ Europe: 18% 55% v 90 reviewers from 25 countries © IEEE ¤ Canada: 10% ¤ Australia: 5% ¤ Asia: ¤ Latin America: 4% 5% www.swebok.org 26 Education of Reviewers 3% 24% 34% Doctorat Master Bachelor Other 39% © IEEE www.swebok.org 27 Organizations of Reviewers (no. of employees) 31% 37% 0-50 50-500 500 more 32% © IEEE www.swebok.org 28 Project Overview Presentation Plan ¤ Project background ¤ Project scope, objectives, audience and plan ¤ Contents © IEEE of the Guide ¤ How you can leverage the Guide within your organization ¤ Conclusion www.swebok.org 29 Stone Man Deliverables: © IEEE ¤ Consensus on a list of Knowledge Areas ¤ Consensus on a list of topics and relevant reference materials for each Knowledge Area ¤ Consensus on a list of Related Disciplines www.swebok.org 30 Guide to the Softw are Engineering Body of Knowledge (Version 0.95) Software Requirements Software Design Software Construction Software Testing Software Maintenance Requirement Engineering Process Software Design Basic Concepts Reduction in Complexity Testing Basic Concepts and Definitions Basic Concepts Requirements Elicitation Key Issues in Software Design Anticipation of Diversity Requirement Analysis Software Structure and Architecture Structuring for Validation Test Levels Maintenance Process Key Issues in Software Maintenance Test Techniques Techniques for Maintenance © IEEE Requirements Specification Software Design Quality Analysis and Evaluation Requirements Validation Software Design Notations Requirements Management Software Design Strategies and Methods (a) (b) Use of External Standards Test-Related Measures Managing the Test Process (c) www.swebok.org (d) (e) 31 Guide to the Softw are Engineering Body of Knowledge (Version 0.95) Software Configuration Management Software Engineering Management Software Engineering Process Software Engineering Tools and Methods Software Quality Management of the SCM Process Organizational Management Software Engineering Process Concepts Software Tools Software Quality Concepts Software Configuration Identification Software Configuration Control Process/Project Management Software Engineering Measurement Software Requirements Tools Process Infrastructure Software Design Tools Software Construction Tools Process Measurement Software Testing Tools Definition & Planning for Quality Techniques Requiring Two or More People Software Maintenance Tools Software Configuration Status Accounting Software Configuration Auditing Process Definition Software Engineering Process Tools Qualitative Process Analysis Software Quality Tools Process Implementation and Change Software Engineering Management Tools Software Configuration Management Tools Infrastructure Support Tools Miscellaneous Tool Issues Software Release Management and Delivery Support to Other Techniques Testing Special to SQA or V&V Defect Finding Techniques Measurement in Software Quality Analysis Software Methods Heuristic Methods Formal Methods Prototyping Methods Miscellaneous Method Issues © IEEE (f) (g) (h) www.swebok.org (d) (i) (j) 32 Software Requirements Software Requirements Requirements Engineering Process Requirements Elicitation Requirements Analysis Requirement Specification Requirements Validation Requirements Management Process Models Requirements Sources Requirements Classification Requirements Definition Document Conduct of Requirements Reviews Change Management Process Actors Elicitation Techniques Conceptual Modeling Software Requirements Specification (SRS) Prototyping Requirements Attributes Process Support and Management Architectural Design and Requirements Allocation Document Structure and Standards Model Validation Requirements Tracing Process Quality and Improvement Requirements Negotiation Document Quality Acceptance tests © IEEE www.swebok.org 33 Software Design Software Design I. Software Design Basic Concepts II. Key Issues in Software Design General design concepts Concurrency The context of software design Control and handling of events The software design process Distribution Enabling techniques for software design Exception handling III. Software Structure and Architecture Architectural structures and viewpoints Architectural styles and patterns (macroarchitecture) Design patterns (micro-architecture) Interactive systems Persistence Design of families of programs and frameworks IV. Software Design Quality Analysis and Evaluation Quality attributes Quality analysis and evaluation tools Software design reviews V. Design Notations Structural descriptions (static view) Behavior descriptions (dynamic view) VI. Software Design Strategies and Methods General Strategies Function-oriented design Object-oriented design Static analysis Data-structrure centered design Simulation and prototyping Other methods Measures Function-oriented (structured) design measures Object-oriented design measures © IEEE www.swebok.org 34 Knowledge Area Description Classification of Topics Topic Descriptions © IEEE Matrix of Topics & References Classification by Vincenti’s Taxonomy Classification by Bloom’s Taxonomy References References to Related Disciplines Not implemented in Stoneman www.swebok.org 35 Related Disciplines ¤ Software Requirements ¤ Software Design ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ © IEEE Related Disciplines • Computer Science (CC2001) Software Construction • Mathematics (CC2001) Software Testing • Project Management Software Maintenance (PMBOK) Software Configuration Management • Computer Engineering Software Eng. Management • Cognitive Sciences and Human Factors Software Eng. Tools & Methods • Systems Engineering Software Engineering Process • Management and Software Quality Management Science www.swebok.org 36 Project Overview Presentation Plan ¤ Project background ¤ Project scope, objectives, audience and plan ¤ Contents of the Guide ¤ Next ¤ © IEEE steps Research Issues www.swebok.org 37 A Three-Phase Approach for Developing the Guide to the SWEBOK Straw Man Straw Man Version Version Stone Man Version Stone Man Version Iron Man Version Iron Man Version (Sub-phase 1) (Sub-phase 1) Iron Man Iron Man Version Version (Sub(Subphase 2) phase 2) 1998 © IEEE 1999 2000 2001 www.swebok.org 2002 2003 38 Collection of feedback from: ¤ Education: v Curriculum design/evaluation v Program accreditation v Course design/evaluation v Internal training, corporate universities © IEEE www.swebok.org 39 Collection of feedback from: ¤ Industry & Government v job description v hiring v staffing of projects v career planning v contracting © IEEE www.swebok.org 40 Collection of feedback from: ¤ Policy organisations v Licensing & Certification Ø licensing exam questions Ø study material Ø in software engineering and other IT fields Ø could be on subsets of Knowledge Areas v R & D agencies: strategies for increasing engineering maturity of the domain © IEEE www.swebok.org 41 A Three-Phase Approach for Developing the Guide to the SWEBOK Straw Man Straw Man Version Version Stone Man Version Stone Man Version Iron Man Version Iron Man Version (Sub-phase 1) (Sub-phase 1) Iron Man Iron Man Version Version (Sub(Subphase 2) phase 2) 1998 © IEEE 1999 2000 2001 www.swebok.org 2002 2003 42 Project Overview Presentation Plan ¤ Project background ¤ Project scope, objectives, audience and plan ¤ Contents of the Guide ¤ Next steps ¤ Research © IEEE Areas www.swebok.org 43 SWEBOK & Research Issues ¤ The Engineering of: v Software Requirements v Software Design v Software Construction v Software Testing v Software Maintenance v Software Quality v Software Eng. Management v Software Eng. Tools & Methods v Software Engineering Process v Software Configuration Management © IEEE www.swebok.org 44 Concluding Remarks Ø Software Engineering: The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software – IEEE 610.12 vStrengthening the Engineering Knowledge within this new discipline is required for a rapid maturation, and significant contribution to the Canadian software industry © IEEE www.swebok.org 45 www.swebok.org © IEEE www.swebok.org 46