Guide to the Software Engineering Body of Knowledge (SWEBOK)
Guide to the Software Engineering Body of Knowledge ®
TABLE OF CONTENTS - CHAPTER 3
COPYRIGHT FOREWORD ASSOCIATE EDITORS INDUSTRIAL ADVISORY BOARD PANEL OF EXPERTS REVIEW TEAM PREFACE CHAPTER 1: INTRODUCTION TO THE GUIDE CHAPTER 2: SOFTWARE REQUIREMENTS CHAPTER 3: SOFTWARE DESIGN ACRONYMS INTRODUCTION BREAKDOWN OF TOPICS FOR SOFTWARE DESIGN 1. Software Design Fundamentals 1.1. General Design Concepts 1.2. Context of Software Design 1.3. Software Design Process 1.3.1. Architectural design 1.3.2. Detailed design 1.4. Enabling Techniques 1.4.1. Abstraction 1.4.2. Coupling and cohesion 1.4.3. Decomposition and modularization 1.4.4. Encapsulation/information hiding 1.4.5. Separation of interface and implementation 1.4.6. Sufficiency, completeness and primitiveness 2. Key Issues in Software Design 2.1. Concurrency 2.2. Control and Handling of Events 2.3. Distribution of Components 2.4. Error and Exception Handling and Fault Tolerance 2.5. Interaction and Presentation 2.6. Data Persistence 3. Software Structure and Architecture 3.1. Architectural Structures and Viewpoints 3.2. Design Patterns (microarchitectural patterns) 3.3. Families of Programs and Frameworks 4. Software Design Quality Analysis and Evaluation 4.1. Quality Attributes 4.2. Quality Analysis and Evaluation Techniques 4.3. Measures 5. Software Design Notations 5.1. Structural Descriptions (static view) 5.2. Behavioral Descriptions (dynamic view) 6. Software Design Strategies and Methods 6.1. General Strategies 6.2. Function-Oriented (Structured) Design 6.3. Object-Oriented Design 6.4. Data-Structure-Centered Design 6.5. Component-Based Design (CBD) 6.6. Other Methods MATRIX OF TOPICS VS. REFERENCE MATERIAL RECOMMENDED REFERENCES FOR SOFTWARE DESIGN APPENDIX A. LIST OF FURTHER READINGS APPENDIX B. LIST OF STANDARDS CHAPTER 4: SOFTWARE CONSTRUCTION CHAPTER 5: SOFTWARE TESTING CHAPTER 6: SOFTWARE MAINTENANCE CHAPTER 7: SOFTWARE CONFIGURATION MANAGEMENT CHAPTER 8: SOFTWARE ENGINEERING MANAGEMENT CHAPTER 9: SOFTWARE ENGINEERING PROCESS CHAPTER 10: SOFTWARE ENGINEERING TOOLS AND METHODS CHAPTER 11: SOFTWARE QUALITY CHAPTER 12: RELATED DISCIPLINES OF SOFTWARE ENGINEERING APPENDIX A: KNOWLEDGE AREA DESCRIPTION SPECIFICATIONS FOR THE IRONMAN VERSION OF THE GUIDE TO THE SOFTWARE ENGINEERING BODY OF KNOWLEDGE APPENDIX B: EVOLUTION OF THE GUIDE TO THE SOFTWARE ENGINEERING BODY OF KNOWLEDGE APPENDIX C: ALLOCATION OF IEEE AND ISO SOFTWARE ENGINEERING STANDARDS TO SWEBOK KNOWLEDGE AREAS APPENDIX D: CLASSIFICATION OF TOPICS ACCORDING TO BLOOM’S TAXONOMY
ACRONYMS INTRODUCTION BREAKDOWN OF TOPICS FOR SOFTWARE DESIGN 1. Software Design Fundamentals 1.1. General Design Concepts 1.2. Context of Software Design 1.3. Software Design Process 1.3.1. Architectural design 1.3.2. Detailed design 1.4. Enabling Techniques 1.4.1. Abstraction 1.4.2. Coupling and cohesion 1.4.3. Decomposition and modularization 1.4.4. Encapsulation/information hiding 1.4.5. Separation of interface and implementation 1.4.6. Sufficiency, completeness and primitiveness 2. Key Issues in Software Design 2.1. Concurrency 2.2. Control and Handling of Events 2.3. Distribution of Components 2.4. Error and Exception Handling and Fault Tolerance 2.5. Interaction and Presentation 2.6. Data Persistence 3. Software Structure and Architecture 3.1. Architectural Structures and Viewpoints 3.2. Design Patterns (microarchitectural patterns) 3.3. Families of Programs and Frameworks 4. Software Design Quality Analysis and Evaluation 4.1. Quality Attributes 4.2. Quality Analysis and Evaluation Techniques 4.3. Measures 5. Software Design Notations 5.1. Structural Descriptions (static view) 5.2. Behavioral Descriptions (dynamic view) 6. Software Design Strategies and Methods 6.1. General Strategies 6.2. Function-Oriented (Structured) Design 6.3. Object-Oriented Design 6.4. Data-Structure-Centered Design 6.5. Component-Based Design (CBD) 6.6. Other Methods MATRIX OF TOPICS VS. REFERENCE MATERIAL RECOMMENDED REFERENCES FOR SOFTWARE DESIGN APPENDIX A. LIST OF FURTHER READINGS APPENDIX B. LIST OF STANDARDS