HTML Format of the SWEBOK

TABLE OF CONTENTS

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

Hosted by Software Engineering Research Laboratory (GÉLOG)

This site and all contents are Copyright (c) 2001-2007, Institute of Electrical and Electronics Engineers, Inc. All rights reserved