ISO/IEC TR 19759:2015
(Main)Software Engineering — Guide to the software engineering body of knowledge (SWEBOK)
Software Engineering — Guide to the software engineering body of knowledge (SWEBOK)
ISO/IEC TR 19759:2015 characterizes the boundaries of the software engineering discipline and provides topical access to the literature supporting that discipline.
Ingénierie du logiciel — Guide du corps de connaissance de l'ingénierie du logiciel (SWEBOK)
General Information
Relations
Buy Standard
Standards Content (Sample)
TECHNICAL ISO/IEC TR
REPORT 19759
Second edition
2015-10-01
Corrected version
2016-06-01
Software Engineering — Guide to
the Software Engineering Body of
Knowledge (SWEBOK)
Ingénierie du logiciel — Guide du corps de connaissance de
l’ingénierie du logiciel (SWEBOK)
Reference number
ISO/IEC TR 19759:2016(E)
©
ISO/IEC 2016
---------------------- Page: 1 ----------------------
ISO/IEC TR 19759:2016(E)
COPYRIGHT PROTECTED DOCUMENT
© ISO/IEC 2016, Published in Switzerland
All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized otherwise in any form
or by any means, electronic or mechanical, including photocopying, or posting on the internet or an intranet, without prior
written permission. Permission can be requested from either ISO at the address below or ISO’s member body in the country of
the requester.
ISO copyright office
Ch. de Blandonnet 8 • CP 401
CH-1214 Vernier, Geneva, Switzerland
Tel. +41 22 749 01 11
Fax +41 22 749 09 47
copyright@iso.org
www.iso.org
ii © ISO/IEC 2016 – All rights reserved
---------------------- Page: 2 ----------------------
ISO/IEC TR 19759:2016(E)
Contents Page
Foreword .iv
Introduction.v
1 Scope.1
2 Recommendations .1
3 Revision of the IEEE Computer Society Publication .1
4 Publication .1
© ISO/IEC 2016 – All rights reserved iii
---------------------- Page: 3 ----------------------
Foreword
ISO (the International Organization for Standardization) and IEC (the
International Electrotechnical Commission) form the specialized system for
worldwide standardization. National bodies that are members of ISO or IEC participate in
the development of International Standards through technical committees established by
the respective organization to deal with particular fields of technical activity. ISO and IEC
technical committees collaborate in fields of mutual interest. Other international
organizations, governmental and non-governmental, in liaison with ISO and IEC, also
take part in the work. In the field of information technology, ISO and IEC have established
a joint technical committee, ISO/IEC JTC 1.
The procedures used to develop this document and those intended for its further
maintenance are described in the ISO/IEC Directives, Part 1. In particular the different
approval criteria needed for the different types of document should be noted. This
document was drafted in accordance with the editorial rules of the
ISO/IEC Directives, Part 2 (see www.iso.org/directives).
Attention is drawn to the possibility that some of the elements of this document may be
the subject of patent rights. ISO and IEC shall not be held responsible for identifying any or
all such patent rights. Details of any patent rights identified during the development of the
document will be in the Introduction and/or on the ISO list of patent
declarations received (see www.iso.org/patents).
Any trade name used in this document is information given for the convenience of users
and does not constitute an endorsement.
For an explanation on the meaning of ISO specific terms and expressions related to
conformity assessment, as well as information about ISO's adherence to the WTO
principles in the Technical Barriers to Trade (TBT), see the following URL: Foreword —
Supplementary information.
This corrected version of ISO/IEC TR 19759:2015 incorporates the following corrections:
- corrupted paragraphs of text within the document have been replaced.
ISO/IEC TR 19759 was prepared by the IEEE Computer Society and was adopted, under a
special “fast-track procedure”, by Joint Technical Committee ISO/IEC JTC 1,
Information technology, in parallel with its approval by national bodies of ISO and IEC.
© ISO/IEC 2016 – All rights reserved iv
---------------------- Page: 4 ----------------------
ISO/IEC TR 19759:2016(E)
Introduction
The purpose of the Guide to the Software Engineering Body of Knowledge is to provide a consensually validated
characterization of the bounds of the software engineering discipline and to provide a topical access to the Body of
Knowledge supporting that discipline. The Body of Knowledge is subdivided into fifteen software engineering
Knowledge Areas (KA) providing an outline of topics. The descriptions in the KAs are designed to discriminate
among the various important concepts, permitting readers to find their way quickly to subjects of interest. Upon
finding a subject, readers are referred to key papers or books selected because they succinctly present the
knowledge.
Publication of the 2004 version of this Guide to the Software Engineering Body of Knowledge (SWEBOK
2004)—adopted as ISO/IEC TR 19759:2005—was a major milestone in establishing software engineering as
a recognized engineering discipline. The goal in developing this update to SWEBOK is to improve the
currency, readability, consistency, and usability of the Guide. All knowledge areas (KAs) have been updated
to reflect changes in software engineering since publication of SWEBOK 2004. Four new foundation KAs and
a Software Engineering Professional Practices KA have been added. The Software Engineering Tools and
Methods KA has been revised as Software Engineering Models and Methods. Software engineering tools is
now a topic in each of the KAs. Three appendices provide the specifications for the KA description, an
annotated set of relevant standards for each KA, and a listing of the references cited in the Guide.
An emphasis on engineering practice leads the Guide toward a strong relationship with the normative
literature. Most of the computer science, information technology and software engineering literature provides
information useful to software engineers, but a relatively small portion is normative. A normative document
prescribes what an engineer should do in a specified situation rather than providing information that might be
helpful. The normative literature is validated by consensus formed among practitioners and is concentrated in
standards and related documents. From the beginning, the SWEBOK project was conceived as having a
strong relationship to the normative literature of software engineering. The two major standards bodies for
software engineering (IEEE Computer Society Software and Systems Engineering Standards Committee and
ISO/IEC JTC1/SC7) cooperated in the project.
The Guide is oriented toward a variety of audiences, all over the world. It aims to serve public and private
organizations in need of a consistent view of software engineering for defining education and training
requirements, classifying jobs, developing performance evaluation policies or specifying software
development tasks. It also addresses practicing, or managing, software engineers and the officials responsible
for making public policy regarding licensing and professional guidelines. In addition, professional societies and
educators defining the certification rules, accreditation policies for university curricula, and guidelines for
professional practice will benefit from the SWEBOK Guide, as well as the students learning the software
engineering profession and educators and trainers engaged in defining curricula and course content.
v
© ISO/IEC 2016 – All rights reserved
---------------------- Page: 5 ----------------------
TECHNICAL REPORT ISO/IEC TR 19759:2016(E)
Software Engineering — Guide to the Software Engineering
Body of Knowledge (SWEBOK) — Version 3.0
1 Scope
This Technical report characterizes the boundaries of the software engineering discipline and provides topical
access to the literature supporting that discipline.
2 Recommendations
As a Technical Report, this document does not make technical recommendations. The information provided is
that contained in the following publication (reproduced on the following pages), which is adopted as a
Technical Report:
Guide to the Software Engineering Body of Knowledge (SWEBOK) V3.0, IEEE Computer Society
3 Revision of the IEEE Computer Society Publication
It has been agreed with the IEEE Computer Society that ISO/IEC JTC 1/SC 7 will be consulted in the event of
any revision or amendment of this IEEE Computer Society publication. Consultation will be accomplished by
the existing Category A liaison relationship between SC 7 and IEEE Computer Society.
4 Publication
The report of the IEEE Computer Society appears on the following pages.
© ISO/IEC 2016 – All rights reserved 1
---------------------- Page: 6 ----------------------
ISO/IEC TR 19759:2016(E)
•
••
• • •
•
•
II
11
···)
Guide to the Software
Engineering Body of Knowledge
Editors
Pierre Bourque
Richard E. (Dick) Fairley
+.IEEE
IEEE�computer society
© ISO/IEC 2016 – All rights reserved
---------------------- Page: 7 ----------------------
ISO/IEC TR 19759:2016(E)
Guide to the Software Engineering
Body of Knowledge
Version 3.0
®
SWEBOK
A Project of the IEEE Computer Society
© ISO/IEC 2016 – All rights reserved
---------------------- Page: 8 ----------------------
ISO/IEC TR 19759:2016(E)
Guide to the Software Engineering
Body of Knowledge
Version 3.0
Editors
Pierre Bourque, École de technologie supérieure (ÉTS)
Richard E. (Dick) Fairley, Software and Systems Engineering Associates (S2EA)
© ISO/IEC 2016 – All rights reserved
---------------------- Page: 9 ----------------------
ISO/IEC TR 19759:2016(E)
Copyright and Reprint Permissions. Educational or personal use of this material is permitted without fee provided such copies
1) are not made for profit or in lieu of purchasing copies for classes, and that this notice and a full citation to the original work
appear on the first page of the copy and 2) do not imply IEEE endorsement of any third-party products or services. Permission
to reprint/republish this material for commercial, advertising or promotional purposes or for creating new collective works for
resale or redistribution must be obtained from IEEE by writing to the IEEE Intellectual Property Rights Office, 445 Hoes Lane,
Piscataway, NJ 08854-4141 or pubs-permissions@ieee.org.
Reference to any specific commercial products, process, or service does not imply endorsement by IEEE. The views and opin-
ions expressed in this work do not necessarily reflect those of IEEE.
IEEE makes this document available on an “as is” basis and makes no warranty, express or implied, as to the accuracy, capabil-
ity, 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.
Copyright © 2014 IEEE. All rights reserved.
Paperback ISBN-10: 0-7695-5166-1
Paperback ISBN-13: 978-0-7695-5166-1
Digital copies of SWEBOK Guide V3.0 may be downloaded free of charge for personal and academic use via www.swebok.org.
IEEE Computer Society Staff for This Publication
Angela Burgess, Executive Director
Anne Marie Kelly, Associate Executive Director, Director of Governance
Evan M. Butterfield, Director of Products and Services
John Keppler, Senior Manager, Professional Education
Kate Guillemette, Product Development Editor
Dorian McClenahan, Education Program Product Developer
Michelle Phon, Professional Education & Certification Program Coordinator
Jennie Zhu-Mai, Editorial Designer
IEEE Computer Society Products and Services. The world-renowned IEEE Computer Society publishes, promotes, and dis-
tributes a wide variety of authoritative computer science and engineering journals, magazines, conference proceedings, and
professional education products. Visit the Computer Society at www .computer.org for more information.
© ISO/IEC 2016 – All rights reserved
---------------------- Page: 10 ----------------------
ISO/IEC TR 19759:2016(E)
TABLE OF CONTENTS
Foreword xvii
Foreword to the 2004 Edition xix
Editors xxi
Coeditors xxi
Contributing Editors xxi
Change Control Board xxi
Knowledge Area Editors xxiii
Knowledge Area Editors of Previous SWEBOK Versions xxv
Review Team xxvii
Acknowledgements xxix
Professional Activities Board, 2013 Membership xxix
Motions Regarding the Approval of SWEBOK Guide V3.0 xxx
Motions Regarding the Approval of SWEBOK Guide 2004 Version xxx
Introduction to the Guide xxxi
Chapter 1: Software Requirements 1-1
1. Software Requirements Fundamentals 1-1
1.1. Definition of a Software Requirement 1-1
1.2. Product and Process Requirements 1-2
1.3. Functional and Nonfunctional Requirements 1-3
1.4. Emergent Properties 1-3
1.5. Quantifiable Requirements 1-3
1.6. System Requirements and Software Requirements 1-3
2. Requirements Process 1-3
2.1. Process Models 1-4
2.2. Process Actors 1-4
2.3. Process Support and Management 1-4
2.4. Process Quality and Improvement 1-4
3. Requirements Elicitation 1-5
3.1. Requirements Sources 1-5
3.2. Elicitation Techniques 1-6
4. Requirements Analysis 1-7
4.1. Requirements Classification 1-7
4.2. Conceptual Modeling 1-8
4.3. Architectural Design and Requirements Allocation 1-9
4.4. Requirements Negotiation 1-9
4.5. Formal Analysis 1-10
5. Requirements Specification 1-10
5.1. System Definition Document 1-10
5.2. System Requirements Specification 1-10
5.3. Software Requirements Specification 1-11
6. Requirements Validation 1-11
6.1. Requirements Reviews 1-11
6.2. Prototyping 1-12
v
© ISO/IEC 2016 – All rights reserved
---------------------- Page: 11 ----------------------
ISO/IEC TR 19759:2016(E)
vi SWEBOK® Guide V3.0
6.3. Model Validation 1-12
6.4. Acceptance Tests 1-12
7. Practical Considerations 1-12
7.1. Iterative Nature of the Requirements Process 1-13
7.2. Change Management 1-13
7.3. Requirements Attributes 1-13
7.4. Requirements Tracing 1-14
7.5. Measuring Requirements 1-14
8. Software Requirements Tools 1-14
Matrix of Topics vs. Reference Material 1-15
Chapter 2: Software Design 2-1
1. Software Design Fundamentals 2-2
1.1. General Design Concepts 2-2
1.2. Context of Software Design 2-2
1.3. Software Design Process 2-2
1.4. Software Design Principles 2-3
2. Key Issues in Software Design 2-3
2.1. Concurrency 2-4
2.2. Control and Handling of Events 2-4
2.3. Data Persistence 2-4
2.4. Distribution of Components 2-4
2.5. Error and Exception Handling and Fault Tolerance 2-4
2.6. Interaction and Presentation 2-4
2.7. Security 2-4
3. Software Structure and Architecture 2-4
3.1. Architectural Structures and Viewpoints 2-5
3.2. Architectural Styles 2-5
3.3. Design Patterns 2-5
3.4. Architecture Design Decisions 2-5
3.5. Families of Programs and Frameworks 2-5
4. User Interface Design 2-5
4.1. General User Interface Design Principles 2-6
4.2. User Interface Design Issues 2-6
4.3. The Design of User Interaction Modalities 2-6
4.4. The Design of Information Presentation 2-6
4.5. User Interface Design Process 2-7
4.6. Localization and Internationalization 2-7
4.7. Metaphors and Conceptual Models 2-7
5. Software Design Quality Analysis and Evaluation 2-7
5.1. Quality Attributes 2-7
5.2. Quality Analysis and Evaluation Techniques 2-8
5.3. Measures 2-8
6. Software Design Notations 2-8
6.1. Structural Descriptions (Static View) 2-8
6.2. Behavioral Descriptions (Dynamic View) 2-9
7. Software Design Strategies and Methods 2-10
7.1. General Strategies 2-10
7.2. Function-Oriented (Structured) Design 2-10
7.3. Object-Oriented Design 2-10
© ISO/IEC 2016 – All rights reserved
---------------------- Page: 12 ----------------------
ISO/IEC TR 19759:2016(E)
Table of Contents vii
7.4. Data Structure-Centered Design 2-10
7.5. Component-Based Design (CBD) 2-10
7.6. Other Methods 2-10
8. Software Design Tools 2-11
Matrix of Topics vs. Reference Material 2-12
Chapter 3: Software Construction 3-1
1. Software Construction Fundamentals 3-1
1.1. Minimizing Complexity 3-3
1.2. Anticipating Change 3-3
1.3. Constructing for Verification 3-3
1.4. Reuse 3-3
1.5. Standards in Construction 3-3
2. Managing Construction 3-4
2.1. Construction in Life Cycle Models 3-4
2.2. Construction Planning 3-4
2.3. Construction Measurement 3-4
3. Practical Considerations 3-5
3.1. Construction Design 3-5
3.2. Construction Languages 3-5
3.3. Coding 3-6
3.4. Construction Testing 3-6
3.5. Construction for Reuse 3-6
3.6. Construction with Reuse 3-7
3.7. Construction Quality 3-7
3.8. Integration 3-7
4. Construction Technologies 3-8
4.1. API Design and Use 3-8
4.2. Object-Oriented Runtime Issues 3-8
4.3. Parameterization and Generics 3-8
4.4. Assertions, Design by Contract, and Defensive Programming 3-8
4.5. Error Handling, Exception Handling, and Fault Tolerance 3-9
4.6. Executable Models 3-9
4.7. State-Based and Table-Driven Construction Techniques 3-9
4.8. Runtime Configuration and Internationalization 3-10
4.9. Grammar-Based Input Processing 3-10
4.10. Concurrency Primitives 3-10
4.11. Middleware 3-10
4.12. Construction Methods for Distributed Software 3-11
4.13. Constructing Heterogeneous Systems 3-11
4.14. Performance Analysis and Tuning 3-11
4.15. Platform Standards 3-11
4.16. Test-First Programming 3-11
5. Software Construction Tools 3-12
5.1. Development Environments 3-12
5.2. GUI Builders 3-12
5.3. Unit Testing Tools 3-12
5.4. Profiling, Performance Analysis, and Slicing Tools 3-12
Matrix of Topics vs. Reference Material 3-13
© ISO/IEC 2016 – All rights reserved
---------------------- Page: 13 ----------------------
ISO/IEC TR 19759:2016(E)
viii SWEBOK® Guide V3.0
Chapter 4: Software Testing 4-1
1. Software Testing Fundamentals 4-3
1.1. Testing-Related Terminology 4-3
1.2. Key Issues 4-3
1.3. Relationship of Testing to Other Activities 4-4
2. Test Levels 4-5
2.1. The Target of the Test 4-5
2.2. Objectives of Testing 4-5
3. Test Techniques 4-7
3.1. Based on the Software Engineer’s Intuition and Experience 4-8
3.2. Input Domain-Based Techniques 4-8
3.3. Code-Based Techniques 4-8
3.4. Fault-Based Techniques 4-9
3.5. Usage-Based Techniques 4-9
3.6. Model-Based Testing Techniques 4-10
3.7. Techniques Based on the Nature of the Application 4-10
3.8. Selecting and Combining Techniques 4-11
4. Test-Related Measures 4-11
4.1. Evaluation of the Program Under Test 4-11
4.2. Evaluation of the Tests Performed 4-12
5. Test Process 4-12
5.1. Practical Considerations 4-13
5.2. Test Activities 4-14
6. Software Testing Tools 4-15
6.1. Testing Tool Support 4-15
6.2. Categories of Tools 4-15
Matrix of Topics vs. Reference Material 4-17
Chapter 5: Software Maintenance 5-1
1. Software Maintenance Fundamentals 5-1
1.1. Definitions and Terminology 5-1
1.2. Nature of Maintenance 5-2
1.3. Need for Maintenance 5-3
1.4. Majority of Maintenance Costs 5-3
1.5. Evolution of Software 5-3
1.6. Categories of Maintenance 5-3
2. Key Issues in Software Maintenance 5-4
2.1. Technical Issues 5-4
2.2. Management Issues 5-5
2.3. Maintenance Cost Estimation 5-6
2.4. Software Maintenance Measurement 5-7
3. Maintenance Process 5-7
3.1. Maintenance Processes 5-7
3.2. Maintenance Activities 5-8
4. Techniques for Maintenance 5-10
4.1. Program Comprehension 5-10
4.2. Reengineering 5-10
4.3. Reverse Engineering 5-10
4.4. Migration 5-10
4.5. Retirement 5-11
© ISO/IEC 2016 – All rights reserved
---------------------- Page: 14 ----------------------
ISO/IEC TR 19759:2016(E)
Table of Contents ix
5. Software Maintenance Tools 5-11
Matrix of Topics vs. Reference Material 5-12
Chapter 6: Software Configuration Management 6-1
1. Management of the SCM Process 6-2
1.1. Organizational Context for SCM 6-2
1.2. Constraints and Guidance for the SCM Process 6-3
1.3. Planning for SCM 6-3
1.4. SCM Plan 6-5
1.5. Surveillance of Software Configuration Management 6-5
2. Software Configuration Identification 6-6
2.1. Identifying Items to Be Controlled 6-6
2.2. Software Library 6-8
3. Software Configuration Control 6-8
3.1. Requesting, Evaluating, and Approving Software Changes 6-8
3.2. Implementing Software Changes 6-9
3.3. Deviations and Waivers 6-10
4. Software Configuration Status Accounting 6-10
4.1. Software Configuration Status Information 6-10
4.2. Software Configuration Status Reporting 6-10
5. Software Configuration Auditing 6-10
5.1. Software Functional Configuration Audit 6-11
5.2. Software Physical Configuration Audit 6-11
5.3. In-Process Audits of a Software Baseline 6-11
6. Software Release Management and Delivery 6-11
6.1. Software Building 6-11
6.2. Software Release Management 6-12
7. Software Configuration Management Tools 6-12
Matrix of Topics vs. Reference Material 6-13
Chapter 7: Software Engineering Management 7-1
1. Initiation and Scope Definition 7-4
1.1. Determination and Negotiation of Requirements 7-4
1.2. Feasibility Analysis 7-4
1.3. Process for the Review and Revision of Requirements 7-5
2. Software Project Planning 7-5
2.1. Process Planning 7-5
2.2. Determine Deliverables 7-5
2.3. Effort, Schedule, and Cost Estimation 7-6
2.4. Resource Allocation 7-6
2.5. Risk Management 7-6
2.6. Quality Management 7-6
2.7. Plan Management 7-7
3. Software Project Enactment 7-7
3.1. Implementation of Plans 7-7
3.2. Software Acquisition and Supplier Contract Management 7-7
3.3. Implementation of Measurement Process 7-7
3.4. Monitor Process 7-7
3.5. Control Process 7-8
3.6. Reporting 7-8
© ISO/IEC 2016 – All rights reserved
---------------------- Page: 15 ----------------------
ISO/IEC TR 19759:2016(E)
x SWEBOK® Guide V3.0
4. Review and Evaluation 7-8
4.1. Determining Satisfaction of Requirements 7-8
4.2. Reviewing and Evaluating Performance 7-9
5. Closure 7-9
5.1. Determining Closure 7-9
5.2. Closure Activities 7-9
6. Software Engineering Measurement 7-9
6.1. Establish and Sustain Measurement Commitment 7-9
6.2. Plan the Measurement Process 7-10
6.3. Perform the Measurement Process 7-11
6.4. Evaluate Measurement 7-11
7. Software Engineering Management Tools 7-11
Matrix of Topics vs. Reference Material 7-13
Chapter 8: Software Engineering Process 8-1
1. Software Process Definition 8-2
1.1. Software Process Management 8-3
1.2. Software Process Infrastructure 8-4
2. Software Life Cycles 8-4
2.1. Categories of Software Processes 8-5
2.2. Software Life Cycle Models 8-5
2.3. Software Process Adaptation 8-6
2.4. Practical Considerations 8-6
3. Software Process Assessment and Improvement 8-6
3.1. Software Process Assessment Models 8-7
3.2. Software Process Assessment Methods 8-7
3.3. Software Process Improvement Models 8-7
3.4. Continuous and Staged Software Process Ratings 8-8
4. Software Measurement 8-8
4.1. Software Process and Product Measurement 8-9
4.2. Quality of Measurement Results 8-10
4.3. Software Information Models 8-10
4.4. Software Process Measurement Techniques 8-11
5. Software Engineering Process Tools 8-12
Matrix of Topics vs. Reference Material 8-13
Chapter 9: Software Engineering Models and Methods 9-1
1. Modeling 9-1
1.1. Modeling Principles 9-2
1.2. Properties and Expression of Models 9-3
1.3. Syntax, Semantics, and Pragmatics 9-3
1.4. Preconditions, Postconditions, and Invariants 9-4
2. Types of Models 9-4
2.1. Information Modeling 9-5
2.2. Behavioral Modeling 9-5
2.3. Structure Modeling 9-5
3. Analysis of Models 9-5
3.1. Analyzing for Completeness 9-5
3.2. Analyzing for Consistency 9-6
© ISO/IEC 2016 – All rights reserved
---------------------- Page: 16 ----------------------
ISO/IEC TR 19759:2016(E)
Table of Contents xi
3.3. Analyzing for Correctness 9-6
3.4. Traceability 9-6
3.5. Interaction Analysis 9-6
4. Software Engineering Methods 9-7
4.1. Heuristic Methods 9-7
4.2. Formal Methods 9-7
4.3. Prototyping Methods 9-8
4.4. Agile Methods 9-9
Matrix of Topics vs. Reference Material 9-10
Chapter 10: Software Quality 10-1
1. Software Quality Fundamentals 10-2
1.1. Software Engineering Culture and Ethics 10-2
1.2. Value and Costs of Quality 10-3
1.3. Models and Quality Characteristics 10-3
1.4. Software Quality Improvement 10-4
1.5. Software Safety 10-4
2. Software Quality Management Processes 10-5
2.1. Software Quality Assurance 10-5
2.2. Verification & Validation 10-6
2.3. Reviews and Audits 10-6
3. Practical Considerations 10-9
3.1. Software Quality Requirements 10-9
3.2. Defect Characterization 10-10
3.3. Software Quality Management Techniques 10-11
3.4. Software Quality Measurement 10-12
4. Software Quality Tools 10-12
Matrix of Topics vs. Reference Material 10-14
Chapter 11: Software Engineering Professional Practice 11-1
1. Professionalism 11-2
1.1. Accreditation, Certification, and Licensing 11-3
1.2. Codes of Ethics and Professional Conduct 11-4
1.3. Nature and Role of Professional Societies 11-4
1.4. Nature and Role of Software Engineering Standards 11-4
1.5. Economic Impact of Software 11-5
1.6. Employment Contracts 11-5
1.7. Legal Issues 11-5
1.8. Documentation 11-7
1.9. Tradeoff Analysis 11-8
2. Group Dynamics and Psychology 11-9
2.1. Dynamics of Working in Teams/Groups 11-9
2.2. Individual Cognition 11-9
2.3. Dealing with Problem Complexity 11-10
2.4. Interacting with Stakeholders 11-10
2.5. Dealing with Uncertainty and Ambiguity 11-10
2.6. Dealing with Multicultural Environments 11-10
3. Communication Skills 11-11
3.1. Reading, Understanding, and Summarizing 11-11
© ISO/IEC 2016 – All rights reserved
---------------------- Page: 17 ----------------------
ISO/IEC TR 19759:2016(E)
xii SWEBOK® Guide V3.0
3.2. Writing 11-11
3.3. Team and Group Communication 11-11
3.4. Presentation Skills 11-12
Matrix of Topics vs. Reference Material 11-13
Chapter 12: Software Engineering Economics 12-1
1. Software Engineering Economics Fundamentals 12-3
1.1. Finance 12-3
1.2. Accounting 12-3
1.3. Controlling 12-3
1.4. Cash Flow 12-3
1.5. Decision-Making Process 12-4
1.6. Valuation 12-5
1.7. Inflation 12-6
1.8. Depreciation 12-6
1.9. Taxation 12-6
1.10. Time-Value of Money 12-6
1.11. Efficiency 12-6
1.12. Effectiveness 12-6
1.13. Productivity 12-6
2. Life Cycle Economics 12-7
2.1. Product 12-7
2.2. Project 12-7
2.3. Program 12-7
2.4. Portfolio 12-7
2.5. Product Life Cycle 12-7
2.6. Project Life Cycle 12-7
2.7. Proposals 12-8
2.8. Investment Decisions 12-8
2.9. Planning Horizon 12-8
2.10. Price and Pricing 12-8
2.11. Cost and Costing 12-9
2.12. Performance Measurement 12-9
2.13. Earned Value Management 12-9
2.14. Termination Decisions 12-9
2.15. Replacement and Retirement Decisions 12-10
3. Risk and Uncertainty 12-10
3.1. Goals, Estimates, and Plans 12-10
3.2. Estimation Techniques 12-11
3.3. Addressing Uncertainty 12-11
3.4. Prioritization 12-11
3.5. Decisions under Risk 12-11
3.6. Decisions under Uncertainty 12-12
4. Economic Analysis Methods 12-12
4.1. For-Profit Decision Analysis 12-12
4.2. Minimum Acceptable Rate of Return 12-13
4.3. Return on Investment 12-13
4.4. Return on Capital Employed 12-13
4.5. Cost-Benefit Analysis 12-13
© ISO/IEC 2016 – All rights reserved
---------------------- Page: 18 ----------------------
ISO/IEC TR 19759:2016(E)
Table of Contents xiii
4.6. Cost-Effectiveness Analysis 12-13
4.7. Break-Even Analysis 12-13
4.8. Business Case 12-13
4.9. Multiple Attribute Evaluation 12-14
4.10. Optimization Analysis 12-14
5. Practical Considerations 12-14
5.1. The “Good Enough” Principle 12-14
5.2. Friction-Free Economy 12-15
5.3. Ecosystems 12-15
5.4. Offshoring and Outsourcing 12-15
Matrix of Topics vs. Reference Material 12-16
Chapter 13: Computing Foundations 13-1
1. Problem Solving Techniques 13-3
1.1. Definition of Problem Solving 13-3
1.2. Formulating the Real Problem 13-3
1.3. Analyze the Problem 13-3
1.4. Design a Solution Search Strategy 13-3
1.5. Problem Solving Using Programs 13-3
2. Abstraction 13-4
2.1. Levels of Abstraction 13-4
2.2. Encapsulation 13-4
2.3. Hierarchy 13-4
2.4. Alternate Abstractions 13-5
3. Programming Fundamentals 13-5
3.1. The Programming Process 13-5
3.2. Programming Paradigms 13-5
4. Programming Language Basics 13-6
4.1. Programming Language Overview 13-6
4.2. Syntax and Semantics of Programming Languages 13-6
4.3. Low-Level Programming Languages 13-7
4.4. High-Level Programming Languages 13-7
4.5. Declarative vs. Imperative Programming Languages 13-7
5. Debugging Tools and Techniques 13-8
5.1. Types of Errors 13-8
5.2. Debugging Techniques 13-8
5.3. Debugging Tools 13-8
6. Data Structure and Representation 13-9
6.1. Data Structure Overview 13-9
6.2. Types of Data Structure 13-9
6.3. Operations on Data Structures 13-9
7. Algorithms and Complexity 13-10
7.1. Overview of Algorithms 13-10
7.2. Attributes of Algorithms 13-10
7.3. Algorithmic Analysis 13-10
7.4. Algorithmic Design Strategies 13-11
7.5. Algorithmic Analysis Strategies 13-11
8. Basic Concept of a System 13-11
8.1. Emergent System Properties 13-11
© ISO/IEC 2016 – All rights reserved
---------------------- Page: 19 ----------------------
ISO/IEC TR 19759:2016(E)
xiv SWEBOK® Guide V3.0
8.2. Systems Engineering 13-12
8.3. Overview of a Computer System 13-12
9. Computer Organization 13-13
9.1. Computer Organization Overview 13-13
9.2. Digital Systems 13-13
9.3. Digital Logic 13-13
9.4. Computer Expression of Data 13-13
9.5. The Central Processing Unit (CPU) 13-14
9.6. Memory System Organization 13-14
9.7. Input and Output (I/O) 13-14
10. Compiler Basics 13-15
10.1. Compiler/Interpreter Overview 13-15
10.2. Interpretation and Compilation 13-15
10.3. The Compilation Process 13-15
11. Operating Systems Bas
...
TECHNICAL ISO/IEC TR
REPORT 19759
Second edition
2015-10-01
Software Engineering — Guide to
the software engineering body of
knowledge (SWEBOK)
Ingénierie du logiciel — Guide du corps de connaissance de
l’ingénierie du logiciel (SWEBOK)
Reference number
ISO/IEC TR 19759:2015(E)
©
ISO/IEC 2015
---------------------- Page: 1 ----------------------
ISO/IEC TR 19759:2015(E)
COPYRIGHT PROTECTED DOCUMENT
© ISO/IEC 2015, Published in Switzerland
All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized otherwise in any form
or by any means, electronic or mechanical, including photocopying, or posting on the internet or an intranet, without prior
written permission. Permission can be requested from either ISO at the address below or ISO’s member body in the country of
the requester.
ISO copyright office
Ch. de Blandonnet 8 • CP 401
CH-1214 Vernier, Geneva, Switzerland
Tel. +41 22 749 01 11
Fax +41 22 749 09 47
copyright@iso.org
www.iso.org
ii © ISO/IEC 2015 – All rights reserved
---------------------- Page: 2 ----------------------
ISO/IEC TR 19759:2015(E)
Contents Page
Foreword .iv
Introduction.v
1 Scope.1
2 Recommendations .1
3 Revision of the IEEE Computer Society Publication .1
4 Publication .1
© ISO/IEC 2015 – All rights reserved iii
---------------------- Page: 3 ----------------------
ISO/IEC TR 19759:2015(E)
Foreword
ISO (the International Organization for Standardization) and IEC (the International Electrotechnical
Commission) form the specialized system for worldwide standardization. National bodies that are
members of ISO or IEC participate in the development of International Standards through technical
committees established by the respective organization to deal with particular fields of technical
activity. ISO and IEC technical committees collaborate in fields of mutual interest. Other
international organizations, governmental and non‐governmental, in liaison with ISO and IEC, also
take part in the work. In the field of information technology, ISO and IEC have established a joint
technical committee, ISO/IEC JTC 1.
The procedures used to develop this document and those intended for its further maintenance are
described in the ISO/IEC Directives, Part 1. In particular the different approval criteria needed for
the different types of document should be noted. This document was drafted in accordance with the
editorial rules of the ISO/IEC Directives, Part 2 (see www.iso.org/directives).
Attention is drawn to the possibility that some of the elements of this document may be the subject
of patent rights. ISO and IEC shall not be held responsible for identifying any or all such patent
rights. Details of any patent rights identified during the development of the document will be in the
Introduction and/or on the ISO list of patent declarations received (see www.iso.org/patents).
Any trade name used in this document is information given for the convenience of users and does
not constitute an endorsement.
For an explanation on the meaning of ISO specific terms and expressions related to conformity
assessment, as well as information about ISO's adherence to the WTO principles in the Technical
Barriers to Trade (TBT), see the following URL: Foreword — Supplementary information.
This second edition cancels and replaces ISO/IEC TR 19759:2005 which has been technically
revised.
ISO/IEC TR 19759 was prepared by the IEEE Computer Society and was adopted, under a special
“fast‐track procedure”, by Joint Technical Committee ISO/IEC JTC 1, Information technology, in
parallel with its approval by national bodies of ISO and IEC.
iv © ISO/IEC 2015 – All rights reserved
---------------------- Page: 4 ----------------------
ISO/IEC TR 19759:2015(E)
Introduction
The purpose of the Guide to the Software Engineering Body of Knowledge is to provide a consensually validated
characterization of the bounds of the software engineering discipline and to provide a topical access to the Body of
Knowledge supporting that discipline. The Body of Knowledge is subdivided into fifteen software engineering
Knowledge Areas (KA) providing an outline of topics. The descriptions in the KAs are designed to discriminate
among the various important concepts, permitting readers to find their way quickly to subjects of interest. Upon
finding a subject, readers are referred to key papers or books selected because they succinctly present the
knowledge.
Publication of the 2004 version of this Guide to the Software Engineering Body of Knowledge (SWEBOK
2004)—adopted as ISO/IEC TR 19759:2005—was a major milestone in establishing software engineering as
a recognized engineering discipline. The goal in developing this update to SWEBOK is to improve the
currency, readability, consistency, and usability of the Guide. All knowledge areas (KAs) have been updated
to reflect changes in software engineering since publication of SWEBOK 2004. Four new foundation KAs and
a Software Engineering Professional Practices KA have been added. The Software Engineering Tools and
Methods KA has been revised as Software Engineering Models and Methods. Software engineering tools is
now a topic in each of the KAs. Three appendices provide the specifications for the KA description, an
annotated set of relevant standards for each KA, and a listing of the references cited in the Guide.
An emphasis on engineering practice leads the Guide toward a strong relationship with the normative
literature. Most of the computer science, information technology and software engineering literature provides
information useful to software engineers, but a relatively small portion is normative. A normative document
prescribes what an engineer should do in a specified situation rather than providing information that might be
helpful. The normative literature is validated by consensus formed among practitioners and is concentrated in
standards and related documents. From the beginning, the SWEBOK project was conceived as having a
strong relationship to the normative literature of software engineering. The two major standards bodies for
software engineering (IEEE Computer Society Software and Systems Engineering Standards Committee and
ISO/IEC JTC1/SC7) cooperated in the project.
The Guide is oriented toward a variety of audiences, all over the world. It aims to serve public and private
organizations in need of a consistent view of software engineering for defining education and training
requirements, classifying jobs, developing performance evaluation policies or specifying software
development tasks. It also addresses practicing, or managing, software engineers and the officials responsible
for making public policy regarding licensing and professional guidelines. In addition, professional societies and
educators defining the certification rules, accreditation policies for university curricula, and guidelines for
professional practice will benefit from the SWEBOK Guide, as well as the students learning the software
engineering profession and educators and trainers engaged in defining curricula and course content.
v
© ISO/IEC 2015 – All rights reserved
---------------------- Page: 5 ----------------------
TECHNICAL REPORT ISO/IEC TR 19759:2015(E)
Software Engineering — Guide to the Software Engineering
Body of Knowledge (SWEBOK) — Version 3.0
1 Scope
This Technical report characterizes the boundaries of the software engineering discipline and provides topical
access to the literature supporting that discipline.
2 Recommendations
As a Technical Report, this document does not make technical recommendations. The information provided is
that contained in the following publication (reproduced on the following pages), which is adopted as a
Technical Report:
Guide to the Software Engineering Body of Knowledge (SWEBOK) V3.0, IEEE Computer Society
3 Revision of the IEEE Computer Society Publication
It has been agreed with the IEEE Computer Society that ISO/IEC JTC 1/SC 7 will be consulted in the event of
any revision or amendment of this IEEE Computer Society publication. Consultation will be accomplished by
the existing Category A liaison relationship between SC 7 and IEEE Computer Society.
4 Publication
The report of the IEEE Computer Society appears on the following pages.
© ISO/IEC 201� – All rights reserved 1
---------------------- Page: 6 ----------------------
ISO/IEC TR 19759:2015(E)
© ISO/IEC 2015 – All rights reserved
---------------------- Page: 7 ----------------------
ISO/IEC TR 19759:2015(E)
Guide to the Software Engineering
Body of Knowledge
Version 3.0
®
SWEBOK
A Project of the IEEE Computer Society
© ISO/IEC 2015 – All rights reserved
---------------------- Page: 8 ----------------------
ISO/IEC TR 19759:2015(E)
Guide to the Software Engineering
Body of Knowledge
Version 3.0
Editors
Pierre Bourque, École de technologie supérieure (ÉTS)
Richard E. (Dick) Fairley, Software and Systems Engineering Associates (S2EA)
© ISO/IEC 2015 – All rights reserved
---------------------- Page: 9 ----------------------
ISO/IEC TR 19759:2015(E)
Copyright and Reprint Permissions. Educational or personal use of this material is permitted without fee provided such copies
1) are not made for profit or in lieu of purchasing copies for classes, and that this notice and a full citation to the original work
appear on the first page of the copy and 2) do not imply IEEE endorsement of any third-party products or services. Permission
to reprint/republish this material for commercial, advertising or promotional purposes or for creating new collective works for
resale or redistribution must be obtained from IEEE by writing to the IEEE Intellectual Property Rights Office, 445 Hoes Lane,
Piscataway, NJ 08854-4141 or pubs-permissions@ieee.org.
Reference to any specific commercial products, process, or service does not imply endorsement by IEEE. The views and opin-
ions expressed in this work do not necessarily reflect those of IEEE.
IEEE makes this document available on an “as is” basis and makes no warranty, express or implied, as to the accuracy, capabil-
ity, 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.
Copyright © 2014 IEEE. All rights reserved.
Paperback ISBN-10: 0-7695-5166-1
Paperback ISBN-13: 978-0-7695-5166-1
Digital copies of SWEBOK Guide V3.0 may be downloaded free of charge for personal and academic use via www.swebok.org.
IEEE Computer Society Staff for This Publication
Angela Burgess, Executive Director
Anne Marie Kelly, Associate Executive Director, Director of Governance
Evan M. Butterfield, Director of Products and Services
John Keppler, Senior Manager, Professional Education
Kate Guillemette, Product Development Editor
Dorian McClenahan, Education Program Product Developer
Michelle Phon, Professional Education & Certification Program Coordinator
Jennie Zhu-Mai, Editorial Designer
IEEE Computer Society Products and Services. The world-renowned IEEE Computer Society publishes, promotes, and dis-
tributes a wide variety of authoritative computer science and engineering journals, magazines, conference proceedings, and
professional education products. Visit the Computer Society at www.computer.org for more information.
© ISO/IEC 2015 – All rights reserved
---------------------- Page: 10 ----------------------
ISO/IEC TR 19759:2015(E)
TABLE OF CONTENTS
Foreword xvii
Foreword to the 2004 Edition xix
Editors xxi
Coeditors xxi
Contributing E ditors xxi
Change Control B oard xxi
Knowledge A rea Editors xxiii
Knowledge Area Editors of Previous SWEBOK Versions xxv
Review T eam xxvii
Acknow ledge ments xxix
Professional Activities Board, 2013 Membership xxix
Motions Regarding the Approval of SWEBOK Guide V3.0 xxx
Motions Regarding the Approval of SWEBOK Guide 2004 Version xxx
Introduction to the Guide xxxi
Chapter 1: Software Requirements 1-1
1. Software Requirements Fundamentals 1-1
1.1. DefinitionofaSoftwareRequirement 1-1
1.2. ProductandProcessRequirements 1-2
1.3. FunctionalandNonfunctionalRequirements 1-3
1.4. EmergentProperties 1-3
1.5. QuantifiableRequirements 1-3
1.6. SystemRequirementsandSoftwareRequirements 1-3
2. Requirements Process 1-3
2.1. ProcessModels 1-4
2.2. ProcessActors 1-4
2.3. ProcessSupportandManagement 1-4
2.4. ProcessQualityandImprovement 1-4
3. Requirements Elicitation 1-5
3.1. RequirementsSources 1-5
3.2. ElicitationTechniques 1-6
4. Requirements Analysis 1-7
4.1. RequirementsClassification 1-7
4.2. ConceptualModeling 1-8
4.3. ArchitecturalDesignandRequirementsAllocation 1-9
4.4. RequirementsNegotiation 1-9
4.5. FormalAnalysis 1-10
5. Requirements Specification 1-10
5.1. SystemDefinitionDocument 1-10
5.2. SystemRequirementsSpecification 1-10
5.3. SoftwareRequirementsSpecification 1-11
6. Requirements Validation 1-11
6.1. RequirementsReviews 1-11
6.2. Prototyping 1-12
v
© ISO/IEC 2015 – All rights reserved
---------------------- Page: 11 ----------------------
ISO/IEC TR 19759:2015(E)
vi SWEBOK® Guide V3.0
6.3. ModelValidation 1-12
6.4. AcceptanceTests 1-12
7. Practical Considerations 1-12
7.1. IterativeNatureoftheRequirementsProcess 1-13
7.2. ChangeManagement 1-13
7.3. RequirementsAttributes 1-13
7.4. RequirementsTracing 1-14
7.5. MeasuringRequirements 1-14
8. Software Requirements Tools 1-14
Matrix of Topics vs. Reference Material 1-15
Chapter 2: Software Design 2-1
1. Software Design Fundamentals 2-2
1.1. GeneralDesignConcepts 2-2
1.2. ContextofSoftwareDesign 2-2
1.3. SoftwareDesignProcess 2-2
1.4. SoftwareDesignPrinciples 2-3
2. Key Issues in Software Design 2-3
2.1. Concurrency 2-4
2.2. ControlandHandlingofEvents 2-4
2.3. DataPersistence 2-4
2.4. DistributionofComponents 2-4
2.5. ErrorandExceptionHandlingandFaultTolerance 2-4
2.6. InteractionandPresentation 2-4
2.7. Security 2-4
3. Software Structure and Architecture 2-4
3.1. ArchitecturalStructuresandViewpoints 2-5
3.2. ArchitecturalStyles 2-5
3.3. DesignPatterns 2-5
3.4. ArchitectureDesignDecisions 2-5
3.5. FamiliesofProgramsandFrameworks 2-5
4. User Interface Design 2-5
4.1. GeneralUserInterfaceDesignPrinciples 2-6
4.2. UserInterfaceDesignIssues 2-6
4.3. TheDesignofUserInteractionModalities 2-6
4.4. TheDesignofInformationPresentation 2-6
4.5. UserInterfaceDesignProcess 2-7
4.6. LocalizationandInternationalization 2-7
4.7. MetaphorsandConceptualModels 2-7
5. Software Design Quality Analysis and Evaluation 2-7
5.1. QualityAttributes 2-7
5.2. QualityAnalysisandEvaluationTechniques 2-8
5.3. Measures 2-8
6. Software Design Notations 2-8
6.1. StructuralDescriptions(StaticView) 2-8
6.2. BehavioralDescriptions(DynamicView) 2-9
7. Software Design Strategies and Methods 2-10
7.1. GeneralStrategies 2-10
7.2. Function-Oriented(Structured)Design 2-10
7.3. Object-OrientedDesign 2-10
© ISO/IEC 2015 – All rights reserved
---------------------- Page: 12 ----------------------
ISO/IEC TR 19759:2015(E)
Table of Contents vii
7.4. DataStructure-CenteredDesign 2-10
7.5. Component-BasedDesign(CBD) 2-10
7.6. OtherMethods 2-10
8. Software Design Tools 2-11
Matrix of Topics vs. Reference Material 2-12
Chapter 3: Software Construction 3-1
1. Software Construction Fundamentals 3-1
1.1. MinimizingComplexity 3-3
1.2. AnticipatingChange 3-3
1.3. ConstructingforVerification 3-3
1.4. Reuse 3-3
1.5. StandardsinConstruction 3-3
2. Managing Construction 3-4
2.1. ConstructioninLifeCycleModels 3-4
2.2. ConstructionPlanning 3-4
2.3. ConstructionMeasurement 3-4
3. Practical Considerations 3-5
3.1. ConstructionDesign 3-5
3.2. ConstructionLanguages 3-5
3.3. Coding 3-6
3.4. ConstructionTesting 3-6
3.5. ConstructionforReuse 3-6
3.6. ConstructionwithReuse 3-7
3.7. ConstructionQuality 3-7
3.8. Integration 3-7
4. Construction Technologies 3-8
4.1. APIDesignandUse 3-8
4.2. Object-OrientedRuntimeIssues 3-8
4.3. ParameterizationandGenerics 3-8
4.4. Assertions,DesignbyContract,andDefensiveProgramming 3-8
4.5. ErrorHandling,ExceptionHandling,andFaultTolerance 3-9
4.6. ExecutableModels 3-9
4.7. State-BasedandTable-DrivenConstructionTechniques 3-9
4.8. RuntimeConfigurationandInternationalization 3-10
4.9. Grammar-BasedInputProcessing 3-10
4.10. ConcurrencyPrimitives 3-10
4.11. Middleware 3-10
4.12. ConstructionMethodsforDistributedSoftware 3-11
4.13. ConstructingHeterogeneousSystems 3-11
4.14. PerformanceAnalysisandTuning 3-11
4.15. PlatformStandards 3-11
4.16. Test-FirstProgramming 3-11
5. Software Construction Tools 3-12
5.1. DevelopmentEnvironments 3-12
5.2. GUIBuilders 3-12
5.3. UnitTestingTools 3-12
5.4. Profiling,PerformanceAnalysis,andSlicingTools 3-12
Matrix of Topics vs. Reference Material 3-13
© ISO/IEC 2015 – All rights reserved
---------------------- Page: 13 ----------------------
ISO/IEC TR 19759:2015(E)
viii SWEBOK® Guide V3.0
Chapter 4: Software Testing 4-1
1. Software Testing Fundamentals 4-3
1.1. Testing-RelatedTerminology 4-3
1.2. KeyIssues 4-3
1.3. RelationshipofTestingtoOtherActivities 4-4
2. Test Levels 4-5
2.1. TheTargetoftheTest 4-5
2.2. ObjectivesofTesting 4-5
3. Test Techniques 4-7
3.1. BasedontheSoftwareEngineer’sIntuitionandExperience 4-8
3.2. InputDomain-BasedTechniques 4-8
3.3. Code-BasedTechniques 4-8
3.4. Fault-BasedTechniques 4-9
3.5. Usage-BasedTechniques 4-9
3.6. Model-BasedTestingTechniques 4-10
3.7. TechniquesBasedontheNatureoftheApplication 4-10
3.8. SelectingandCombiningTechniques 4-11
4. Test-Related Measures 4-11
4.1. EvaluationoftheProgramUnderTest 4-11
4.2. EvaluationoftheTestsPerformed 4-12
5. Test Process 4-12
5.1. PracticalConsiderations 4-13
5.2. TestActivities 4-14
6. Software Testing Tools 4-15
6.1. TestingToolSupport 4-15
6.2. CategoriesofTools 4-15
Matrix of Topics vs. Reference Material 4-17
Chapter 5: Software Maintenance 5-1
1. Software Maintenance Fundamentals 5-1
1.1. DefinitionsandTerminology 5-1
1.2. NatureofMaintenance 5-2
1.3. NeedforMaintenance 5-3
1.4. MajorityofMaintenanceCosts 5-3
1.5. EvolutionofSoftware 5-3
1.6. CategoriesofMaintenance 5-3
2. Key Issues in Software Maintenance 5-4
2.1. TechnicalIssues 5-4
2.2. ManagementIssues 5-5
2.3. MaintenanceCostEstimation 5-6
2.4. SoftwareMaintenanceMeasurement 5-7
3. Maintenance Process 5-7
3.1. MaintenanceProcesses 5-7
3.2. MaintenanceActivities 5-8
4. Techniques for Maintenance 5-10
4.1. ProgramComprehension 5-10
4.2. Reengineering 5-10
4.3. ReverseEngineering 5-10
4.4. Migration 5-10
4.5. Retirement 5-11
© ISO/IEC 2015 – All rights reserved
---------------------- Page: 14 ----------------------
ISO/IEC TR 19759:2015(E)
Table of Contents ix
5. Software Maintenance Tools 5-11
Matrix of Topics vs. Reference Material 5-12
Chapter 6: Software Configuration Management 6-1
1. Management of the SCM Process 6-2
1.1. OrganizationalContextforSCM 6-2
1.2. ConstraintsandGuidancefortheSCMProcess 6-3
1.3. PlanningforSCM 6-3
1.4. SCMPlan 6-5
1.5. SurveillanceofSoftwareConfigurationManagement 6-5
2. Software Configuration Identification 6-6
2.1. IdentifyingItemstoBeControlled 6-6
2.2. SoftwareLibrary 6-8
3. Software Configuration Control 6-8
3.1. Requesting,Evaluating,andApprovingSoftwareChanges 6-8
3.2. ImplementingSoftwareChanges 6-9
3.3. DeviationsandWaivers 6-10
4. Software Configuration Status Accounting 6-10
4.1. SoftwareConfigurationStatusInformation 6-10
4.2. SoftwareConfigurationStatusReporting 6-10
5. Software Configuration Auditing 6-10
5.1. SoftwareFunctionalConfigurationAudit 6-11
5.2. SoftwarePhysicalConfigurationAudit 6-11
5.3. In-ProcessAuditsofaSoftwareBaseline 6-11
6. Software Release Management and Delivery 6-11
6.1. SoftwareBuilding 6-11
6.2. SoftwareReleaseManagement 6-12
7. Software Configuration Management Tools 6-12
Matrix of Topics vs. Reference Material 6-13
Chapter 7: Software Engineering Management 7-1
1. Initiation and Scope Definition 7-4
1.1. DeterminationandNegotiationofRequirements 7-4
1.2. FeasibilityAnalysis 7-4
1.3. ProcessfortheReviewandRevisionofRequirements 7-5
2. Software Project Planning 7-5
2.1. ProcessPlanning 7-5
2.2. DetermineDeliverables 7-5
2.3. Effort,Schedule,andCostEstimation 7-6
2.4. ResourceAllocation 7-6
2.5. RiskManagement 7-6
2.6. QualityManagement 7-6
2.7. PlanManagement 7-7
3. Software Project Enactment 7-7
3.1. ImplementationofPlans 7-7
3.2. SoftwareAcquisitionandSupplierContractManagement 7-7
3.3. ImplementationofMeasurementProcess 7-7
3.4. MonitorProcess 7-7
3.5. ControlProcess 7-8
3.6. Reporting 7-8
© ISO/IEC 2015 – All rights reserved
---------------------- Page: 15 ----------------------
ISO/IEC TR 19759:2015(E)
x SWEBOK® Guide V3.0
4. Review and Evaluation 7-8
4.1. DeterminingSatisfactionofRequirements 7-8
4.2. ReviewingandEvaluatingPerformance 7-9
5. Closure 7-9
5.1. DeterminingClosure 7-9
5.2. ClosureActivities 7-9
6. Software Engineering Measurement 7-9
6.1. EstablishandSustainMeasurementCommitment 7-9
6.2. PlantheMeasurementProcess 7-10
6.3. PerformtheMeasurementProcess 7-11
6.4. EvaluateMeasurement 7-11
7. Software Engineering Management Tools 7-11
Matrix of Topics vs. Reference Material 7-13
Chapter 8: Software Engineering Process 8-1
1. Software Process Definition 8-2
1.1. SoftwareProcessManagement 8-3
1.2. SoftwareProcessInfrastructure 8-4
2. Software Life Cycles 8-4
2.1. CategoriesofSoftwareProcesses 8-5
2.2. SoftwareLifeCycleModels 8-5
2.3. SoftwareProcessAdaptation 8-6
2.4. PracticalConsiderations 8-6
3. Software Process Assessment and Improvement 8-6
3.1. SoftwareProcessAssessmentModels 8-7
3.2. SoftwareProcessAssessmentMethods 8-7
3.3. SoftwareProcessImprovementModels 8-7
3.4. ContinuousandStagedSoftwareProcessRatings 8-8
4. Software Measurement 8-8
4.1. SoftwareProcessandProductMeasurement 8-9
4.2. QualityofMeasurementResults 8-10
4.3. SoftwareInformationModels 8-10
4.4. SoftwareProcessMeasurementTechniques 8-11
5. Software Engineering Process Tools 8-12
Matrix of Topics vs. Reference Material 8-13
Chapter 9: Software Engineering Models and Methods 9-1
1. Modeling 9-1
1.1. ModelingPrinciples 9-2
1.2. PropertiesandExpressionofModels 9-3
1.3. Syntax,Semantics,andPragmatics 9-3
1.4. Preconditions,Postconditions,andInvariants 9-4
2. Types of Models 9-4
2.1. InformationModeling 9-5
2.2. BehavioralModeling 9-5
2.3. StructureModeling 9-5
3. Analysis of Models 9-5
3.1. AnalyzingforCompleteness 9-5
3.2. AnalyzingforConsistency 9-6
© ISO/IEC 2015 – All rights reserved
---------------------- Page: 16 ----------------------
ISO/IEC TR 19759:2015(E)
Table of Contents xi
3.3. AnalyzingforCorrectness 9-6
3.4. Traceability 9-6
3.5. InteractionAnalysis 9-6
4. Software Engineering Methods 9-7
4.1. HeuristicMethods 9-7
4.2. FormalMethods 9-7
4.3. PrototypingMethods 9-8
4.4. AgileMethods 9-9
Matrix of Topics vs. Reference Material 9-10
Chapter 10: Software Quality 10-1
1. Software Quality Fundamentals 10-2
1.1. SoftwareEngineeringCultureandEthics 10-2
1.2. ValueandCostsofQuality 10-3
1.3. ModelsandQualityCharacteristics 10-3
1.4. SoftwareQualityImprovement 10-4
1.5. SoftwareSafety 10-4
2. Software Quality Management Processes 10-5
2.1. SoftwareQualityAssurance 10-5
2.2. Verification&Validation 10-6
2.3. ReviewsandAudits 10-6
3. Practical Considerations 10-9
3.1. SoftwareQualityRequirements 10-9
3.2. DefectCharacterization 10-10
3.3. SoftwareQualityManagementTechniques 10-11
3.4. SoftwareQualityMeasurement 10-12
4. Software Quality Tools 10-12
Matrix of Topics vs. Reference Material 10-14
Chapter 11: Software Engineering Professional Practice 11-1
1. Professionalism 11-2
1.1. Accreditation,Certification,andLicensing 11-3
1.2. CodesofEthicsandProfessionalConduct 11-4
1.3. NatureandRoleofProfessionalSocieties 11-4
1.4. NatureandRoleofSoftwareEngineeringStandards 11-4
1.5. EconomicImpactofSoftware 11-5
1.6. EmploymentContracts 11-5
1.7. LegalIssues 11-5
1.8. Documentation 11-7
1.9. TradeoffAnalysis 11-8
2. Group Dynamics and Psychology 11-9
2.1. DynamicsofWorkinginTeams/Groups 11-9
2.2. IndividualCognition 11-9
2.3. DealingwithProblemComplexity 11-10
2.4. InteractingwithStakeholders 11-10
2.5. DealingwithUncertaintyandAmbiguity 11-10
2.6. DealingwithMulticulturalEnvironments 11-10
3. Communication Skills 11-11
3.1. Reading,Understanding,andSummarizing 11-11
© ISO/IEC 2015 – All rights reserved
---------------------- Page: 17 ----------------------
ISO/IEC TR 19759:2015(E)
xii SWEBOK® Guide V3.0
3.2. Writing 11-11
3.3. TeamandGroupCommunication 11-11
3.4. PresentationSkills 11-12
Matrix of Topics vs. Reference Material 11-13
Chapter 12: Software Engineering Economics 12-1
1. Software Engineering Economics Fundamentals 12-3
1.1. Finance 12-3
1.2. Accounting 12-3
1.3. Controlling 12-3
1.4. CashFlow 12-3
1.5. Decision-MakingProcess 12-4
1.6. Valuation 12-5
1.7. Inflation 12-6
1.8. Depreciation 12-6
1.9. Taxation 12-6
1.10. Time-ValueofMoney 12-6
1.11. Efficiency 12-6
1.12. Effectiveness 12-6
1.13. Productivity 12-6
2. Life Cycle Economics 12-7
2.1. Product 12-7
2.2. Project 12-7
2.3. Program 12-7
2.4. Portfolio 12-7
2.5. ProductLifeCycle 12-7
2.6. ProjectLifeCycle 12-7
2.7. Proposals 12-8
2.8. InvestmentDecisions 12-8
2.9. PlanningHorizon 12-8
2.10. PriceandPricing 12-8
2.11. CostandCosting 12-9
2.12. PerformanceMeasurement 12-9
2.13. EarnedValueManagement 12-9
2.14. TerminationDecisions 12-9
2.15. ReplacementandRetirementDecisions 12-10
3. Risk and Uncertainty 12-10
3.1. Goals,Estimates,andPlans 12-10
3.2. EstimationTechniques 12-11
3.3. AddressingUncertainty 12-11
3.4. Prioritization 12-11
3.5. DecisionsunderRisk 12-11
3.6. DecisionsunderUncertainty 12-12
4. Economic Analysis Methods 12-12
4.1. For-ProfitDecisionAnalysis 12-12
4.2. MinimumAcceptableRateofReturn 12-13
4.3. ReturnonInvestment 12-13
4.4. ReturnonCapitalEmployed 12-13
4.5. Cost-BenefitAnalysis 12-13
© ISO/IEC 2015 – All rights reserved
---------------------- Page: 18 ----------------------
ISO/IEC TR 19759:2015(E)
Table of Contents xiii
4.6. Cost-EffectivenessAnalysis 12-13
4.7. Break-EvenAnalysis 12-13
4.8. BusinessCase 12-13
4.9. MultipleAttributeEvaluation 12-14
4.10. OptimizationAnalysis 12-14
5. Practical Considerations 12-14
5.1. The“GoodEnough”Principle 12-14
5.2. Friction-FreeEconomy 12-15
5.3. Ecosystems 12-15
5.4. OffshoringandOutsourcing 12-15
Matrix of Topics vs. Reference Material 12-16
Chapter 13: Computing Foundations 13-1
1. Problem Solving Techniques 13-3
1.1. DefinitionofProblemSolving 13-3
1.2. FormulatingtheRealProblem 13-3
1.3. AnalyzetheProblem 13-3
1.4. DesignaSolutionSearchStrategy 13-3
1.5. ProblemSolvingUsingPrograms 13-3
2. Abstraction 13-4
2.1. LevelsofAbstraction 13-4
2.2. Encapsulation 13-4
2.3. Hierarchy 13-4
2.4. AlternateAbstractions 13-5
3. Programming Fundamentals 13-5
3.1. TheProgrammingProcess 13-5
3.2. ProgrammingParadigms 13-5
4. Programming Language Basics 13-6
4.1. ProgrammingLanguageOverview 13-6
4.2. SyntaxandSemanticsofProgrammingLanguages 13-6
4.3. Low-LevelProgrammingLanguages 13-7
4.4. High-LevelProgrammingLanguages 13-7
4.5. Declarativevs.ImperativeProgrammingLanguages 13-7
5. Debugging Tools and Techniques 13-8
5.1. TypesofErrors 13-8
5.2. DebuggingTechniques 13-8
5.3. DebuggingTools 13-8
6. Data Structure and Representation 13-9
6.1. DataStructureOverview 13-9
6.2. TypesofDataStructure 13-9
6.3. OperationsonDataStructures 13-9
7. Algorithms and Complexity 13-10
7.1. OverviewofAlgorithms 13-10
7.2. AttributesofAlgorithms 13-10
7.3. AlgorithmicAnalysis 13-10
7.4. AlgorithmicDesignStrategies 13-11
7.5. AlgorithmicAnalysisStrategies 13-11
8. Basic Concept of a System 13-11
8.1. EmergentSystemProperties 13-11
© ISO/IEC 2015 – All rights reserved
---------------------- Page: 19 ----------------------
ISO/IEC TR 19759:2015(E)
xiv SWEBOK® Guide V3.0
8.2. SystemsEngineering 13-12
8.3. OverviewofaComputerSystem 13-12
9. Computer Organization 13-13
9.1. ComputerOrganizationOverview 13-13
9.2. DigitalSystems 13-13
9.3. DigitalLogic 13-13
9.4. ComputerExpressionofData 13-13
9.5. TheCentralProcessingUnit(CPU) 13-14
9.6. MemorySystemOrganization 13-14
9.7. InputandOutput(I/O) 13-14
10. Compiler Basics 13-15
10.1. Compiler/InterpreterOverview 13-15
10.2. InterpretationandCompilation 13-15
10.3. TheCompilationProcess 13-15
11. Operating Systems Basics 13-16
11.1. OperatingSystemsOverview 13-16
11.2. TasksofanOperatingSystem 13-16
11.3. OperatingSystemAbstractions 13-17
11.4. OperatingSystemsClassification 13-17
12. Database Basics and Data Management 13-17
12.1. EntityandSchema 13-18
12.2. DatabaseManagementSystems(DBMS) 13-18
12.3. DatabaseQueryLanguage 13-18
12.4. TasksofDBMSPackages 13-18
12.5. DataManagement 13-19
12.6. DataMining 13-19
13. Network Communication Basics 13-19
13.1. TypesofNetwork 13-19
13.2. BasicNetworkComponents 13-19
13.3. NetworkingProtocolsandStandards 13-20
13.4. TheInternet 13-20
13.5. InternetofThings 13-20
13.6. VirtualPrivateNetwork(VPN) 13-21
14. Parallel and Distributed Computing 13-21
14.1. ParallelandDistributedComputingOverview 13-21
14.2. DifferencebetweenParallelandDistributedComputing 13-21
14.3. ParallelandDistributedComputingModels 13-21
14.4. MainIssuesinDistributedComputing 13-22
15. Basic User Human
...
Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.