SWEBOK ÉTS © IEEE The Emerging Consensus on the Software Engineering Body of Knowledge Pierre Bourque R. Dupuis, A. Abran, J. W. Moore, L. Tripp QAAM/QAI Conference Baltimore October 22, 2003 www.swebok.org 1 Corporate Support by: Project managed by: © IEEE www.swebok.org 2 Trial version Can be downloaded from www.swebok.org free of charge © IEEE Now Available in Japanese www.swebok.org 3 Guide to the Software Engineering Body of Knowledge (SWEBOK) ¤ Began as a collaboration among IEEE CS, ACM and the Université du Québec à Montréal ¤ International participation from industry, professional societies, standards bodies, academia, authors ¤ By the time the project is finished many hundreds of individuals will have touched it ¤ Release of Trial Version in 2001 ¤ Currently completing the third phase of this threephase project leading to the 2004 Version © IEEE www.swebok.org 4 List of Knowledge Areas ¤ Software Requirements ¤ Software Design ¤ Software Construction ¤ Software Testing ¤ Software Maintenance ¤ Software Configuration Management ¤ Software Quality ¤ Software Engineering Tools & Methods ¤ Software Engineering Process ¤ Software Engineering Management © IEEE www.swebok.org 5 Presentation Objectives © IEEE ¤ Give an overview of the emerging international consensus on the “core body of knowledge” of software engineering ¤ Explain how you can leverage the SWEBOK Guide within your organization www.swebok.org 6 Presentation Plan ¤ Project background ¤ Project scope, objectives, audience and plan ¤ Contents of the Guide ¤ How you can leverage the Guide within your organization ¤ Conclusions © IEEE www.swebok.org 7 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 8 Recognized Profession? ¤ Starr*: v Knowledge and competence validated by the community of peers v Consensually validated knowledge rests on rational, scientific grounds v Judgment and advice oriented toward a set of substantive values * © IEEE P. Starr, The Social Transformation of American Medicine: BasicBooks, 1982. www.swebok.org 9 Professional Development Initial professional education Accreditation Skills Development Professional societies One or both Certification Licensing Full Professional Status © IEEE Professional development Code of ethics www.swebok.org Adapted from Steve McConnell, After the Gold Rush, Microsoft Press, 1999, p. 93 10 Presentation Plan ¤ Project background ¤ Project scope, objectives, audience and plan © IEEE ¤ Contents of the Guide ¤ How you can leverage the Guide within your organization ¤ Conclusion www.swebok.org 11 Project Objectives © IEEE ¤ Characterize the contents of the Software Engineering Body of Knowledge ¤ Provide a topical access to the Software Engineering Body of Knowledge ¤ Promote a consistent view of software engineering worldwide www.swebok.org 12 Project Objectives ¤ Clarify the place of, and set the boundary of, software engineering with respect to other disciplines (computer science, project management, computer engineering, mathematics, etc.) ¤ © IEEE Provide a foundation for curriculum development and individual certification and licensing material www.swebok.org 13 Intended Audience © IEEE ¤ Public and private organizations ¤ Practicing software engineers ¤ Makers of public policy ¤ Professional societies ¤ Software engineering students ¤ Educators and trainers www.swebok.org 14 What Are we Not Trying to Accomplish? © IEEE ¤ Not a curriculum development effort! ¤ Not an all-inclusive description of the sum of knowledge in the field ¤ Not all categories of knowledge www.swebok.org 15 Specialized Categories of Knowledge in the SWEBOK © IEEE Generally Accepted Focus of the SWEBOK Guide Advanced and Research www.swebok.org 16 Generally Accepted ¤ «Applicable to most projects, most of the time, and widespread consensus about their value and usefulness» ØProject Management Institute - PMI ¤ Bachelor © IEEE + 4 years of experience www.swebok.org 17 Application domain knowledge Advanced SE Knowledge C.S. Specialized SE Knowledge Guide to the SWEBOK Stoneman Knowledge of a Software Engineer Maths ... © IEEE www.swebok.org 18 Three Underlying Principles of the Project © IEEE ¤ 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 ¤ Available free on the web www.swebok.org 19 Project Team © IEEE ¤ Editorial team ¤ Industrial Advisory Board ¤ Knowledge Area Specialists ¤ Reviewers www.swebok.org 20 Editorial Team ¤ Project “Champion”: v Leonard Tripp, 1999 President, IEEE Computer Society v President, Professional Practices Committee ¤ Executive Editors: v Alain Abran, ETS v James W. Moore, The MITRE Corp. ¤ Editors: v Pierre Bourque, ETS v Robert Dupuis, UQAM © IEEE www.swebok.org 21 Roles of the Industrial Advisory Board © IEEE ¤ Provide input to ensure relevance to various audiences ¤ Review and approve strategy and deliverables ¤ Oversee development process ¤ Assist in promoting the Guide to the Software Engineering Body of Knowledge ¤ Lend credibility to the project www.swebok.org 22 A Three-Phase Approach for Developing the Guide Straw Man Phase Experimentation and Trial Usage Stone Man Phase Iron Man Phase (Sub-phase 1) Revision Iron Man Phase (Subphase 2) Trial Version 1998 © IEEE 1999 2000 2001 www.swebok.org 2004 Version 2002 2003 23 Formal resolutions ¤ Industrial Advisory Board (2001) ¤ CS Board of Governors (2001) v "The Board of Governors of the IEEE Computer Society accepts the Guide to the Software Engineering Body of Knowledge (Trial Version) as fulfilling its development requirements and is ready for field trials for a period of two years“ ¤ © IEEE ISO Technical Report (2004) www.swebok.org 24 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 25 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 26 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 27 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 28 Education level of reviewers (Version 0,7) 3% 24% 34% 39% © IEEE www.swebok.org Ph.D. Masters Bach Other 29 Number of employees at reviewer location (Version 0,7) 31% 37% 0-50 50-500 Over 500 32% © IEEE www.swebok.org 30 Number of years of practical experience (Version 0,7) 9% 32% 21% 0-9 38% 10-19 20-29 © IEEE www.swebok.org 31 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 32 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 33 List of Knowledge Areas ¤ 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 • Cognitive Sciences and Software Eng. Management Human Factors Software Eng. Tools & Methods • Systems Engineering Software Engineering Process • Management and Management Science Software Quality 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 Trial Version www.swebok.org 35 Guide to the Software Engineering Body of Knowledge Guide to the Software Engineering Body of Knowledge (Trial Version) (Trial Version) 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) 36 Guide to the Software Engineering Body of Knowledge Guide to the Software Engineering Body of Knowledge (Trial Version) (Trial Version) 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) 37 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 38 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 39 Software Construction Software Construction © IEEE Reduction in Complexity Anticipation of Diversity Structuring for Validation Use of External Standards Linguistic Construction Methods Linguistic Construction Methods Linguistic Construction Methods Linguistic Construction Methods Formal Construction Methods Formal Construction Methods Formal Construction Methods Formal Construction Methods Visual Construction Methods Visual Construction Methods Visual Construction Methods Visual Construction Methods www.swebok.org 40 Software Testing A. Testing Basic Concepts and Definitions A1. TestingRelated Terminology A2. Theoretical Foundations A3. Relationships of Testing to Other Activities Software Testing B. Test Levels B1. The Target of the Test B2. Objectives of Testing C. Test Techniques D. Test Related Measures E. Managing the Test Process C1.1 Based on Tester's intuition and experience D1. Evaluation of the Program Under Test E1. Management Concerns C1.2 Specificationbased D2. Evaluation of the Tests Performed E2. Test Activities C1.3 CodeBased C1.4 FaultBased C1.5 UsageBased C1.6 Based on Nature of Application C2.1 Black-Box Techniques C2.1 White-Box Techniques C3. Selecting and Combining Techniques © IEEE www.swebok.org 41 Software Maintenance Software Maintenance Basic Concepts Definitions and Terminology Majority of Maintenance Costs The Nature of Maintenance Maintenance Process Key Issues in Software Maintenance Process Models Technical Maintenance Activities Management Cost and Estimation Measures Techniques for Maintenance Program comprehension Re-engineering Reverse Engineering Impact Analysis Evolution of Software Need for Maintenance Categories of Maintenance © IEEE www.swebok.org 42 Software Configuration Management Software Configuration Management Management of the SCM Process Software Configuration Identification Organizational Context for SCM Identifying Items to be Controlled Constraints and Guidance for SCM Software Configuration Planning for SCM Software Configuration Management Plan Software Configuration Items Software Configuration Items Relationships Software Configuration Control Requesting, Evaluating and Approving Software Changes Implementing Software Changes Software Configuration Status Accounting Software Configuration Auditing Software Configuration Status Information Software Functional Configuration Audit Software Configuration Status Reporting Software Physical Configuration Audit Deviations and Waivers Software Versions Software Release Management and Delivery Software Building Software Release Management In-Process Audits of a Software Baseline Baseline Acquiring Software Configuration Items Software Library © IEEE www.swebok.org 43 Software Engineering Management Software Engineering Management Organizational Management Process/Project Management Policy Management Initiation and scope definition Personnel Management Planning Communication Management Portfolio Management Procurement Management © IEEE Enactment Review and Evaluation Closure www.swebok.org Software Engineering Measurement Goals Measurement Selection Measuring Software and its Development Collection of data Software Measurement Models 44 Software Engineering Process Sofware Engineering Process Software Engineering Process Concepts Themes Terminology Process Infrastructure Process Measurement Process Definition Qualitative Process Analysis Process Implement. and Change Software Engineering Process Group Methodology in Process Measurement Types of Process Definitions Process Definition Review Experience Factory Process Measurement Paradigms Life Cycle Framework Models Root Cause Analysis Paradigms for Process Implementation and Change Software Life Cycle Process Models Notations for Process Definitions Guidelines for Process Implementation and Change Evaluating the Outcome of Process Implementation and Change Process Definition Methods Automation © IEEE www.swebok.org 45 Software Engineering Tools and Methods Software Engineering Tools and Methods I. Software Tools II. Software Methods Software Requirements Tools Heuristic Methods Software Design Tools Data-oriented methods Structured methods Object-oriented methods Domain specific methods Software Construction Tools Software Testing Tools Software Maintenance Tools Software Engineering Process Tools Software Quality Tools Formal Methods Specification languages Refinement Verification Prototyping Methods Styles Prototyping target Evaluation techniques Miscellaneous Method Issues Method evaluation Software Configuration Management Tools Software Engineering Management Tools Infrastructure Support Tools Miscellaneous Tools Issues © IEEE www.swebok.org 46 Software Quality Software Quality Software Quality Concepts Purpose and Planning of SQA and V&V Activities and Techniques for SQA and V&V Measurement Applied to SQA and V&V Measuring the Value of Quality Common Planning Activities Static Techniques Fundamentals of Measurement ISO 9126 Quality Description Dependability The SQA Plan Dynamic Techiques The V&V Plan Other SQA and V&V Testing Special Types of Systems and Quality Needs Measures Measurement Analysis Techniques Defect Characterization Additional Uses of SQA and V&V data © IEEE www.swebok.org 47 A Three-Phase Approach for Developing the Guide Straw Man Phase Experimentation and Trial Usage Stone Man Phase Iron Man Phase (Sub-phase 1) Revision Iron Man Phase (Subphase 2) Trial Version 1998 © IEEE 1999 2000 2001 www.swebok.org 2004 Version 2002 2003 48 Presentation Plan © IEEE ¤ Project background ¤ Project scope, objectives, audience and plan ¤ Contents of the Guide ¤ How you can leverage the Guide within your organization ¤ Conclusions www.swebok.org 49 Current Usage of the Guide ¤ As of June 2003 = 2,680 SWEBOK references ¤ About 65% of references to SWEBOK occur in education/training (#2, practice, 18%) © IEEE www.swebok.org 50 Applications of the Guide ¤ Industry & Government v job description Ø Bombardier Transportation v hiring v staffing of projects v career planning v contracting © IEEE www.swebok.org 51 Applications of the Guide ¤ Professional development v internal training, corporate universities v course design v self-assessment v individual training © IEEE www.swebok.org 52 Example Usage in Professional Development: Construx ¤ Software Development Company ¤ Steve McConnell ¤ Ladder: vLevels of performance/knowledge in SE vKnowledge acquisition based on SWEBOK Knowledge Areas vReading and other activities permit you climb the ladder © IEEE www.swebok.org 53 How SWEBOK Was Used Next six slides from a presentation done at the Conference on Software Engineering Education snd Training, Cincinnati, March 2002. Copyright © James Mason and Dennis J. Frailey, 2002 © IEEE www.swebok.org 54 Security Industry Automation Corporation ¤ Build/Operate NYSE/AMEX trading systems ¤ High volume, transaction processing systems that demand the highest levels of reliability. ¤ Financial markets depend on these systems ¤ SIAC © IEEE must provide reliability assurances www.swebok.org 55 Using SWEBOK to Align SIAC Needs with the Body of Knowledge SOFTWARE REQUIREMENTS ENGINEERING EMPLOYEE 1 EMPLOYEE 2 EMPLOYEE 3 EMPLOYEE 4 SPECIALTIES ALIGNED WITH SWEBOK KNOWLEDGE AREAS SOFTWARE SOFTWARE SOFTWARE DESIGN CONSTRUCTION T EST ENGINEERING ENGINEERING SOFTWARE ENGINEERING MANAGEMENT X X X X X X X • Opportunity to plan expeditiously • Intuitive acceptance of the structure • Individual and organization planning were supported © IEEE www.swebok.org 56 SIAC Desired Course Structure ¤ Executive style on-site classes, supplemented by distance education Core Curricula Plus Concentration in a "Specialty" Software Requirements Engineering Software Design Engineering Software Construction Engineering Program Software Test Engineering Software Engineering Management Description Core Curricula 3-graduate courses in the "foundation knowledge" Software Requirements Engineering Software Design Engineering Software Construction Engineering 2-graduate courses supporting the area of concentration -- per "specialty" Software Test Engineering © IEEE www.swebok.org 57 NTU Program ¤ National Technological University broadcasts courses from about 3 dozen universities over satellite to hundreds of industrial companies ¤ Software engineering program started about 1995, based on SEI model curriculum ¤ Same challenges as SMU, plus vkeep up with distance education technologies vform a cogent program out of many universities © IEEE www.swebok.org 58 Using SWEBOK to Examine the NTU Software Engineering Program ¤ The problem here was that courses come from many universities, and there needs to be a model by which to correlate their content and determine equivalencies, overlaps, etc. © IEEE www.swebok.org 59 Things that were Learned - NTU ¤ The SWEBOK categories made an excellent system for categorizing courses vAnd will be used for course numbering in the future © IEEE ¤ Holes and overlaps in course coverage were considerably more apparent ¤ The SWEBOK provides a “neutral” basis for discussion when universities disagree about what should be covered www.swebok.org 60 Example Usages in Education ¤ Course Design/Assessment: v Arizona State, etc. ¤ Program Design/Assessment: v University of Iceland v Southern Methodist University v Stevens Institute of Technology v National Technological University v École de technologie supérieure v Monash University © IEEE www.swebok.org 61 Known Usage in Education ¤ Accreditation Criteria vJapan vCanada ¤ Numerous mentions in conference material ¤ References in PhD dissertations ¤ References in SE education related sites © IEEE www.swebok.org 62 Applications of the Guide ¤ Licensing & Certification v licensing exam questions v study material v in software engineering and other IT fields v could be on subsets of Knowledge Areas © IEEE www.swebok.org 63 Identifying Opportunities in Your Organization © IEEE ¤ How could the Guide be used in your organization ? ¤ What other applications do you see in your organization ? www.swebok.org 64 Project Overview Presentation Plan ¤ Project background ¤ Project scope, objectives, audience and plan ¤ Contents of the Guide ¤ How you can leverage the Guide within your organization ¤ Conclusion © IEEE www.swebok.org 65 Concluding Remarks ¤ © IEEE Consensus on the core body of knowledge is key in all disciplines and pivotal for the evolution toward a professional status www.swebok.org 66 www.swebok.org © IEEE www.swebok.org 67